@epilot/app-client 0.12.3 → 0.12.4

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 +1 @@
1
- (()=>{"use strict";var e={330(e,r,t){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var p=n(t(466));r.default=p.default},466(e){e.exports=JSON.parse('{"openapi":"3.1.0","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/public/app/{appId}/components/{componentId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"},{"name":"componentId","in":"path","required":true,"description":"ID of the component to retrieve"}],"get":{"operationId":"getPublicFacingComponent","responses":{}}},"/v1/app-configurations":{"get":{"operationId":"listConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}},"post":{"operationId":"createConfiguration","requestBody":{"$ref":"#/components/requestBodies/CreateConfigRequest"},"responses":{}}},"/v1/app-configurations/public":{"get":{"operationId":"listPublicConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/public/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"}],"get":{"operationId":"getPublicConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}},"patch":{"operationId":"patchMetadata","requestBody":{"$ref":"#/components/requestBodies/PatchConfigMetadataRequest"},"responses":{}},"delete":{"operationId":"deleteConfiguration","responses":{}}},"/v1/app-configurations/{appId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/bundle":{"post":{"operationId":"createBundleUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateBundlePresignedRequest"},"responses":{}}},"/v1/app-configurations/{appId}/zip":{"post":{"operationId":"createZipUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/logo":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"post":{"operationId":"createLogoUploadUrl","requestBody":{"$ref":"#/components/requestBodies/CreateLogoPresignedRequest"},"responses":{}},"delete":{"operationId":"deleteLogo","responses":{}}},"/v1/app-configurations/{appId}/versions":{"get":{"operationId":"listVersions","parameters":[{"name":"appId","in":"path","required":true},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}":{"get":{"operationId":"getVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"delete":{"operationId":"deleteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"patch":{"operationId":"patchVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/PatchVersionRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/review":{"get":{"operationId":"getReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"post":{"operationId":"createReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateReviewRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components":{"post":{"operationId":"createComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components/{componentId}":{"patch":{"operationId":"patchComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}},"delete":{"operationId":"deleteComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}":{"post":{"operationId":"cloneVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"sourceVersion","in":"path","required":true},{"name":"targetVersion","in":"path","required":true}],"responses":{}}},"/v1/app":{"get":{"operationId":"listInstallations","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstallation","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"post":{"operationId":"install","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"patch":{"operationId":"patchInstallation","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"delete":{"operationId":"uninstall","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/promote-to/{version}":{"post":{"operationId":"promoteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}},"/v1/app-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/public/app/{appId}/proxy/{proxyName}/{path}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the installed app"},{"name":"proxyName","in":"path","required":true,"description":"Name of the proxy target as defined in the app manifest"},{"name":"path","in":"path","required":true,"description":"Path to forward to the proxy target"}],"get":{"operationId":"publicProxyGet","responses":{}},"post":{"operationId":"publicProxyPost","requestBody":{"content":{"application/json":{}}},"responses":{}}}},"components":{"requestBodies":{"CreateReviewRequest":{"required":true,"content":{"application/json":{}}},"CreateLogoPresignedRequest":{"required":true,"content":{"application/json":{}}},"CreateBundlePresignedRequest":{"required":true,"content":{"application/json":{}}},"PatchConfigMetadataRequest":{"required":true,"content":{"application/json":{}}},"PatchVersionRequest":{"required":true,"content":{"application/json":{}}},"UpsertComponentRequest":{"required":true,"content":{"application/json":{}}},"CreateConfigRequest":{"required":true,"content":{"application/json":{}}},"InstallRequest":{"content":{"application/json":{}}}}}}')}},r={},t=function t(n){var p=r[n];if(void 0!==p)return p.exports;var o=r[n]={exports:{}};return e[n].call(o.exports,o,o.exports,t),o.exports}(330),n=exports;for(var p in t)n[p]=t[p];t.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={330:function(e,r,t){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var p=n(t(466));r.default=p.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.1.0","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/public/app/{appId}/components/{componentId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"},{"name":"componentId","in":"path","required":true,"description":"ID of the component to retrieve"}],"get":{"operationId":"getPublicFacingComponent","responses":{}}},"/v1/app-configurations":{"get":{"operationId":"listConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}},"post":{"operationId":"createConfiguration","requestBody":{"$ref":"#/components/requestBodies/CreateConfigRequest"},"responses":{}}},"/v1/app-configurations/public":{"get":{"operationId":"listPublicConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/public/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"}],"get":{"operationId":"getPublicConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}},"patch":{"operationId":"patchMetadata","requestBody":{"$ref":"#/components/requestBodies/PatchConfigMetadataRequest"},"responses":{}},"delete":{"operationId":"deleteConfiguration","responses":{}}},"/v1/app-configurations/{appId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/bundle":{"post":{"operationId":"createBundleUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateBundlePresignedRequest"},"responses":{}}},"/v1/app-configurations/{appId}/zip":{"post":{"operationId":"createZipUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/logo":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"post":{"operationId":"createLogoUploadUrl","requestBody":{"$ref":"#/components/requestBodies/CreateLogoPresignedRequest"},"responses":{}},"delete":{"operationId":"deleteLogo","responses":{}}},"/v1/app-configurations/{appId}/versions":{"get":{"operationId":"listVersions","parameters":[{"name":"appId","in":"path","required":true},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}":{"get":{"operationId":"getVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"delete":{"operationId":"deleteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"patch":{"operationId":"patchVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/PatchVersionRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/review":{"get":{"operationId":"getReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"post":{"operationId":"createReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateReviewRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components":{"post":{"operationId":"createComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components/{componentId}":{"patch":{"operationId":"patchComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}},"delete":{"operationId":"deleteComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}":{"post":{"operationId":"cloneVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"sourceVersion","in":"path","required":true},{"name":"targetVersion","in":"path","required":true}],"responses":{}}},"/v1/app":{"get":{"operationId":"listInstallations","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstallation","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"post":{"operationId":"install","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"patch":{"operationId":"patchInstallation","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"delete":{"operationId":"uninstall","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/promote-to/{version}":{"post":{"operationId":"promoteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}},"/v1/app-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/public/app/{appId}/proxy/{proxyName}/{path}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the installed app"},{"name":"proxyName","in":"path","required":true,"description":"Name of the proxy target as defined in the app manifest"},{"name":"path","in":"path","required":true,"description":"Path to forward to the proxy target"}],"get":{"operationId":"publicProxyGet","responses":{}},"post":{"operationId":"publicProxyPost","requestBody":{"content":{"application/json":{}}},"responses":{}}}},"components":{"requestBodies":{"CreateReviewRequest":{"required":true,"content":{"application/json":{}}},"CreateLogoPresignedRequest":{"required":true,"content":{"application/json":{}}},"CreateBundlePresignedRequest":{"required":true,"content":{"application/json":{}}},"PatchConfigMetadataRequest":{"required":true,"content":{"application/json":{}}},"PatchVersionRequest":{"required":true,"content":{"application/json":{}}},"UpsertComponentRequest":{"required":true,"content":{"application/json":{}}},"CreateConfigRequest":{"required":true,"content":{"application/json":{}}},"InstallRequest":{"content":{"application/json":{}}}}}}')}},r={},t=function t(n){var p=r[n];if(void 0!==p)return p.exports;var o=r[n]={exports:{}};return e[n].call(o.exports,o,o.exports,t),o.exports}(330),n=exports;for(var p in t)n[p]=t[p];t.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
package/dist/openapi.d.ts CHANGED
@@ -1497,6 +1497,11 @@ declare namespace Components {
1497
1497
  *
1498
1498
  */
1499
1499
  PortalExtensionHookConsumptionDataRetrieval | /**
1500
+ * Hook that takes over the export of consumption data from the portal. When defined, the portal delegates exporting (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the export itself. This hook is triggered when an end user requests a consumption export. The expected response to the call is:
1501
+ * - 200 with a JSON body describing the exported file (download_url, optional filename, content_type, expires_at)
1502
+ *
1503
+ */
1504
+ PortalExtensionHookConsumptionExport | /**
1500
1505
  * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
1501
1506
  * - 200 with the time series data
1502
1507
  *
@@ -1540,6 +1545,16 @@ declare namespace Components {
1540
1545
  };
1541
1546
  }[];
1542
1547
  }
1548
+ /**
1549
+ * An aggregation method advertised by a consumption data retrieval hook.
1550
+ */
1551
+ export interface PortalExtensionHookConsumptionAggregationMethodOption {
1552
+ /**
1553
+ * Identifier of the option. Matches the `aggregation_method` value returned by the hook.
1554
+ */
1555
+ id: "sum" | "average" | "min" | "max";
1556
+ label: TranslatedString;
1557
+ }
1543
1558
  /**
1544
1559
  * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
1545
1560
  * - 200 with the time series data
@@ -1556,6 +1571,16 @@ declare namespace Components {
1556
1571
  * Intervals supported by the API. If omitted, it is assumed that all intervals are supported.
1557
1572
  */
1558
1573
  intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M")[];
1574
+ /**
1575
+ * Consumption types advertised by the hook (e.g. `ht`/`nt`, `feed-in`/`feed-out`). The `id` has to match the `type` field returned in the consumption response.
1576
+ *
1577
+ */
1578
+ type_options?: /* A consumption type advertised by a consumption data retrieval hook. */ PortalExtensionHookConsumptionOption[];
1579
+ /**
1580
+ * Aggregation methods advertised by the hook (e.g. `sum`, `average`, `min`, `max`). The `id` has to match the `aggregation_method` field returned in the consumption response.
1581
+ *
1582
+ */
1583
+ aggregation_method_options?: /* An aggregation method advertised by a consumption data retrieval hook. */ PortalExtensionHookConsumptionAggregationMethodOption[];
1559
1584
  auth?: PortalExtensionAuthBlock;
1560
1585
  call: {
1561
1586
  /**
@@ -1592,11 +1617,72 @@ declare namespace Components {
1592
1617
  dataPath?: string;
1593
1618
  };
1594
1619
  /**
1620
+ * Deprecated. Prefer `secure_proxy` instead.
1595
1621
  * If 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.
1622
+ *
1596
1623
  */
1597
1624
  use_static_ips?: boolean;
1598
1625
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
1599
1626
  }
1627
+ /**
1628
+ * Hook that takes over the export of consumption data from the portal. When defined, the portal delegates exporting (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the export itself. This hook is triggered when an end user requests a consumption export. The expected response to the call is:
1629
+ * - 200 with a JSON body describing the exported file (download_url, optional filename, content_type, expires_at)
1630
+ *
1631
+ */
1632
+ export interface PortalExtensionHookConsumptionExport {
1633
+ /**
1634
+ * Identifier of the hook. Should not change between updates.
1635
+ */
1636
+ id: string; // ^[a-zA-Z0-9_-]+$
1637
+ name?: TranslatedString;
1638
+ type: "consumptionExport";
1639
+ auth?: PortalExtensionAuthBlock;
1640
+ call: {
1641
+ /**
1642
+ * HTTP method to use for the call
1643
+ */
1644
+ method?: string;
1645
+ /**
1646
+ * URL to call. Supports variable interpolation.
1647
+ */
1648
+ url: string;
1649
+ /**
1650
+ * Parameters to append to the URL. Supports variable interpolation.
1651
+ */
1652
+ params?: {
1653
+ [name: string]: string;
1654
+ };
1655
+ /**
1656
+ * Headers to use. Supports variable interpolation.
1657
+ */
1658
+ headers?: {
1659
+ [name: string]: string;
1660
+ };
1661
+ /**
1662
+ * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
1663
+ */
1664
+ body?: {
1665
+ [name: string]: any;
1666
+ };
1667
+ };
1668
+ /**
1669
+ * Deprecated. Prefer `secure_proxy` instead.
1670
+ * If 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.
1671
+ *
1672
+ */
1673
+ use_static_ips?: boolean;
1674
+ secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
1675
+ }
1676
+ /**
1677
+ * A consumption type advertised by a consumption data retrieval hook.
1678
+ */
1679
+ export interface PortalExtensionHookConsumptionOption {
1680
+ /**
1681
+ * Identifier of the option. Matches the `type` value returned by the hook (e.g. `ht`, `nt`, `feed-in`).
1682
+ */
1683
+ id: string;
1684
+ label: TranslatedString;
1685
+ }
1600
1686
  /**
1601
1687
  * Hook that replaces the built-in Contract identification for self-assignment. This hook involves an HTTP request whenever a user is trying to self-assign Contract(s).
1602
1688
  * The expected response http status code to the call is:
@@ -1674,7 +1760,9 @@ declare namespace Components {
1674
1760
  en: string;
1675
1761
  };
1676
1762
  /**
1763
+ * Deprecated. Prefer `secure_proxy` instead.
1677
1764
  * If 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.
1765
+ *
1678
1766
  */
1679
1767
  use_static_ips?: boolean;
1680
1768
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
@@ -1731,7 +1819,9 @@ declare namespace Components {
1731
1819
  dataPath?: string;
1732
1820
  };
1733
1821
  /**
1822
+ * Deprecated. Prefer `secure_proxy` instead.
1734
1823
  * If 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.
1824
+ *
1735
1825
  */
1736
1826
  use_static_ips?: boolean;
1737
1827
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
@@ -1825,7 +1915,9 @@ declare namespace Components {
1825
1915
  lower_limit?: string;
1826
1916
  };
1827
1917
  /**
1918
+ * Deprecated. Prefer `secure_proxy` instead.
1828
1919
  * If 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.
1920
+ *
1829
1921
  */
1830
1922
  use_static_ips?: boolean;
1831
1923
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
@@ -1882,7 +1974,9 @@ declare namespace Components {
1882
1974
  dataPath?: string;
1883
1975
  };
1884
1976
  /**
1977
+ * Deprecated. Prefer `secure_proxy` instead.
1885
1978
  * If 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.
1979
+ *
1886
1980
  */
1887
1981
  use_static_ips?: boolean;
1888
1982
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
@@ -1934,7 +2028,9 @@ declare namespace Components {
1934
2028
  result: string;
1935
2029
  };
1936
2030
  /**
2031
+ * Deprecated. Prefer `secure_proxy` instead.
1937
2032
  * If 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.
2033
+ *
1938
2034
  */
1939
2035
  use_static_ips?: boolean;
1940
2036
  secure_proxy?: /* If set, requests are routed through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ PortalExtensionSecureProxy;
@@ -3508,7 +3604,10 @@ export type PortalBlockSurfaceConfig = Components.Schemas.PortalBlockSurfaceConf
3508
3604
  export type PortalExtensionAuthBlock = Components.Schemas.PortalExtensionAuthBlock;
3509
3605
  export type PortalExtensionComponent = Components.Schemas.PortalExtensionComponent;
3510
3606
  export type PortalExtensionConfig = Components.Schemas.PortalExtensionConfig;
3607
+ export type PortalExtensionHookConsumptionAggregationMethodOption = Components.Schemas.PortalExtensionHookConsumptionAggregationMethodOption;
3511
3608
  export type PortalExtensionHookConsumptionDataRetrieval = Components.Schemas.PortalExtensionHookConsumptionDataRetrieval;
3609
+ export type PortalExtensionHookConsumptionExport = Components.Schemas.PortalExtensionHookConsumptionExport;
3610
+ export type PortalExtensionHookConsumptionOption = Components.Schemas.PortalExtensionHookConsumptionOption;
3512
3611
  export type PortalExtensionHookContractIdentification = Components.Schemas.PortalExtensionHookContractIdentification;
3513
3612
  export type PortalExtensionHookCostDataRetrieval = Components.Schemas.PortalExtensionHookCostDataRetrieval;
3514
3613
  export type PortalExtensionHookMeterReadingPlausibilityCheck = Components.Schemas.PortalExtensionHookMeterReadingPlausibilityCheck;
package/dist/openapi.json CHANGED
@@ -2609,6 +2609,7 @@
2609
2609
  "contractIdentification": "#/components/schemas/PortalExtensionHookContractIdentification",
2610
2610
  "priceDataRetrieval": "#/components/schemas/PortalExtensionHookPriceDataRetrieval",
2611
2611
  "consumptionDataRetrieval": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval",
2612
+ "consumptionExport": "#/components/schemas/PortalExtensionHookConsumptionExport",
2612
2613
  "costDataRetrieval": "#/components/schemas/PortalExtensionHookCostDataRetrieval",
2613
2614
  "meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck"
2614
2615
  }
@@ -2626,6 +2627,9 @@
2626
2627
  {
2627
2628
  "$ref": "#/components/schemas/PortalExtensionHookConsumptionDataRetrieval"
2628
2629
  },
2630
+ {
2631
+ "$ref": "#/components/schemas/PortalExtensionHookConsumptionExport"
2632
+ },
2629
2633
  {
2630
2634
  "$ref": "#/components/schemas/PortalExtensionHookCostDataRetrieval"
2631
2635
  },
@@ -2715,7 +2719,8 @@
2715
2719
  },
2716
2720
  "use_static_ips": {
2717
2721
  "type": "boolean",
2718
- "description": "If 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.",
2722
+ "deprecated": true,
2723
+ "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",
2719
2724
  "default": false
2720
2725
  },
2721
2726
  "secure_proxy": {
@@ -2828,7 +2833,8 @@
2828
2833
  },
2829
2834
  "use_static_ips": {
2830
2835
  "type": "boolean",
2831
- "description": "If 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.",
2836
+ "deprecated": true,
2837
+ "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",
2832
2838
  "default": false
2833
2839
  },
2834
2840
  "secure_proxy": {
@@ -2939,7 +2945,8 @@
2939
2945
  },
2940
2946
  "use_static_ips": {
2941
2947
  "type": "boolean",
2942
- "description": "If 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.",
2948
+ "deprecated": true,
2949
+ "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",
2943
2950
  "default": false
2944
2951
  },
2945
2952
  "secure_proxy": {
@@ -3039,7 +3046,8 @@
3039
3046
  },
3040
3047
  "use_static_ips": {
3041
3048
  "type": "boolean",
3042
- "description": "If 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.",
3049
+ "deprecated": true,
3050
+ "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",
3043
3051
  "default": false
3044
3052
  },
3045
3053
  "secure_proxy": {
@@ -3084,6 +3092,20 @@
3084
3092
  ]
3085
3093
  }
3086
3094
  },
3095
+ "type_options": {
3096
+ "type": "array",
3097
+ "description": "Consumption types advertised by the hook (e.g. `ht`/`nt`, `feed-in`/`feed-out`). The `id` has to match the `type` field returned in the consumption response.\n",
3098
+ "items": {
3099
+ "$ref": "#/components/schemas/PortalExtensionHookConsumptionOption"
3100
+ }
3101
+ },
3102
+ "aggregation_method_options": {
3103
+ "type": "array",
3104
+ "description": "Aggregation methods advertised by the hook (e.g. `sum`, `average`, `min`, `max`). The `id` has to match the `aggregation_method` field returned in the consumption response.\n",
3105
+ "items": {
3106
+ "$ref": "#/components/schemas/PortalExtensionHookConsumptionAggregationMethodOption"
3107
+ }
3108
+ },
3087
3109
  "auth": {
3088
3110
  "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3089
3111
  },
@@ -3138,7 +3160,8 @@
3138
3160
  },
3139
3161
  "use_static_ips": {
3140
3162
  "type": "boolean",
3141
- "description": "If 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.",
3163
+ "deprecated": true,
3164
+ "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",
3142
3165
  "default": false
3143
3166
  },
3144
3167
  "secure_proxy": {
@@ -3152,6 +3175,125 @@
3152
3175
  ],
3153
3176
  "additionalProperties": false
3154
3177
  },
3178
+ "PortalExtensionHookConsumptionExport": {
3179
+ "description": "Hook that takes over the export of consumption data from the portal. When defined, the portal delegates exporting (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the export itself. This hook is triggered when an end user requests a consumption export. 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",
3180
+ "type": "object",
3181
+ "properties": {
3182
+ "id": {
3183
+ "type": "string",
3184
+ "pattern": "^[a-zA-Z0-9_-]+$",
3185
+ "description": "Identifier of the hook. Should not change between updates."
3186
+ },
3187
+ "name": {
3188
+ "$ref": "#/components/schemas/TranslatedString"
3189
+ },
3190
+ "type": {
3191
+ "type": "string",
3192
+ "enum": [
3193
+ "consumptionExport"
3194
+ ]
3195
+ },
3196
+ "auth": {
3197
+ "$ref": "#/components/schemas/PortalExtensionAuthBlock"
3198
+ },
3199
+ "call": {
3200
+ "type": "object",
3201
+ "properties": {
3202
+ "method": {
3203
+ "type": "string",
3204
+ "description": "HTTP method to use for the call",
3205
+ "default": "GET"
3206
+ },
3207
+ "url": {
3208
+ "type": "string",
3209
+ "description": "URL to call. Supports variable interpolation."
3210
+ },
3211
+ "params": {
3212
+ "type": "object",
3213
+ "description": "Parameters to append to the URL. Supports variable interpolation.",
3214
+ "additionalProperties": {
3215
+ "type": "string"
3216
+ },
3217
+ "default": {}
3218
+ },
3219
+ "headers": {
3220
+ "type": "object",
3221
+ "description": "Headers to use. Supports variable interpolation.",
3222
+ "additionalProperties": {
3223
+ "type": "string"
3224
+ },
3225
+ "default": {}
3226
+ },
3227
+ "body": {
3228
+ "type": "object",
3229
+ "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
3230
+ "additionalProperties": true
3231
+ }
3232
+ },
3233
+ "required": [
3234
+ "url"
3235
+ ],
3236
+ "additionalProperties": false
3237
+ },
3238
+ "use_static_ips": {
3239
+ "type": "boolean",
3240
+ "deprecated": true,
3241
+ "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",
3242
+ "default": false
3243
+ },
3244
+ "secure_proxy": {
3245
+ "$ref": "#/components/schemas/PortalExtensionSecureProxy"
3246
+ }
3247
+ },
3248
+ "required": [
3249
+ "id",
3250
+ "type",
3251
+ "call"
3252
+ ],
3253
+ "additionalProperties": false
3254
+ },
3255
+ "PortalExtensionHookConsumptionOption": {
3256
+ "type": "object",
3257
+ "description": "A consumption type advertised by a consumption data retrieval hook.",
3258
+ "properties": {
3259
+ "id": {
3260
+ "type": "string",
3261
+ "description": "Identifier of the option. Matches the `type` value returned by the hook (e.g. `ht`, `nt`, `feed-in`)."
3262
+ },
3263
+ "label": {
3264
+ "$ref": "#/components/schemas/TranslatedString"
3265
+ }
3266
+ },
3267
+ "required": [
3268
+ "id",
3269
+ "label"
3270
+ ],
3271
+ "additionalProperties": false
3272
+ },
3273
+ "PortalExtensionHookConsumptionAggregationMethodOption": {
3274
+ "type": "object",
3275
+ "description": "An aggregation method advertised by a consumption data retrieval hook.",
3276
+ "properties": {
3277
+ "id": {
3278
+ "type": "string",
3279
+ "enum": [
3280
+ "sum",
3281
+ "average",
3282
+ "min",
3283
+ "max"
3284
+ ],
3285
+ "description": "Identifier of the option. Matches the `aggregation_method` value returned by the hook."
3286
+ },
3287
+ "label": {
3288
+ "$ref": "#/components/schemas/TranslatedString"
3289
+ }
3290
+ },
3291
+ "required": [
3292
+ "id",
3293
+ "label"
3294
+ ],
3295
+ "additionalProperties": false
3296
+ },
3155
3297
  "PortalExtensionHookCostDataRetrieval": {
3156
3298
  "description": "Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:\n - 200 with the time series data\n",
3157
3299
  "type": "object",
@@ -3237,7 +3379,8 @@
3237
3379
  },
3238
3380
  "use_static_ips": {
3239
3381
  "type": "boolean",
3240
- "description": "If 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.",
3382
+ "deprecated": true,
3383
+ "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
3384
  "default": false
3242
3385
  },
3243
3386
  "secure_proxy": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/app-client",
3
- "version": "0.12.3",
3
+ "version": "0.12.4",
4
4
  "description": "JavaScript client library for the epilot App API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "test": "vitest",
26
26
  "typescript": "tsc",
27
27
  "bundle-definition": "webpack",
28
- "openapi:local": "node ../../scripts/update-openapi.js /Users/sauerer/epilot/app-api/openapi.yml",
28
+ "openapi:local": "node ../../scripts/update-openapi.js ../../../app-api/openapi.yml",
29
29
  "openapi": "node ../../scripts/update-openapi.js https://docs.api.epilot.io/app.yaml",
30
30
  "typegen": "openapi typegen src/openapi.json --client > src/openapi.d.ts",
31
31
  "build": "tsc && npm run build:patch && npm run bundle-definition",