@epilot/customer-portal-client 0.39.15 → 0.41.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/dist/openapi.d.ts CHANGED
@@ -13,6 +13,9 @@ declare namespace Components {
13
13
  * Error message
14
14
  */
15
15
  message?: string;
16
+ /**
17
+ * Machine-readable cause, when the API can name one. `PORTAL_USER_PENDING_ACTIVATION` means the portal user is authenticated but not mapped to a contact yet, so re-authenticating will not help.
18
+ */
16
19
  reason: "invalid_token";
17
20
  }
18
21
  export type Conflict = Schemas.ErrorResp;
@@ -31,6 +34,9 @@ declare namespace Components {
31
34
  export type InternalServerError = Schemas.ErrorResp;
32
35
  export type InvalidRequest = Schemas.ErrorResp;
33
36
  export type InvalidRequestCreateMeterReading = {
37
+ /**
38
+ * Machine-readable cause, when the API can name one. `PORTAL_USER_PENDING_ACTIVATION` means the portal user is authenticated but not mapped to a contact yet, so re-authenticating will not help.
39
+ */
34
40
  reason?: "plausibility_check_failed" | "contract_period" | "no_counter" | "no_direction" | "timestamp_future" | "less_than_previous" | "greater_than_subsequent" | "meter_decommissioned" | "plausibility_check_failed";
35
41
  upper_limit: number;
36
42
  lower_limit: number;
@@ -2947,6 +2953,22 @@ declare namespace Components {
2947
2953
  */
2948
2954
  auto_create_cognito_user?: boolean;
2949
2955
  }
2956
+ /**
2957
+ * Linearized portal workflows of a single entity
2958
+ */
2959
+ export interface EntityPortalWorkflows {
2960
+ entity_id: string;
2961
+ /**
2962
+ * Empty when the entity has no portal-relevant workflow
2963
+ */
2964
+ portal_workflows: /**
2965
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
2966
+ * graph already linearized by the Workflows API into a flat, ordered list of
2967
+ * portal-visible tasks.
2968
+ *
2969
+ */
2970
+ PortalWorkflow[];
2971
+ }
2950
2972
  /**
2951
2973
  * Response for entity get request
2952
2974
  */
@@ -3299,6 +3321,10 @@ declare namespace Components {
3299
3321
  * Error message
3300
3322
  */
3301
3323
  message?: string;
3324
+ /**
3325
+ * Machine-readable cause, when the API can name one. `PORTAL_USER_PENDING_ACTIVATION` means the portal user is authenticated but not mapped to a contact yet, so re-authenticating will not help.
3326
+ */
3327
+ reason?: string;
3302
3328
  }
3303
3329
  /**
3304
3330
  * example:
@@ -3621,7 +3647,7 @@ declare namespace Components {
3621
3647
  */
3622
3648
  change_mode?: "synchronous" | "asynchronous";
3623
3649
  /**
3624
- * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook. Treated as true when `change_mode` is `synchronous`, since the portal re-creates the login with the confirmed password. Skipped either way for portal users whose identity is managed by an identity provider: an SSO login has no password to confirm.
3650
+ * Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook. Skipped for portal users whose identity is managed by an identity provider: an SSO login has no password to confirm. When no password is confirmed and `change_mode` is `synchronous`, the re-created login gets a random password and the portal user signs in through their identity provider, or sets a new password via the email code flow.
3625
3651
  *
3626
3652
  */
3627
3653
  require_password_confirmation?: boolean;
@@ -4716,6 +4742,20 @@ declare namespace Components {
4716
4742
  */
4717
4743
  is_new?: boolean;
4718
4744
  }
4745
+ export interface FilePreviewResult {
4746
+ /**
4747
+ * What kind of preview (if any) is available. "pdf" covers both native PDFs and Office documents that were converted to PDF server-side. "unsupported" means no preview is available and the caller should fall back to download.
4748
+ */
4749
+ kind: "pdf" | "image" | "unsupported";
4750
+ /**
4751
+ * A Content-Disposition: inline URL to render in a preview viewer. Present only when kind is "pdf" or "image". Short-lived — do not cache across dialog opens.
4752
+ */
4753
+ url?: string; // uri
4754
+ /**
4755
+ * Optional download URL for the file, returned for any kind — including "unsupported" — whenever the file entity exposes one. It is only a Content-Disposition: attachment URL for files with access_control "private", where it is a short-lived signed URL; for any other access level it is the file entity's plain public/CDN object URL, which carries no attachment disposition and may render inline in the browser. Absent when the file entity exposes no usable URL, so clients must handle it being missing.
4756
+ */
4757
+ download_url?: string; // uri
4758
+ }
4719
4759
  export interface Grant {
4720
4760
  /**
4721
4761
  * Action for granting permission
@@ -6581,9 +6621,10 @@ declare namespace Components {
6581
6621
  * providers not in the list are deleted. Omit the field to leave SSO
6582
6622
  * configuration unchanged; send an empty array to remove all providers.
6583
6623
  *
6584
- * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
6585
- * as sent. Customers are encouraged to reference an org env secret via
6586
- * `{{ env.VAR }}` rather than embed raw values.
6624
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
6625
+ * stored secret for the same slug; an explicit empty string clears it.
6626
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
6627
+ * `{{ env.VAR }}` references pass through.
6587
6628
  *
6588
6629
  */
6589
6630
  identity_providers?: ProviderPublicConfig[];
@@ -7207,6 +7248,20 @@ declare namespace Components {
7207
7248
  * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
7208
7249
  */
7209
7250
  export type PortalId = string;
7251
+ /**
7252
+ * Portal-specific (ECP / installer) display config of a workflow task
7253
+ */
7254
+ export interface PortalTaskConfig {
7255
+ enabled?: boolean;
7256
+ label?: string;
7257
+ description?: string;
7258
+ journey?: {
7259
+ id?: string;
7260
+ journeyId?: string;
7261
+ name?: string;
7262
+ complete_task_automatically?: boolean;
7263
+ };
7264
+ }
7210
7265
  /**
7211
7266
  * The portal user entity
7212
7267
  */
@@ -7276,6 +7331,122 @@ declare namespace Components {
7276
7331
  }
7277
7332
  export type PortalUserRegistrationStatus = "Registration Pending" | "Confirmation Email Sent" | "Registered" | "Email Update In Progress";
7278
7333
  export type PortalWidget = EntityWidget | ContentWidget | ActionWidget | TeaserWidget | DocumentWidget | PaymentWidget | MeterReadingWidget | MeterChartWidget | CampaignWidget | ProductRecommendationsWidget;
7334
+ /**
7335
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
7336
+ * graph already linearized by the Workflows API into a flat, ordered list of
7337
+ * portal-visible tasks.
7338
+ *
7339
+ */
7340
+ export interface PortalWorkflow {
7341
+ /**
7342
+ * Id of the workflow / flow execution
7343
+ */
7344
+ id: string;
7345
+ /**
7346
+ * Id of the workflow definition / flow template this execution was created from
7347
+ */
7348
+ definition_id?: string;
7349
+ name: string;
7350
+ status: "STARTED" | "DONE" | "CLOSED";
7351
+ /**
7352
+ * 2 = legacy V1 workflow execution (linear model), 3 = V2 flow execution (graph model)
7353
+ */
7354
+ version: 2 | 3;
7355
+ /**
7356
+ * Creation timestamp, doubles as started time
7357
+ */
7358
+ created_at?: string;
7359
+ /**
7360
+ * Last update timestamp
7361
+ */
7362
+ updated_at?: string;
7363
+ /**
7364
+ * Timestamp when the execution was completed, if it is
7365
+ */
7366
+ completed_at?: string;
7367
+ due_date?: string;
7368
+ assigned_to?: string[];
7369
+ contexts?: {
7370
+ entity_id?: string;
7371
+ entity_schema?: string;
7372
+ is_primary?: boolean;
7373
+ }[];
7374
+ /**
7375
+ * True when the linearized path reached the end of the execution graph. False when an
7376
+ * unevaluated decision task was encountered, meaning additional tasks may appear once
7377
+ * the decision is resolved (the returned tasks are still the guaranteed active path).
7378
+ * Always true for V1 executions.
7379
+ *
7380
+ */
7381
+ is_path_complete: boolean;
7382
+ /**
7383
+ * Portal-visible tasks in linear (timeline) order
7384
+ */
7385
+ tasks: /* A single portal-visible task of a linearized workflow execution */ PortalWorkflowTask[];
7386
+ }
7387
+ /**
7388
+ * A single portal-visible task of a linearized workflow execution
7389
+ */
7390
+ export interface PortalWorkflowTask {
7391
+ /**
7392
+ * Id of the underlying task (V2) or step (V1)
7393
+ */
7394
+ id: string;
7395
+ /**
7396
+ * Internal task/step name (fallback label when the portal config has none)
7397
+ */
7398
+ name: string;
7399
+ /**
7400
+ * Zero-based position of the task in the linearized timeline
7401
+ */
7402
+ order: number;
7403
+ /**
7404
+ * Normalized task status:
7405
+ * - COMPLETED / SKIPPED: the task is done (skipped tasks count as done for progress)
7406
+ * - IN_PROGRESS: the task has been reached and work has started
7407
+ * - PENDING: the task has not been completed yet
7408
+ *
7409
+ */
7410
+ status: "COMPLETED" | "SKIPPED" | "IN_PROGRESS" | "PENDING";
7411
+ /**
7412
+ * True when the task has been reached in the execution — all predecessor tasks on its
7413
+ * path are completed/skipped — so the portal user can act on it (e.g. start its journey).
7414
+ * Tasks that are only part of the projected future path are returned with is_active false.
7415
+ *
7416
+ */
7417
+ is_active: boolean;
7418
+ ecp?: /* Portal-specific (ECP / installer) display config of a workflow task */ PortalTaskConfig;
7419
+ installer?: /* Portal-specific (ECP / installer) display config of a workflow task */ PortalTaskConfig;
7420
+ /**
7421
+ * Journey linked to the task, if any
7422
+ */
7423
+ journey?: {
7424
+ id?: string;
7425
+ journeyId?: string;
7426
+ name?: string;
7427
+ /**
7428
+ * If true, the task is auto completed when the journey is completed
7429
+ */
7430
+ complete_task_automatically?: boolean;
7431
+ };
7432
+ assigned_to?: string[];
7433
+ /**
7434
+ * Id of the phase the underlying task belongs to, if any (V2 only)
7435
+ */
7436
+ phase_id?: string;
7437
+ /**
7438
+ * Name of the phase the underlying task belongs to, if any (V2 only)
7439
+ */
7440
+ phase_name?: string;
7441
+ /**
7442
+ * Timestamp when the task was completed or skipped
7443
+ */
7444
+ completed_at?: string;
7445
+ /**
7446
+ * Last update timestamp of the underlying task/step
7447
+ */
7448
+ updated_at?: string;
7449
+ }
7279
7450
  /**
7280
7451
  * The product entity
7281
7452
  */
@@ -7500,7 +7671,7 @@ declare namespace Components {
7500
7671
  change_mode?: "synchronous" | "asynchronous";
7501
7672
  /**
7502
7673
  * Whether the portal user must confirm their current password before the email change is handed over to the third-party system.
7503
- * Also required when `change_mode` is `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
7674
+ * Not required for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
7504
7675
  *
7505
7676
  */
7506
7677
  require_password_confirmation?: boolean;
@@ -7971,7 +8142,10 @@ declare namespace Components {
7971
8142
  use_case_slug: string;
7972
8143
  }
7973
8144
  export type Source = "ECP" | "ERP" | "360" | "journey-submission";
7974
- export type SwappableConfig = "all" | "domain" | "users" | "email_templates";
8145
+ /**
8146
+ * Optional configuration item that a portal swap can additionally include. The swap always transfers the pages and the functional experience config that keep the portal working. These items are opt-in on top of that and are OFF by default. Domain and access/security settings (domain, cognito_details, auth_settings) can never be swapped and are therefore not part of this enum.
8147
+ */
8148
+ export type SwappableConfig = "email_templates";
7975
8149
  export type TariffType = "ht" | "nt";
7976
8150
  export interface TeaserWidget {
7977
8151
  id: string;
@@ -8069,9 +8243,10 @@ declare namespace Components {
8069
8243
  * providers not in the list are deleted. Omit the field to leave SSO
8070
8244
  * configuration unchanged; send an empty array to remove all providers.
8071
8245
  *
8072
- * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
8073
- * as sent. Customers are encouraged to reference an org env secret via
8074
- * `{{ env.VAR }}` rather than embed raw values.
8246
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
8247
+ * stored secret for the same slug; an explicit empty string clears it.
8248
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
8249
+ * `{{ env.VAR }}` references pass through.
8075
8250
  *
8076
8251
  */
8077
8252
  identity_providers?: /**
@@ -8137,9 +8312,10 @@ declare namespace Components {
8137
8312
  * providers not in the list are deleted. Omit the field to leave SSO
8138
8313
  * configuration unchanged; send an empty array to remove all providers.
8139
8314
  *
8140
- * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
8141
- * as sent. Customers are encouraged to reference an org env secret via
8142
- * `{{ env.VAR }}` rather than embed raw values.
8315
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
8316
+ * stored secret for the same slug; an explicit empty string clears it.
8317
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
8318
+ * `{{ env.VAR }}` references pass through.
8143
8319
  *
8144
8320
  */
8145
8321
  identity_providers?: /**
@@ -8724,9 +8900,10 @@ declare namespace Components {
8724
8900
  * providers not in the list are deleted. Omit the field to leave SSO
8725
8901
  * configuration unchanged; send an empty array to remove all providers.
8726
8902
  *
8727
- * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
8728
- * as sent. Customers are encouraged to reference an org env secret via
8729
- * `{{ env.VAR }}` rather than embed raw values.
8903
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
8904
+ * stored secret for the same slug; an explicit empty string clears it.
8905
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
8906
+ * `{{ env.VAR }}` references pass through.
8730
8907
  *
8731
8908
  */
8732
8909
  identity_providers?: /**
@@ -11568,7 +11745,7 @@ declare namespace Paths {
11568
11745
  export type $500 = Components.Responses.InternalServerError;
11569
11746
  }
11570
11747
  }
11571
- namespace GetEntityWorkflows {
11748
+ namespace GetEntityPortalWorkflows {
11572
11749
  namespace Parameters {
11573
11750
  /**
11574
11751
  * ID of the entity
@@ -11579,7 +11756,7 @@ declare namespace Paths {
11579
11756
  /**
11580
11757
  * Schema slug of the entity
11581
11758
  * example:
11582
- * contact
11759
+ * opportunity
11583
11760
  */
11584
11761
  export type Slug = string;
11585
11762
  }
@@ -11587,7 +11764,7 @@ declare namespace Paths {
11587
11764
  slug: /**
11588
11765
  * Schema slug of the entity
11589
11766
  * example:
11590
- * contact
11767
+ * opportunity
11591
11768
  */
11592
11769
  Parameters.Slug;
11593
11770
  id: /**
@@ -11599,144 +11776,13 @@ declare namespace Paths {
11599
11776
  }
11600
11777
  namespace Responses {
11601
11778
  export interface $200 {
11602
- workflow_executions?: /**
11603
- * example:
11604
- * {
11605
- * "id": "8gja72h6kas6h",
11606
- * "name": "Lead Qualification",
11607
- * "trigger": "MANUAL",
11608
- * "status": "STARTED",
11609
- * "creationTime": "2021-04-27T12:01:13.000Z",
11610
- * "lastUpdateTime": "2021-04-27T12:01:13.000Z",
11611
- * "dueDate": "2021-04-27T12:01:13.000Z",
11612
- * "assignedTo": [
11613
- * "252",
11614
- * "29052"
11615
- * ],
11616
- * "flow": [
11617
- * {
11618
- * "id": "sectionId1",
11619
- * "name": "Initial Information Gathering",
11620
- * "steps": [
11621
- * {
11622
- * "id": "sada5641f3a21",
11623
- * "name": "Call client and confirm address and product",
11624
- * "status": "ASSIGNED",
11625
- * "assignedTo": [
11626
- * "11"
11627
- * ]
11628
- * },
11629
- * {
11630
- * "id": "sada5641f3a22",
11631
- * "name": "Check product availability",
11632
- * "status": "UNASSIGNED"
11633
- * },
11634
- * {
11635
- * "id": "sada5641f3a23",
11636
- * "name": "Send email confirming contact with the client",
11637
- * "status": "SKIPPED"
11638
- * }
11639
- * ]
11640
- * },
11641
- * {
11642
- * "id": "firstLevelStepId1",
11643
- * "name": "Print and send catalog",
11644
- * "status": "SKIPPED",
11645
- * "dueDate": "2023-01-15T20:00:00"
11646
- * }
11647
- * ]
11648
- * }
11779
+ portal_workflows?: /**
11780
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
11781
+ * graph already linearized by the Workflows API into a flat, ordered list of
11782
+ * portal-visible tasks.
11783
+ *
11649
11784
  */
11650
- Components.Schemas.WorkflowExecution[];
11651
- }
11652
- export type $401 = Components.Responses.Unauthorized;
11653
- export type $403 = Components.Responses.Forbidden;
11654
- export type $404 = Components.Responses.NotFound;
11655
- export type $500 = Components.Responses.InternalServerError;
11656
- }
11657
- }
11658
- namespace GetExport {
11659
- namespace Parameters {
11660
- export type JobId = string;
11661
- }
11662
- export interface PathParameters {
11663
- jobId: Parameters.JobId;
11664
- }
11665
- namespace Responses {
11666
- export interface $200 {
11667
- jobId?: string;
11668
- status?: "queued" | "running" | "ready" | "failed" | "expired";
11669
- downloadUrl?: string;
11670
- error?: string;
11671
- }
11672
- export type $401 = Components.Responses.Unauthorized;
11673
- export interface $404 {
11674
- }
11675
- export type $500 = Components.Responses.InternalServerError;
11676
- }
11677
- }
11678
- namespace GetExternalLinks {
11679
- namespace Parameters {
11680
- export type ContactId = /**
11681
- * Entity ID
11682
- * example:
11683
- * 5da0a718-c822-403d-9f5d-20d4584e0528
11684
- */
11685
- Components.Schemas.EntityId /* uuid */;
11686
- export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
11687
- }
11688
- export interface QueryParameters {
11689
- origin?: Parameters.Origin;
11690
- contactId?: Parameters.ContactId;
11691
- }
11692
- namespace Responses {
11693
- export type $200 = Components.Schemas.ExternalLink[];
11694
- export type $401 = Components.Responses.Unauthorized;
11695
- export type $403 = Components.Responses.Forbidden;
11696
- export type $500 = Components.Responses.InternalServerError;
11697
- }
11698
- }
11699
- namespace GetExternalLinksV3 {
11700
- namespace Parameters {
11701
- export type ContactId = /**
11702
- * Entity ID
11703
- * example:
11704
- * 5da0a718-c822-403d-9f5d-20d4584e0528
11705
- */
11706
- Components.Schemas.EntityId /* uuid */;
11707
- export type PortalId = /**
11708
- * ID of the portal
11709
- * example:
11710
- * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
11711
- */
11712
- Components.Schemas.PortalId;
11713
- }
11714
- export interface QueryParameters {
11715
- portal_id?: Parameters.PortalId;
11716
- contactId?: Parameters.ContactId;
11717
- }
11718
- namespace Responses {
11719
- export type $200 = Components.Schemas.ExternalLink[];
11720
- export type $401 = Components.Responses.Unauthorized;
11721
- export type $403 = Components.Responses.Forbidden;
11722
- export type $500 = Components.Responses.InternalServerError;
11723
- }
11724
- }
11725
- namespace GetFileById {
11726
- namespace Parameters {
11727
- export type Id = /**
11728
- * Entity ID
11729
- * example:
11730
- * 5da0a718-c822-403d-9f5d-20d4584e0528
11731
- */
11732
- Components.Schemas.EntityId /* uuid */;
11733
- }
11734
- export interface PathParameters {
11735
- id: Parameters.Id;
11736
- }
11737
- namespace Responses {
11738
- export interface $200 {
11739
- file?: /* The file entity */ Components.Schemas.FileItem;
11785
+ Components.Schemas.PortalWorkflow[];
11740
11786
  }
11741
11787
  export type $401 = Components.Responses.Unauthorized;
11742
11788
  export type $403 = Components.Responses.Forbidden;
@@ -11744,34 +11790,845 @@ declare namespace Paths {
11744
11790
  export type $500 = Components.Responses.InternalServerError;
11745
11791
  }
11746
11792
  }
11747
- namespace GetFilesCountByEntity {
11748
- namespace Responses {
11749
- export type $200 = Components.Schemas.EntityFileCount[];
11750
- export type $401 = Components.Responses.Unauthorized;
11751
- export type $403 = Components.Responses.Forbidden;
11752
- export type $404 = Components.Responses.NotFound;
11753
- export type $500 = Components.Responses.InternalServerError;
11754
- }
11755
- }
11756
- namespace GetMeterReadings {
11793
+ namespace GetEntityPortalWorkflowsBatch {
11757
11794
  export interface RequestBody {
11758
- meter_id: string;
11759
- counter_id: string;
11760
- sort?: "asc" | "desc";
11761
- from?: number;
11762
- size?: number;
11763
- /**
11764
- * Template map (key to Handlebars template string). Each template is resolved per reading.
11765
- */
11766
- templates?: {
11767
- [name: string]: string;
11768
- };
11769
- /**
11770
- * Template map resolved against the counter entity.
11771
- */
11772
- counter_templates?: {
11773
- [name: string]: string;
11774
- };
11795
+ entities: [
11796
+ {
11797
+ /**
11798
+ * ID of the entity
11799
+ */
11800
+ id: string;
11801
+ /**
11802
+ * Schema slug of the entity
11803
+ * example:
11804
+ * order
11805
+ */
11806
+ slug: string;
11807
+ },
11808
+ {
11809
+ /**
11810
+ * ID of the entity
11811
+ */
11812
+ id: string;
11813
+ /**
11814
+ * Schema slug of the entity
11815
+ * example:
11816
+ * order
11817
+ */
11818
+ slug: string;
11819
+ }?,
11820
+ {
11821
+ /**
11822
+ * ID of the entity
11823
+ */
11824
+ id: string;
11825
+ /**
11826
+ * Schema slug of the entity
11827
+ * example:
11828
+ * order
11829
+ */
11830
+ slug: string;
11831
+ }?,
11832
+ {
11833
+ /**
11834
+ * ID of the entity
11835
+ */
11836
+ id: string;
11837
+ /**
11838
+ * Schema slug of the entity
11839
+ * example:
11840
+ * order
11841
+ */
11842
+ slug: string;
11843
+ }?,
11844
+ {
11845
+ /**
11846
+ * ID of the entity
11847
+ */
11848
+ id: string;
11849
+ /**
11850
+ * Schema slug of the entity
11851
+ * example:
11852
+ * order
11853
+ */
11854
+ slug: string;
11855
+ }?,
11856
+ {
11857
+ /**
11858
+ * ID of the entity
11859
+ */
11860
+ id: string;
11861
+ /**
11862
+ * Schema slug of the entity
11863
+ * example:
11864
+ * order
11865
+ */
11866
+ slug: string;
11867
+ }?,
11868
+ {
11869
+ /**
11870
+ * ID of the entity
11871
+ */
11872
+ id: string;
11873
+ /**
11874
+ * Schema slug of the entity
11875
+ * example:
11876
+ * order
11877
+ */
11878
+ slug: string;
11879
+ }?,
11880
+ {
11881
+ /**
11882
+ * ID of the entity
11883
+ */
11884
+ id: string;
11885
+ /**
11886
+ * Schema slug of the entity
11887
+ * example:
11888
+ * order
11889
+ */
11890
+ slug: string;
11891
+ }?,
11892
+ {
11893
+ /**
11894
+ * ID of the entity
11895
+ */
11896
+ id: string;
11897
+ /**
11898
+ * Schema slug of the entity
11899
+ * example:
11900
+ * order
11901
+ */
11902
+ slug: string;
11903
+ }?,
11904
+ {
11905
+ /**
11906
+ * ID of the entity
11907
+ */
11908
+ id: string;
11909
+ /**
11910
+ * Schema slug of the entity
11911
+ * example:
11912
+ * order
11913
+ */
11914
+ slug: string;
11915
+ }?,
11916
+ {
11917
+ /**
11918
+ * ID of the entity
11919
+ */
11920
+ id: string;
11921
+ /**
11922
+ * Schema slug of the entity
11923
+ * example:
11924
+ * order
11925
+ */
11926
+ slug: string;
11927
+ }?,
11928
+ {
11929
+ /**
11930
+ * ID of the entity
11931
+ */
11932
+ id: string;
11933
+ /**
11934
+ * Schema slug of the entity
11935
+ * example:
11936
+ * order
11937
+ */
11938
+ slug: string;
11939
+ }?,
11940
+ {
11941
+ /**
11942
+ * ID of the entity
11943
+ */
11944
+ id: string;
11945
+ /**
11946
+ * Schema slug of the entity
11947
+ * example:
11948
+ * order
11949
+ */
11950
+ slug: string;
11951
+ }?,
11952
+ {
11953
+ /**
11954
+ * ID of the entity
11955
+ */
11956
+ id: string;
11957
+ /**
11958
+ * Schema slug of the entity
11959
+ * example:
11960
+ * order
11961
+ */
11962
+ slug: string;
11963
+ }?,
11964
+ {
11965
+ /**
11966
+ * ID of the entity
11967
+ */
11968
+ id: string;
11969
+ /**
11970
+ * Schema slug of the entity
11971
+ * example:
11972
+ * order
11973
+ */
11974
+ slug: string;
11975
+ }?,
11976
+ {
11977
+ /**
11978
+ * ID of the entity
11979
+ */
11980
+ id: string;
11981
+ /**
11982
+ * Schema slug of the entity
11983
+ * example:
11984
+ * order
11985
+ */
11986
+ slug: string;
11987
+ }?,
11988
+ {
11989
+ /**
11990
+ * ID of the entity
11991
+ */
11992
+ id: string;
11993
+ /**
11994
+ * Schema slug of the entity
11995
+ * example:
11996
+ * order
11997
+ */
11998
+ slug: string;
11999
+ }?,
12000
+ {
12001
+ /**
12002
+ * ID of the entity
12003
+ */
12004
+ id: string;
12005
+ /**
12006
+ * Schema slug of the entity
12007
+ * example:
12008
+ * order
12009
+ */
12010
+ slug: string;
12011
+ }?,
12012
+ {
12013
+ /**
12014
+ * ID of the entity
12015
+ */
12016
+ id: string;
12017
+ /**
12018
+ * Schema slug of the entity
12019
+ * example:
12020
+ * order
12021
+ */
12022
+ slug: string;
12023
+ }?,
12024
+ {
12025
+ /**
12026
+ * ID of the entity
12027
+ */
12028
+ id: string;
12029
+ /**
12030
+ * Schema slug of the entity
12031
+ * example:
12032
+ * order
12033
+ */
12034
+ slug: string;
12035
+ }?,
12036
+ {
12037
+ /**
12038
+ * ID of the entity
12039
+ */
12040
+ id: string;
12041
+ /**
12042
+ * Schema slug of the entity
12043
+ * example:
12044
+ * order
12045
+ */
12046
+ slug: string;
12047
+ }?,
12048
+ {
12049
+ /**
12050
+ * ID of the entity
12051
+ */
12052
+ id: string;
12053
+ /**
12054
+ * Schema slug of the entity
12055
+ * example:
12056
+ * order
12057
+ */
12058
+ slug: string;
12059
+ }?,
12060
+ {
12061
+ /**
12062
+ * ID of the entity
12063
+ */
12064
+ id: string;
12065
+ /**
12066
+ * Schema slug of the entity
12067
+ * example:
12068
+ * order
12069
+ */
12070
+ slug: string;
12071
+ }?,
12072
+ {
12073
+ /**
12074
+ * ID of the entity
12075
+ */
12076
+ id: string;
12077
+ /**
12078
+ * Schema slug of the entity
12079
+ * example:
12080
+ * order
12081
+ */
12082
+ slug: string;
12083
+ }?,
12084
+ {
12085
+ /**
12086
+ * ID of the entity
12087
+ */
12088
+ id: string;
12089
+ /**
12090
+ * Schema slug of the entity
12091
+ * example:
12092
+ * order
12093
+ */
12094
+ slug: string;
12095
+ }?,
12096
+ {
12097
+ /**
12098
+ * ID of the entity
12099
+ */
12100
+ id: string;
12101
+ /**
12102
+ * Schema slug of the entity
12103
+ * example:
12104
+ * order
12105
+ */
12106
+ slug: string;
12107
+ }?,
12108
+ {
12109
+ /**
12110
+ * ID of the entity
12111
+ */
12112
+ id: string;
12113
+ /**
12114
+ * Schema slug of the entity
12115
+ * example:
12116
+ * order
12117
+ */
12118
+ slug: string;
12119
+ }?,
12120
+ {
12121
+ /**
12122
+ * ID of the entity
12123
+ */
12124
+ id: string;
12125
+ /**
12126
+ * Schema slug of the entity
12127
+ * example:
12128
+ * order
12129
+ */
12130
+ slug: string;
12131
+ }?,
12132
+ {
12133
+ /**
12134
+ * ID of the entity
12135
+ */
12136
+ id: string;
12137
+ /**
12138
+ * Schema slug of the entity
12139
+ * example:
12140
+ * order
12141
+ */
12142
+ slug: string;
12143
+ }?,
12144
+ {
12145
+ /**
12146
+ * ID of the entity
12147
+ */
12148
+ id: string;
12149
+ /**
12150
+ * Schema slug of the entity
12151
+ * example:
12152
+ * order
12153
+ */
12154
+ slug: string;
12155
+ }?,
12156
+ {
12157
+ /**
12158
+ * ID of the entity
12159
+ */
12160
+ id: string;
12161
+ /**
12162
+ * Schema slug of the entity
12163
+ * example:
12164
+ * order
12165
+ */
12166
+ slug: string;
12167
+ }?,
12168
+ {
12169
+ /**
12170
+ * ID of the entity
12171
+ */
12172
+ id: string;
12173
+ /**
12174
+ * Schema slug of the entity
12175
+ * example:
12176
+ * order
12177
+ */
12178
+ slug: string;
12179
+ }?,
12180
+ {
12181
+ /**
12182
+ * ID of the entity
12183
+ */
12184
+ id: string;
12185
+ /**
12186
+ * Schema slug of the entity
12187
+ * example:
12188
+ * order
12189
+ */
12190
+ slug: string;
12191
+ }?,
12192
+ {
12193
+ /**
12194
+ * ID of the entity
12195
+ */
12196
+ id: string;
12197
+ /**
12198
+ * Schema slug of the entity
12199
+ * example:
12200
+ * order
12201
+ */
12202
+ slug: string;
12203
+ }?,
12204
+ {
12205
+ /**
12206
+ * ID of the entity
12207
+ */
12208
+ id: string;
12209
+ /**
12210
+ * Schema slug of the entity
12211
+ * example:
12212
+ * order
12213
+ */
12214
+ slug: string;
12215
+ }?,
12216
+ {
12217
+ /**
12218
+ * ID of the entity
12219
+ */
12220
+ id: string;
12221
+ /**
12222
+ * Schema slug of the entity
12223
+ * example:
12224
+ * order
12225
+ */
12226
+ slug: string;
12227
+ }?,
12228
+ {
12229
+ /**
12230
+ * ID of the entity
12231
+ */
12232
+ id: string;
12233
+ /**
12234
+ * Schema slug of the entity
12235
+ * example:
12236
+ * order
12237
+ */
12238
+ slug: string;
12239
+ }?,
12240
+ {
12241
+ /**
12242
+ * ID of the entity
12243
+ */
12244
+ id: string;
12245
+ /**
12246
+ * Schema slug of the entity
12247
+ * example:
12248
+ * order
12249
+ */
12250
+ slug: string;
12251
+ }?,
12252
+ {
12253
+ /**
12254
+ * ID of the entity
12255
+ */
12256
+ id: string;
12257
+ /**
12258
+ * Schema slug of the entity
12259
+ * example:
12260
+ * order
12261
+ */
12262
+ slug: string;
12263
+ }?,
12264
+ {
12265
+ /**
12266
+ * ID of the entity
12267
+ */
12268
+ id: string;
12269
+ /**
12270
+ * Schema slug of the entity
12271
+ * example:
12272
+ * order
12273
+ */
12274
+ slug: string;
12275
+ }?,
12276
+ {
12277
+ /**
12278
+ * ID of the entity
12279
+ */
12280
+ id: string;
12281
+ /**
12282
+ * Schema slug of the entity
12283
+ * example:
12284
+ * order
12285
+ */
12286
+ slug: string;
12287
+ }?,
12288
+ {
12289
+ /**
12290
+ * ID of the entity
12291
+ */
12292
+ id: string;
12293
+ /**
12294
+ * Schema slug of the entity
12295
+ * example:
12296
+ * order
12297
+ */
12298
+ slug: string;
12299
+ }?,
12300
+ {
12301
+ /**
12302
+ * ID of the entity
12303
+ */
12304
+ id: string;
12305
+ /**
12306
+ * Schema slug of the entity
12307
+ * example:
12308
+ * order
12309
+ */
12310
+ slug: string;
12311
+ }?,
12312
+ {
12313
+ /**
12314
+ * ID of the entity
12315
+ */
12316
+ id: string;
12317
+ /**
12318
+ * Schema slug of the entity
12319
+ * example:
12320
+ * order
12321
+ */
12322
+ slug: string;
12323
+ }?,
12324
+ {
12325
+ /**
12326
+ * ID of the entity
12327
+ */
12328
+ id: string;
12329
+ /**
12330
+ * Schema slug of the entity
12331
+ * example:
12332
+ * order
12333
+ */
12334
+ slug: string;
12335
+ }?,
12336
+ {
12337
+ /**
12338
+ * ID of the entity
12339
+ */
12340
+ id: string;
12341
+ /**
12342
+ * Schema slug of the entity
12343
+ * example:
12344
+ * order
12345
+ */
12346
+ slug: string;
12347
+ }?,
12348
+ {
12349
+ /**
12350
+ * ID of the entity
12351
+ */
12352
+ id: string;
12353
+ /**
12354
+ * Schema slug of the entity
12355
+ * example:
12356
+ * order
12357
+ */
12358
+ slug: string;
12359
+ }?,
12360
+ {
12361
+ /**
12362
+ * ID of the entity
12363
+ */
12364
+ id: string;
12365
+ /**
12366
+ * Schema slug of the entity
12367
+ * example:
12368
+ * order
12369
+ */
12370
+ slug: string;
12371
+ }?,
12372
+ {
12373
+ /**
12374
+ * ID of the entity
12375
+ */
12376
+ id: string;
12377
+ /**
12378
+ * Schema slug of the entity
12379
+ * example:
12380
+ * order
12381
+ */
12382
+ slug: string;
12383
+ }?,
12384
+ {
12385
+ /**
12386
+ * ID of the entity
12387
+ */
12388
+ id: string;
12389
+ /**
12390
+ * Schema slug of the entity
12391
+ * example:
12392
+ * order
12393
+ */
12394
+ slug: string;
12395
+ }?
12396
+ ];
12397
+ }
12398
+ namespace Responses {
12399
+ export interface $200 {
12400
+ results?: /* Linearized portal workflows of a single entity */ Components.Schemas.EntityPortalWorkflows[];
12401
+ }
12402
+ export type $400 = Components.Responses.InvalidRequest;
12403
+ export type $401 = Components.Responses.Unauthorized;
12404
+ export type $403 = Components.Responses.Forbidden;
12405
+ export type $500 = Components.Responses.InternalServerError;
12406
+ }
12407
+ }
12408
+ namespace GetEntityWorkflows {
12409
+ namespace Parameters {
12410
+ /**
12411
+ * ID of the entity
12412
+ * example:
12413
+ * abc123
12414
+ */
12415
+ export type Id = string;
12416
+ /**
12417
+ * Schema slug of the entity
12418
+ * example:
12419
+ * contact
12420
+ */
12421
+ export type Slug = string;
12422
+ }
12423
+ export interface PathParameters {
12424
+ slug: /**
12425
+ * Schema slug of the entity
12426
+ * example:
12427
+ * contact
12428
+ */
12429
+ Parameters.Slug;
12430
+ id: /**
12431
+ * ID of the entity
12432
+ * example:
12433
+ * abc123
12434
+ */
12435
+ Parameters.Id;
12436
+ }
12437
+ namespace Responses {
12438
+ export interface $200 {
12439
+ workflow_executions?: /**
12440
+ * example:
12441
+ * {
12442
+ * "id": "8gja72h6kas6h",
12443
+ * "name": "Lead Qualification",
12444
+ * "trigger": "MANUAL",
12445
+ * "status": "STARTED",
12446
+ * "creationTime": "2021-04-27T12:01:13.000Z",
12447
+ * "lastUpdateTime": "2021-04-27T12:01:13.000Z",
12448
+ * "dueDate": "2021-04-27T12:01:13.000Z",
12449
+ * "assignedTo": [
12450
+ * "252",
12451
+ * "29052"
12452
+ * ],
12453
+ * "flow": [
12454
+ * {
12455
+ * "id": "sectionId1",
12456
+ * "name": "Initial Information Gathering",
12457
+ * "steps": [
12458
+ * {
12459
+ * "id": "sada5641f3a21",
12460
+ * "name": "Call client and confirm address and product",
12461
+ * "status": "ASSIGNED",
12462
+ * "assignedTo": [
12463
+ * "11"
12464
+ * ]
12465
+ * },
12466
+ * {
12467
+ * "id": "sada5641f3a22",
12468
+ * "name": "Check product availability",
12469
+ * "status": "UNASSIGNED"
12470
+ * },
12471
+ * {
12472
+ * "id": "sada5641f3a23",
12473
+ * "name": "Send email confirming contact with the client",
12474
+ * "status": "SKIPPED"
12475
+ * }
12476
+ * ]
12477
+ * },
12478
+ * {
12479
+ * "id": "firstLevelStepId1",
12480
+ * "name": "Print and send catalog",
12481
+ * "status": "SKIPPED",
12482
+ * "dueDate": "2023-01-15T20:00:00"
12483
+ * }
12484
+ * ]
12485
+ * }
12486
+ */
12487
+ Components.Schemas.WorkflowExecution[];
12488
+ }
12489
+ export type $401 = Components.Responses.Unauthorized;
12490
+ export type $403 = Components.Responses.Forbidden;
12491
+ export type $404 = Components.Responses.NotFound;
12492
+ export type $500 = Components.Responses.InternalServerError;
12493
+ }
12494
+ }
12495
+ namespace GetExport {
12496
+ namespace Parameters {
12497
+ export type JobId = string;
12498
+ }
12499
+ export interface PathParameters {
12500
+ jobId: Parameters.JobId;
12501
+ }
12502
+ namespace Responses {
12503
+ export interface $200 {
12504
+ jobId?: string;
12505
+ status?: "queued" | "running" | "ready" | "failed" | "expired";
12506
+ downloadUrl?: string;
12507
+ error?: string;
12508
+ }
12509
+ export type $401 = Components.Responses.Unauthorized;
12510
+ export interface $404 {
12511
+ }
12512
+ export type $500 = Components.Responses.InternalServerError;
12513
+ }
12514
+ }
12515
+ namespace GetExternalLinks {
12516
+ namespace Parameters {
12517
+ export type ContactId = /**
12518
+ * Entity ID
12519
+ * example:
12520
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12521
+ */
12522
+ Components.Schemas.EntityId /* uuid */;
12523
+ export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
12524
+ }
12525
+ export interface QueryParameters {
12526
+ origin?: Parameters.Origin;
12527
+ contactId?: Parameters.ContactId;
12528
+ }
12529
+ namespace Responses {
12530
+ export type $200 = Components.Schemas.ExternalLink[];
12531
+ export type $401 = Components.Responses.Unauthorized;
12532
+ export type $403 = Components.Responses.Forbidden;
12533
+ export type $500 = Components.Responses.InternalServerError;
12534
+ }
12535
+ }
12536
+ namespace GetExternalLinksV3 {
12537
+ namespace Parameters {
12538
+ export type ContactId = /**
12539
+ * Entity ID
12540
+ * example:
12541
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12542
+ */
12543
+ Components.Schemas.EntityId /* uuid */;
12544
+ export type PortalId = /**
12545
+ * ID of the portal
12546
+ * example:
12547
+ * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
12548
+ */
12549
+ Components.Schemas.PortalId;
12550
+ }
12551
+ export interface QueryParameters {
12552
+ portal_id?: Parameters.PortalId;
12553
+ contactId?: Parameters.ContactId;
12554
+ }
12555
+ namespace Responses {
12556
+ export type $200 = Components.Schemas.ExternalLink[];
12557
+ export type $401 = Components.Responses.Unauthorized;
12558
+ export type $403 = Components.Responses.Forbidden;
12559
+ export type $500 = Components.Responses.InternalServerError;
12560
+ }
12561
+ }
12562
+ namespace GetFileById {
12563
+ namespace Parameters {
12564
+ export type Id = /**
12565
+ * Entity ID
12566
+ * example:
12567
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12568
+ */
12569
+ Components.Schemas.EntityId /* uuid */;
12570
+ }
12571
+ export interface PathParameters {
12572
+ id: Parameters.Id;
12573
+ }
12574
+ namespace Responses {
12575
+ export interface $200 {
12576
+ file?: /* The file entity */ Components.Schemas.FileItem;
12577
+ }
12578
+ export type $401 = Components.Responses.Unauthorized;
12579
+ export type $403 = Components.Responses.Forbidden;
12580
+ export type $404 = Components.Responses.NotFound;
12581
+ export type $500 = Components.Responses.InternalServerError;
12582
+ }
12583
+ }
12584
+ namespace GetFilePreview {
12585
+ namespace Parameters {
12586
+ export type Id = /**
12587
+ * Entity ID
12588
+ * example:
12589
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12590
+ */
12591
+ Components.Schemas.EntityId /* uuid */;
12592
+ }
12593
+ export interface PathParameters {
12594
+ id: Parameters.Id;
12595
+ }
12596
+ namespace Responses {
12597
+ export type $200 = Components.Schemas.FilePreviewResult;
12598
+ export type $401 = Components.Responses.Unauthorized;
12599
+ export type $403 = Components.Responses.Forbidden;
12600
+ export type $404 = Components.Responses.NotFound;
12601
+ export type $500 = Components.Responses.InternalServerError;
12602
+ }
12603
+ }
12604
+ namespace GetFilesCountByEntity {
12605
+ namespace Responses {
12606
+ export type $200 = Components.Schemas.EntityFileCount[];
12607
+ export type $401 = Components.Responses.Unauthorized;
12608
+ export type $403 = Components.Responses.Forbidden;
12609
+ export type $404 = Components.Responses.NotFound;
12610
+ export type $500 = Components.Responses.InternalServerError;
12611
+ }
12612
+ }
12613
+ namespace GetMeterReadings {
12614
+ export interface RequestBody {
12615
+ meter_id: string;
12616
+ counter_id: string;
12617
+ sort?: "asc" | "desc";
12618
+ from?: number;
12619
+ size?: number;
12620
+ /**
12621
+ * Template map (key to Handlebars template string). Each template is resolved per reading.
12622
+ */
12623
+ templates?: {
12624
+ [name: string]: string;
12625
+ };
12626
+ /**
12627
+ * Template map resolved against the counter entity.
12628
+ */
12629
+ counter_templates?: {
12630
+ [name: string]: string;
12631
+ };
11775
12632
  }
11776
12633
  namespace Responses {
11777
12634
  export interface $200 {
@@ -14831,6 +15688,10 @@ declare namespace Paths {
14831
15688
  * The email address registered in the journey's Login & Registration block
14832
15689
  */
14833
15690
  journey_registration_email?: string;
15691
+ /**
15692
+ * The portal selected on the journey's Login & Registration block, used to target the registration link to that portal
15693
+ */
15694
+ journey_registration_portal_id?: string;
14834
15695
  };
14835
15696
  };
14836
15697
  }
@@ -15264,9 +16125,9 @@ declare namespace Paths {
15264
16125
  */
15265
16126
  Components.Schemas.PortalId;
15266
16127
  /**
15267
- * Items to swap
16128
+ * Optional, opt-in configuration items to additionally swap on top of the always-swapped pages and functional config. Defaults to an empty list (nothing extra swapped). Domain and access/security settings can never be swapped.
15268
16129
  */
15269
- items_to_swap?: Components.Schemas.SwappableConfig[];
16130
+ items_to_swap?: /* Optional configuration item that a portal swap can additionally include. The swap always transfers the pages and the functional experience config that keep the portal working. These items are opt-in on top of that and are OFF by default. Domain and access/security settings (domain, cognito_details, auth_settings) can never be swapped and are therefore not part of this enum. */ Components.Schemas.SwappableConfig[];
15270
16131
  }
15271
16132
  namespace Responses {
15272
16133
  export interface $200 {
@@ -15597,8 +16458,8 @@ declare namespace Paths {
15597
16458
  email: string;
15598
16459
  /**
15599
16460
  * Password of the portal user for confirmation.
15600
- * Required unless a `changeEmail` portal extension hook with `require_password_confirmation` disabled is configured for the portal.
15601
- * Also required by a `changeEmail` hook with `change_mode` set to `synchronous`, except for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
16461
+ * Required unless a `changeEmail` portal extension hook with `require_password_confirmation` disabled is configured for the portal,
16462
+ * or the portal user's identity is managed by an identity provider - an SSO login has no password to confirm.
15602
16463
  *
15603
16464
  */
15604
16465
  password?: string;
@@ -16259,7 +17120,7 @@ export interface OperationMethods {
16259
17120
  config?: AxiosRequestConfig
16260
17121
  ): OperationResponse<Paths.GetPublicPortalExtensionDetailsV3.Responses.$200>
16261
17122
  /**
16262
- * getConsumption - Get Consumption
17123
+ * getConsumption - getConsumption
16263
17124
  *
16264
17125
  * Get energy consumption data between a given time period.
16265
17126
  */
@@ -16269,7 +17130,7 @@ export interface OperationMethods {
16269
17130
  config?: AxiosRequestConfig
16270
17131
  ): OperationResponse<Paths.GetConsumption.Responses.$200>
16271
17132
  /**
16272
- * prepareVisualizationExport - Prepare Visualization Export
17133
+ * prepareVisualizationExport - prepareVisualizationExport
16273
17134
  *
16274
17135
  * Asks an installed App to prepare a downloadable export of a visualization (consumption chart, dynamic tariff chart, etc.). The export is produced by the third-party App via a configured portal extension hook of type `dataExport` — this endpoint does not generate the file itself, it forwards the request to the configured hook and returns the descriptor the App provides (typically a `download_url`).
16275
17136
  *
@@ -16280,7 +17141,7 @@ export interface OperationMethods {
16280
17141
  config?: AxiosRequestConfig
16281
17142
  ): OperationResponse<Paths.PrepareVisualizationExport.Responses.$200>
16282
17143
  /**
16283
- * getVisualizationMetadata - Get Visualization Metadata
17144
+ * getVisualizationMetadata - getVisualizationMetadata
16284
17145
  *
16285
17146
  * Returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). Resolves the extension's `visualizationMetadata` hook implicitly from `app_id` + `extensionId` and invokes it. Supplies the response as a structured payload that the portal uses to configure type/aggregation options, supported intervals, and the available data range.
16286
17147
  *
@@ -16291,7 +17152,7 @@ export interface OperationMethods {
16291
17152
  config?: AxiosRequestConfig
16292
17153
  ): OperationResponse<Paths.GetVisualizationMetadata.Responses.$200>
16293
17154
  /**
16294
- * getCosts - Get Costs
17155
+ * getCosts - getCosts
16295
17156
  *
16296
17157
  * Get energy cost data between a given time period.
16297
17158
  */
@@ -16301,7 +17162,7 @@ export interface OperationMethods {
16301
17162
  config?: AxiosRequestConfig
16302
17163
  ): OperationResponse<Paths.GetCosts.Responses.$200>
16303
17164
  /**
16304
- * getPrices - Get Prices
17165
+ * getPrices - getPrices
16305
17166
  *
16306
17167
  * Get energy prices data between a given time period.
16307
17168
  */
@@ -17137,6 +17998,16 @@ export interface OperationMethods {
17137
17998
  data?: any,
17138
17999
  config?: AxiosRequestConfig
17139
18000
  ): OperationResponse<Paths.GetFileById.Responses.$200>
18001
+ /**
18002
+ * getFilePreview - getFilePreview
18003
+ *
18004
+ * resolves an in-portal preview for a file. Returns a Content-Disposition: inline URL for directly-previewable files (PDF, common image formats), or a document-api PDF conversion result for the Office formats it currently supports (docx/xls/xlsx/xlsm) -- NOT doc/csv/pptx, which document-api's conversion does not cover today. Returns { kind: "unsupported" } (no url) for anything else, so the caller can fall back to the existing download flow. An optional `download_url` is returned for all kinds — including "unsupported" — whenever the file entity exposes one, so the client can render a real anchor for its Download action; it is only a Content-Disposition: attachment URL for private files, and for other access levels it is the plain object URL, which may render inline. The previewability decision is made server-side from the file's own filename/mime_type — never trust a client-supplied kind for anything security-sensitive.
18005
+ */
18006
+ 'getFilePreview'(
18007
+ parameters?: Parameters<Paths.GetFilePreview.PathParameters> | null,
18008
+ data?: any,
18009
+ config?: AxiosRequestConfig
18010
+ ): OperationResponse<Paths.GetFilePreview.Responses.$200>
17140
18011
  /**
17141
18012
  * trackFileDownloaded - trackFileDownloaded
17142
18013
  *
@@ -17148,7 +18019,7 @@ export interface OperationMethods {
17148
18019
  config?: AxiosRequestConfig
17149
18020
  ): OperationResponse<Paths.TrackFileDownloaded.Responses.$200>
17150
18021
  /**
17151
- * getFilesCountByEntity - getFileCountByEntity
18022
+ * getFilesCountByEntity - getFilesCountByEntity
17152
18023
  *
17153
18024
  * Fetch file counts for all ECP user related entities
17154
18025
  */
@@ -17302,7 +18173,7 @@ export interface OperationMethods {
17302
18173
  config?: AxiosRequestConfig
17303
18174
  ): OperationResponse<Paths.UpdateWorkflowStepAsDone.Responses.$200>
17304
18175
  /**
17305
- * getEntityWorkflows - Get workflows for an entity
18176
+ * getEntityWorkflows - getEntityWorkflows
17306
18177
  *
17307
18178
  * Get all workflows associated with an entity (requires access to the entity)
17308
18179
  */
@@ -17312,7 +18183,45 @@ export interface OperationMethods {
17312
18183
  config?: AxiosRequestConfig
17313
18184
  ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
17314
18185
  /**
17315
- * uploadMeterReadingPhoto - Upload Meter Reading Photo
18186
+ * getEntityPortalWorkflows - getEntityPortalWorkflows
18187
+ *
18188
+ * Get all portal-relevant workflows associated with an entity (requires access to the entity),
18189
+ * linearized by the Workflows API into a flat, ordered list of portal-visible tasks.
18190
+ *
18191
+ * Unlike `getEntityWorkflows`, this endpoint returns a single uniform shape for both legacy
18192
+ * (V1) workflow executions and graph-based (V2) flow executions — the execution graph is
18193
+ * already resolved server-side (active path, task reachability, chronological ordering), so
18194
+ * clients can render a timeline without any graph traversal logic.
18195
+ *
18196
+ * Tasks carry the config of both portal audiences (`ecp` and `installer`); clients filter
18197
+ * per their configured audience, so one response serves every block on a page.
18198
+ *
18199
+ */
18200
+ 'getEntityPortalWorkflows'(
18201
+ parameters?: Parameters<Paths.GetEntityPortalWorkflows.PathParameters> | null,
18202
+ data?: any,
18203
+ config?: AxiosRequestConfig
18204
+ ): OperationResponse<Paths.GetEntityPortalWorkflows.Responses.$200>
18205
+ /**
18206
+ * getEntityPortalWorkflowsBatch - getEntityPortalWorkflowsBatch
18207
+ *
18208
+ * Batch variant of `getEntityPortalWorkflows`: returns portal-relevant workflows for
18209
+ * up to 50 entities — schemas may differ — in a single call, each already linearized
18210
+ * by the Workflows API into a flat, ordered list of portal-visible tasks.
18211
+ *
18212
+ * Intended for portal list views (e.g. an entity list where every card shows its
18213
+ * workflow progress). Entities the portal user cannot access are omitted from the
18214
+ * response; an entry with an empty task list means the entity has no portal-relevant
18215
+ * workflow.
18216
+ *
18217
+ */
18218
+ 'getEntityPortalWorkflowsBatch'(
18219
+ parameters?: Parameters<UnknownParamsObject> | null,
18220
+ data?: Paths.GetEntityPortalWorkflowsBatch.RequestBody,
18221
+ config?: AxiosRequestConfig
18222
+ ): OperationResponse<Paths.GetEntityPortalWorkflowsBatch.Responses.$200>
18223
+ /**
18224
+ * uploadMeterReadingPhoto - uploadMeterReadingPhoto
17316
18225
  *
17317
18226
  * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
17318
18227
  */
@@ -17322,7 +18231,7 @@ export interface OperationMethods {
17322
18231
  config?: AxiosRequestConfig
17323
18232
  ): OperationResponse<Paths.UploadMeterReadingPhoto.Responses.$200>
17324
18233
  /**
17325
- * createMeterReading - Create Meter Reading
18234
+ * createMeterReading - createMeterReading
17326
18235
  *
17327
18236
  * Inserts a new meter reading.
17328
18237
  */
@@ -17332,7 +18241,9 @@ export interface OperationMethods {
17332
18241
  config?: AxiosRequestConfig
17333
18242
  ): OperationResponse<Paths.CreateMeterReading.Responses.$200>
17334
18243
  /**
17335
- * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
18244
+ * getAllowedMeterReadingRange - getAllowedMeterReadingRange
18245
+ *
18246
+ * Get allowed reading range for all counters of a meter from the configured
17336
18247
  * third-party plausibility check hook using 'range' mode. This endpoint requires
17337
18248
  * a plausibility check hook to be configured for the portal.
17338
18249
  *
@@ -17343,7 +18254,7 @@ export interface OperationMethods {
17343
18254
  config?: AxiosRequestConfig
17344
18255
  ): OperationResponse<Paths.GetAllowedMeterReadingRange.Responses.$200>
17345
18256
  /**
17346
- * getMeterReadings - Get meter readings with optional template resolution
18257
+ * getMeterReadings - getMeterReadings
17347
18258
  *
17348
18259
  * Fetches meter readings for a counter and optionally resolves Handlebars
17349
18260
  * template strings against each reading object using @epilot/variables.
@@ -17590,7 +18501,7 @@ export interface OperationMethods {
17590
18501
  config?: AxiosRequestConfig
17591
18502
  ): OperationResponse<Paths.GetUserEntryPoint.Responses.$200>
17592
18503
  /**
17593
- * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
18504
+ * updateCampaignPortalBlockStatus - updateCampaignPortalBlockStatus
17594
18505
  *
17595
18506
  * Updates the status of a campaign portal block for multiple recipients.
17596
18507
  */
@@ -17984,7 +18895,7 @@ export interface PathsDictionary {
17984
18895
  }
17985
18896
  ['/v2/portal/consumption']: {
17986
18897
  /**
17987
- * getConsumption - Get Consumption
18898
+ * getConsumption - getConsumption
17988
18899
  *
17989
18900
  * Get energy consumption data between a given time period.
17990
18901
  */
@@ -17996,7 +18907,7 @@ export interface PathsDictionary {
17996
18907
  }
17997
18908
  ['/v2/portal/visualization:export']: {
17998
18909
  /**
17999
- * prepareVisualizationExport - Prepare Visualization Export
18910
+ * prepareVisualizationExport - prepareVisualizationExport
18000
18911
  *
18001
18912
  * Asks an installed App to prepare a downloadable export of a visualization (consumption chart, dynamic tariff chart, etc.). The export is produced by the third-party App via a configured portal extension hook of type `dataExport` — this endpoint does not generate the file itself, it forwards the request to the configured hook and returns the descriptor the App provides (typically a `download_url`).
18002
18913
  *
@@ -18009,7 +18920,7 @@ export interface PathsDictionary {
18009
18920
  }
18010
18921
  ['/v2/portal/visualization/metadata']: {
18011
18922
  /**
18012
- * getVisualizationMetadata - Get Visualization Metadata
18923
+ * getVisualizationMetadata - getVisualizationMetadata
18013
18924
  *
18014
18925
  * Returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). Resolves the extension's `visualizationMetadata` hook implicitly from `app_id` + `extensionId` and invokes it. Supplies the response as a structured payload that the portal uses to configure type/aggregation options, supported intervals, and the available data range.
18015
18926
  *
@@ -18022,7 +18933,7 @@ export interface PathsDictionary {
18022
18933
  }
18023
18934
  ['/v2/portal/costs']: {
18024
18935
  /**
18025
- * getCosts - Get Costs
18936
+ * getCosts - getCosts
18026
18937
  *
18027
18938
  * Get energy cost data between a given time period.
18028
18939
  */
@@ -18034,7 +18945,7 @@ export interface PathsDictionary {
18034
18945
  }
18035
18946
  ['/v2/portal/prices']: {
18036
18947
  /**
18037
- * getPrices - Get Prices
18948
+ * getPrices - getPrices
18038
18949
  *
18039
18950
  * Get energy prices data between a given time period.
18040
18951
  */
@@ -19007,6 +19918,18 @@ export interface PathsDictionary {
19007
19918
  config?: AxiosRequestConfig
19008
19919
  ): OperationResponse<Paths.GetFileById.Responses.$200>
19009
19920
  }
19921
+ ['/v2/portal/user/file/{id}/preview']: {
19922
+ /**
19923
+ * getFilePreview - getFilePreview
19924
+ *
19925
+ * resolves an in-portal preview for a file. Returns a Content-Disposition: inline URL for directly-previewable files (PDF, common image formats), or a document-api PDF conversion result for the Office formats it currently supports (docx/xls/xlsx/xlsm) -- NOT doc/csv/pptx, which document-api's conversion does not cover today. Returns { kind: "unsupported" } (no url) for anything else, so the caller can fall back to the existing download flow. An optional `download_url` is returned for all kinds — including "unsupported" — whenever the file entity exposes one, so the client can render a real anchor for its Download action; it is only a Content-Disposition: attachment URL for private files, and for other access levels it is the plain object URL, which may render inline. The previewability decision is made server-side from the file's own filename/mime_type — never trust a client-supplied kind for anything security-sensitive.
19926
+ */
19927
+ 'get'(
19928
+ parameters?: Parameters<Paths.GetFilePreview.PathParameters> | null,
19929
+ data?: any,
19930
+ config?: AxiosRequestConfig
19931
+ ): OperationResponse<Paths.GetFilePreview.Responses.$200>
19932
+ }
19010
19933
  ['/v2/portal/user/file/{id}/downloaded']: {
19011
19934
  /**
19012
19935
  * trackFileDownloaded - trackFileDownloaded
@@ -19021,7 +19944,7 @@ export interface PathsDictionary {
19021
19944
  }
19022
19945
  ['/v2/portal/user/files/count-by-entity']: {
19023
19946
  /**
19024
- * getFilesCountByEntity - getFileCountByEntity
19947
+ * getFilesCountByEntity - getFilesCountByEntity
19025
19948
  *
19026
19949
  * Fetch file counts for all ECP user related entities
19027
19950
  */
@@ -19203,7 +20126,7 @@ export interface PathsDictionary {
19203
20126
  }
19204
20127
  ['/v2/portal/entity/{slug}/{id}/workflows']: {
19205
20128
  /**
19206
- * getEntityWorkflows - Get workflows for an entity
20129
+ * getEntityWorkflows - getEntityWorkflows
19207
20130
  *
19208
20131
  * Get all workflows associated with an entity (requires access to the entity)
19209
20132
  */
@@ -19213,9 +20136,51 @@ export interface PathsDictionary {
19213
20136
  config?: AxiosRequestConfig
19214
20137
  ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
19215
20138
  }
20139
+ ['/v2/portal/entity/{slug}/{id}/workflows/linearized']: {
20140
+ /**
20141
+ * getEntityPortalWorkflows - getEntityPortalWorkflows
20142
+ *
20143
+ * Get all portal-relevant workflows associated with an entity (requires access to the entity),
20144
+ * linearized by the Workflows API into a flat, ordered list of portal-visible tasks.
20145
+ *
20146
+ * Unlike `getEntityWorkflows`, this endpoint returns a single uniform shape for both legacy
20147
+ * (V1) workflow executions and graph-based (V2) flow executions — the execution graph is
20148
+ * already resolved server-side (active path, task reachability, chronological ordering), so
20149
+ * clients can render a timeline without any graph traversal logic.
20150
+ *
20151
+ * Tasks carry the config of both portal audiences (`ecp` and `installer`); clients filter
20152
+ * per their configured audience, so one response serves every block on a page.
20153
+ *
20154
+ */
20155
+ 'get'(
20156
+ parameters?: Parameters<Paths.GetEntityPortalWorkflows.PathParameters> | null,
20157
+ data?: any,
20158
+ config?: AxiosRequestConfig
20159
+ ): OperationResponse<Paths.GetEntityPortalWorkflows.Responses.$200>
20160
+ }
20161
+ ['/v2/portal/entities/workflows/linearized/batch']: {
20162
+ /**
20163
+ * getEntityPortalWorkflowsBatch - getEntityPortalWorkflowsBatch
20164
+ *
20165
+ * Batch variant of `getEntityPortalWorkflows`: returns portal-relevant workflows for
20166
+ * up to 50 entities — schemas may differ — in a single call, each already linearized
20167
+ * by the Workflows API into a flat, ordered list of portal-visible tasks.
20168
+ *
20169
+ * Intended for portal list views (e.g. an entity list where every card shows its
20170
+ * workflow progress). Entities the portal user cannot access are omitted from the
20171
+ * response; an entry with an empty task list means the entity has no portal-relevant
20172
+ * workflow.
20173
+ *
20174
+ */
20175
+ 'post'(
20176
+ parameters?: Parameters<UnknownParamsObject> | null,
20177
+ data?: Paths.GetEntityPortalWorkflowsBatch.RequestBody,
20178
+ config?: AxiosRequestConfig
20179
+ ): OperationResponse<Paths.GetEntityPortalWorkflowsBatch.Responses.$200>
20180
+ }
19216
20181
  ['/v2/portal/metering/reading/photo']: {
19217
20182
  /**
19218
- * uploadMeterReadingPhoto - Upload Meter Reading Photo
20183
+ * uploadMeterReadingPhoto - uploadMeterReadingPhoto
19219
20184
  *
19220
20185
  * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
19221
20186
  */
@@ -19227,7 +20192,7 @@ export interface PathsDictionary {
19227
20192
  }
19228
20193
  ['/v2/portal/metering/reading']: {
19229
20194
  /**
19230
- * createMeterReading - Create Meter Reading
20195
+ * createMeterReading - createMeterReading
19231
20196
  *
19232
20197
  * Inserts a new meter reading.
19233
20198
  */
@@ -19239,7 +20204,9 @@ export interface PathsDictionary {
19239
20204
  }
19240
20205
  ['/v2/portal/metering/reading/allowed-range/{meter_id}']: {
19241
20206
  /**
19242
- * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
20207
+ * getAllowedMeterReadingRange - getAllowedMeterReadingRange
20208
+ *
20209
+ * Get allowed reading range for all counters of a meter from the configured
19243
20210
  * third-party plausibility check hook using 'range' mode. This endpoint requires
19244
20211
  * a plausibility check hook to be configured for the portal.
19245
20212
  *
@@ -19252,7 +20219,7 @@ export interface PathsDictionary {
19252
20219
  }
19253
20220
  ['/v2/portal/metering/readings']: {
19254
20221
  /**
19255
- * getMeterReadings - Get meter readings with optional template resolution
20222
+ * getMeterReadings - getMeterReadings
19256
20223
  *
19257
20224
  * Fetches meter readings for a counter and optionally resolves Handlebars
19258
20225
  * template strings against each reading object using @epilot/variables.
@@ -19529,7 +20496,7 @@ export interface PathsDictionary {
19529
20496
  }
19530
20497
  ['/v2/portal/campaign/{campaign_id}/entity:status']: {
19531
20498
  /**
19532
- * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
20499
+ * updateCampaignPortalBlockStatus - updateCampaignPortalBlockStatus
19533
20500
  *
19534
20501
  * Updates the status of a campaign portal block for multiple recipients.
19535
20502
  */
@@ -19833,6 +20800,7 @@ export type EntityGetParams = Components.Schemas.EntityGetParams;
19833
20800
  export type EntityId = Components.Schemas.EntityId;
19834
20801
  export type EntityItem = Components.Schemas.EntityItem;
19835
20802
  export type EntityMatchingConfig = Components.Schemas.EntityMatchingConfig;
20803
+ export type EntityPortalWorkflows = Components.Schemas.EntityPortalWorkflows;
19836
20804
  export type EntityResponse = Components.Schemas.EntityResponse;
19837
20805
  export type EntityResponseGroupedWithHits = Components.Schemas.EntityResponseGroupedWithHits;
19838
20806
  export type EntityResponseWithHits = Components.Schemas.EntityResponseWithHits;
@@ -19865,6 +20833,7 @@ export type ExtraSchemaAttributes = Components.Schemas.ExtraSchemaAttributes;
19865
20833
  export type FailedRuleErrorResp = Components.Schemas.FailedRuleErrorResp;
19866
20834
  export type File = Components.Schemas.File;
19867
20835
  export type FileItem = Components.Schemas.FileItem;
20836
+ export type FilePreviewResult = Components.Schemas.FilePreviewResult;
19868
20837
  export type Grant = Components.Schemas.Grant;
19869
20838
  export type IdentifierAttribute = Components.Schemas.IdentifierAttribute;
19870
20839
  export type InstallmentEvent = Components.Schemas.InstallmentEvent;
@@ -19896,9 +20865,12 @@ export type PortalConfig = Components.Schemas.PortalConfig;
19896
20865
  export type PortalConfigV3 = Components.Schemas.PortalConfigV3;
19897
20866
  export type PortalDataExportColumn = Components.Schemas.PortalDataExportColumn;
19898
20867
  export type PortalId = Components.Schemas.PortalId;
20868
+ export type PortalTaskConfig = Components.Schemas.PortalTaskConfig;
19899
20869
  export type PortalUser = Components.Schemas.PortalUser;
19900
20870
  export type PortalUserRegistrationStatus = Components.Schemas.PortalUserRegistrationStatus;
19901
20871
  export type PortalWidget = Components.Schemas.PortalWidget;
20872
+ export type PortalWorkflow = Components.Schemas.PortalWorkflow;
20873
+ export type PortalWorkflowTask = Components.Schemas.PortalWorkflowTask;
19902
20874
  export type Product = Components.Schemas.Product;
19903
20875
  export type ProductRecommendationsWidget = Components.Schemas.ProductRecommendationsWidget;
19904
20876
  export type ProviderConfig = Components.Schemas.ProviderConfig;