@epilot/customer-portal-client 0.39.15 → 0.40.1

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;
@@ -1453,6 +1459,10 @@ declare namespace Components {
1453
1459
  global_blocks?: {
1454
1460
  [name: string]: Block;
1455
1461
  };
1462
+ /**
1463
+ * Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.
1464
+ */
1465
+ notification_triggers?: NotificationTriggerConfig[];
1456
1466
  }
1457
1467
  export interface CommonConfigAttributesV3 {
1458
1468
  /**
@@ -2947,6 +2957,22 @@ declare namespace Components {
2947
2957
  */
2948
2958
  auto_create_cognito_user?: boolean;
2949
2959
  }
2960
+ /**
2961
+ * Linearized portal workflows of a single entity
2962
+ */
2963
+ export interface EntityPortalWorkflows {
2964
+ entity_id: string;
2965
+ /**
2966
+ * Empty when the entity has no portal-relevant workflow
2967
+ */
2968
+ portal_workflows: /**
2969
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
2970
+ * graph already linearized by the Workflows API into a flat, ordered list of
2971
+ * portal-visible tasks.
2972
+ *
2973
+ */
2974
+ PortalWorkflow[];
2975
+ }
2950
2976
  /**
2951
2977
  * Response for entity get request
2952
2978
  */
@@ -3299,6 +3325,10 @@ declare namespace Components {
3299
3325
  * Error message
3300
3326
  */
3301
3327
  message?: string;
3328
+ /**
3329
+ * 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.
3330
+ */
3331
+ reason?: string;
3302
3332
  }
3303
3333
  /**
3304
3334
  * example:
@@ -3621,7 +3651,7 @@ declare namespace Components {
3621
3651
  */
3622
3652
  change_mode?: "synchronous" | "asynchronous";
3623
3653
  /**
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.
3654
+ * 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
3655
  *
3626
3656
  */
3627
3657
  require_password_confirmation?: boolean;
@@ -4716,6 +4746,20 @@ declare namespace Components {
4716
4746
  */
4717
4747
  is_new?: boolean;
4718
4748
  }
4749
+ export interface FilePreviewResult {
4750
+ /**
4751
+ * 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.
4752
+ */
4753
+ kind: "pdf" | "image" | "unsupported";
4754
+ /**
4755
+ * 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.
4756
+ */
4757
+ url?: string; // uri
4758
+ /**
4759
+ * 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.
4760
+ */
4761
+ download_url?: string; // uri
4762
+ }
4719
4763
  export interface Grant {
4720
4764
  /**
4721
4765
  * Action for granting permission
@@ -5014,7 +5058,7 @@ declare namespace Components {
5014
5058
  /**
5015
5059
  * If the value is not provided, the system will be set with the time the request is processed.
5016
5060
  * example:
5017
- * 2022-10-10
5061
+ * 2022-10-10T00:00:00.000Z
5018
5062
  */
5019
5063
  timestamp?: string;
5020
5064
  /**
@@ -5291,6 +5335,26 @@ declare namespace Components {
5291
5335
  */
5292
5336
  client_secret?: string;
5293
5337
  }
5338
+ export interface NotificationTriggerConfig {
5339
+ /**
5340
+ * The 360 event that fires this notification trigger.
5341
+ */
5342
+ trigger_type: "entity_created" | "entity_assigned" | "workflow_step_overdue";
5343
+ /**
5344
+ * For `entity_created` / `entity_assigned` triggers, the entity schema slug (e.g. `opportunity`, `order`) whose creation or assignment fires this trigger. Ignored for other trigger types.
5345
+ * example:
5346
+ * opportunity
5347
+ */
5348
+ entity_schema?: string;
5349
+ /**
5350
+ * Whether this trigger is active.
5351
+ */
5352
+ enabled?: boolean;
5353
+ /**
5354
+ * Entity id of the notification_template to render for this trigger.
5355
+ */
5356
+ template_id?: string; // uuid
5357
+ }
5294
5358
  /**
5295
5359
  * OIDC provider configuration. Values are resolved at SSO invocation time
5296
5360
  * (login / callback), so the fields below may reference org env vars via
@@ -5677,6 +5741,44 @@ declare namespace Components {
5677
5741
  */
5678
5742
  minNativeVersion?: string;
5679
5743
  }
5744
+ export interface OutstandingTask {
5745
+ /**
5746
+ * ID of the entity the task belongs to
5747
+ */
5748
+ entity_id: string;
5749
+ /**
5750
+ * Schema slug of the entity (opportunity, order or contract)
5751
+ */
5752
+ entity_schema: string;
5753
+ /**
5754
+ * Title (_title) of the entity
5755
+ */
5756
+ entity_title: string;
5757
+ /**
5758
+ * Workflow execution id
5759
+ */
5760
+ workflow_id: string;
5761
+ /**
5762
+ * Workflow execution / template name
5763
+ */
5764
+ workflow_name: string;
5765
+ /**
5766
+ * Task (step) id within the workflow execution
5767
+ */
5768
+ step_id: string;
5769
+ /**
5770
+ * Task (step) name
5771
+ */
5772
+ step_name: string;
5773
+ /**
5774
+ * Journey id the customer needs to fill out
5775
+ */
5776
+ journey_id: string;
5777
+ /**
5778
+ * Whether submitting the journey from the portal should auto-complete the task. When false, an internal user completes it.
5779
+ */
5780
+ complete_task_automatically?: boolean;
5781
+ }
5680
5782
  export interface Page {
5681
5783
  [name: string]: any;
5682
5784
  /**
@@ -6487,6 +6589,10 @@ declare namespace Components {
6487
6589
  global_blocks?: {
6488
6590
  [name: string]: Block;
6489
6591
  };
6592
+ /**
6593
+ * Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.
6594
+ */
6595
+ notification_triggers?: NotificationTriggerConfig[];
6490
6596
  /**
6491
6597
  * ID of the organization
6492
6598
  * example:
@@ -6581,9 +6687,10 @@ declare namespace Components {
6581
6687
  * providers not in the list are deleted. Omit the field to leave SSO
6582
6688
  * configuration unchanged; send an empty array to remove all providers.
6583
6689
  *
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.
6690
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
6691
+ * stored secret for the same slug; an explicit empty string clears it.
6692
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
6693
+ * `{{ env.VAR }}` references pass through.
6587
6694
  *
6588
6695
  */
6589
6696
  identity_providers?: ProviderPublicConfig[];
@@ -7207,6 +7314,71 @@ declare namespace Components {
7207
7314
  * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
7208
7315
  */
7209
7316
  export type PortalId = string;
7317
+ /**
7318
+ * A 360 notification addressed to a portal user.
7319
+ */
7320
+ export interface PortalNotification {
7321
+ /**
7322
+ * Stable string identifier of the notification (the numeric notification id as a string).
7323
+ * example:
7324
+ * 1234567890
7325
+ */
7326
+ id: string;
7327
+ /**
7328
+ * Numeric id of the notification, used to mark it as read.
7329
+ * example:
7330
+ * 1234567890
7331
+ */
7332
+ notification_id?: number;
7333
+ /**
7334
+ * Type of notification.
7335
+ * example:
7336
+ * workflow_step_overdue
7337
+ */
7338
+ type?: string;
7339
+ /**
7340
+ * Localized, already-rendered notification title.
7341
+ */
7342
+ title?: {
7343
+ en?: string;
7344
+ de?: string;
7345
+ };
7346
+ /**
7347
+ * Localized, already-rendered notification message.
7348
+ */
7349
+ message?: {
7350
+ en?: string;
7351
+ de?: string;
7352
+ };
7353
+ /**
7354
+ * When the notification was created.
7355
+ */
7356
+ created_at?: string; // date-time
7357
+ /**
7358
+ * Whether the notification has been read by the user.
7359
+ * example:
7360
+ * false
7361
+ */
7362
+ read: boolean;
7363
+ /**
7364
+ * Optional URL the notification points to.
7365
+ */
7366
+ redirect_url?: string;
7367
+ }
7368
+ /**
7369
+ * Portal-specific (ECP / installer) display config of a workflow task
7370
+ */
7371
+ export interface PortalTaskConfig {
7372
+ enabled?: boolean;
7373
+ label?: string;
7374
+ description?: string;
7375
+ journey?: {
7376
+ id?: string;
7377
+ journeyId?: string;
7378
+ name?: string;
7379
+ complete_task_automatically?: boolean;
7380
+ };
7381
+ }
7210
7382
  /**
7211
7383
  * The portal user entity
7212
7384
  */
@@ -7276,6 +7448,122 @@ declare namespace Components {
7276
7448
  }
7277
7449
  export type PortalUserRegistrationStatus = "Registration Pending" | "Confirmation Email Sent" | "Registered" | "Email Update In Progress";
7278
7450
  export type PortalWidget = EntityWidget | ContentWidget | ActionWidget | TeaserWidget | DocumentWidget | PaymentWidget | MeterReadingWidget | MeterChartWidget | CampaignWidget | ProductRecommendationsWidget;
7451
+ /**
7452
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
7453
+ * graph already linearized by the Workflows API into a flat, ordered list of
7454
+ * portal-visible tasks.
7455
+ *
7456
+ */
7457
+ export interface PortalWorkflow {
7458
+ /**
7459
+ * Id of the workflow / flow execution
7460
+ */
7461
+ id: string;
7462
+ /**
7463
+ * Id of the workflow definition / flow template this execution was created from
7464
+ */
7465
+ definition_id?: string;
7466
+ name: string;
7467
+ status: "STARTED" | "DONE" | "CLOSED";
7468
+ /**
7469
+ * 2 = legacy V1 workflow execution (linear model), 3 = V2 flow execution (graph model)
7470
+ */
7471
+ version: 2 | 3;
7472
+ /**
7473
+ * Creation timestamp, doubles as started time
7474
+ */
7475
+ created_at?: string;
7476
+ /**
7477
+ * Last update timestamp
7478
+ */
7479
+ updated_at?: string;
7480
+ /**
7481
+ * Timestamp when the execution was completed, if it is
7482
+ */
7483
+ completed_at?: string;
7484
+ due_date?: string;
7485
+ assigned_to?: string[];
7486
+ contexts?: {
7487
+ entity_id?: string;
7488
+ entity_schema?: string;
7489
+ is_primary?: boolean;
7490
+ }[];
7491
+ /**
7492
+ * True when the linearized path reached the end of the execution graph. False when an
7493
+ * unevaluated decision task was encountered, meaning additional tasks may appear once
7494
+ * the decision is resolved (the returned tasks are still the guaranteed active path).
7495
+ * Always true for V1 executions.
7496
+ *
7497
+ */
7498
+ is_path_complete: boolean;
7499
+ /**
7500
+ * Portal-visible tasks in linear (timeline) order
7501
+ */
7502
+ tasks: /* A single portal-visible task of a linearized workflow execution */ PortalWorkflowTask[];
7503
+ }
7504
+ /**
7505
+ * A single portal-visible task of a linearized workflow execution
7506
+ */
7507
+ export interface PortalWorkflowTask {
7508
+ /**
7509
+ * Id of the underlying task (V2) or step (V1)
7510
+ */
7511
+ id: string;
7512
+ /**
7513
+ * Internal task/step name (fallback label when the portal config has none)
7514
+ */
7515
+ name: string;
7516
+ /**
7517
+ * Zero-based position of the task in the linearized timeline
7518
+ */
7519
+ order: number;
7520
+ /**
7521
+ * Normalized task status:
7522
+ * - COMPLETED / SKIPPED: the task is done (skipped tasks count as done for progress)
7523
+ * - IN_PROGRESS: the task has been reached and work has started
7524
+ * - PENDING: the task has not been completed yet
7525
+ *
7526
+ */
7527
+ status: "COMPLETED" | "SKIPPED" | "IN_PROGRESS" | "PENDING";
7528
+ /**
7529
+ * True when the task has been reached in the execution — all predecessor tasks on its
7530
+ * path are completed/skipped — so the portal user can act on it (e.g. start its journey).
7531
+ * Tasks that are only part of the projected future path are returned with is_active false.
7532
+ *
7533
+ */
7534
+ is_active: boolean;
7535
+ ecp?: /* Portal-specific (ECP / installer) display config of a workflow task */ PortalTaskConfig;
7536
+ installer?: /* Portal-specific (ECP / installer) display config of a workflow task */ PortalTaskConfig;
7537
+ /**
7538
+ * Journey linked to the task, if any
7539
+ */
7540
+ journey?: {
7541
+ id?: string;
7542
+ journeyId?: string;
7543
+ name?: string;
7544
+ /**
7545
+ * If true, the task is auto completed when the journey is completed
7546
+ */
7547
+ complete_task_automatically?: boolean;
7548
+ };
7549
+ assigned_to?: string[];
7550
+ /**
7551
+ * Id of the phase the underlying task belongs to, if any (V2 only)
7552
+ */
7553
+ phase_id?: string;
7554
+ /**
7555
+ * Name of the phase the underlying task belongs to, if any (V2 only)
7556
+ */
7557
+ phase_name?: string;
7558
+ /**
7559
+ * Timestamp when the task was completed or skipped
7560
+ */
7561
+ completed_at?: string;
7562
+ /**
7563
+ * Last update timestamp of the underlying task/step
7564
+ */
7565
+ updated_at?: string;
7566
+ }
7279
7567
  /**
7280
7568
  * The product entity
7281
7569
  */
@@ -7500,7 +7788,7 @@ declare namespace Components {
7500
7788
  change_mode?: "synchronous" | "asynchronous";
7501
7789
  /**
7502
7790
  * 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.
7791
+ * Not required for portal users whose identity is managed by an identity provider - an SSO login has no password to confirm.
7504
7792
  *
7505
7793
  */
7506
7794
  require_password_confirmation?: boolean;
@@ -7971,7 +8259,10 @@ declare namespace Components {
7971
8259
  use_case_slug: string;
7972
8260
  }
7973
8261
  export type Source = "ECP" | "ERP" | "360" | "journey-submission";
7974
- export type SwappableConfig = "all" | "domain" | "users" | "email_templates";
8262
+ /**
8263
+ * 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.
8264
+ */
8265
+ export type SwappableConfig = "email_templates";
7975
8266
  export type TariffType = "ht" | "nt";
7976
8267
  export interface TeaserWidget {
7977
8268
  id: string;
@@ -8069,9 +8360,10 @@ declare namespace Components {
8069
8360
  * providers not in the list are deleted. Omit the field to leave SSO
8070
8361
  * configuration unchanged; send an empty array to remove all providers.
8071
8362
  *
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.
8363
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
8364
+ * stored secret for the same slug; an explicit empty string clears it.
8365
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
8366
+ * `{{ env.VAR }}` references pass through.
8075
8367
  *
8076
8368
  */
8077
8369
  identity_providers?: /**
@@ -8137,9 +8429,10 @@ declare namespace Components {
8137
8429
  * providers not in the list are deleted. Omit the field to leave SSO
8138
8430
  * configuration unchanged; send an empty array to remove all providers.
8139
8431
  *
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.
8432
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
8433
+ * stored secret for the same slug; an explicit empty string clears it.
8434
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
8435
+ * `{{ env.VAR }}` references pass through.
8143
8436
  *
8144
8437
  */
8145
8438
  identity_providers?: /**
@@ -8676,6 +8969,10 @@ declare namespace Components {
8676
8969
  global_blocks?: {
8677
8970
  [name: string]: Block;
8678
8971
  };
8972
+ /**
8973
+ * Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.
8974
+ */
8975
+ notification_triggers?: NotificationTriggerConfig[];
8679
8976
  }
8680
8977
  export interface UpsertPortalConfigV3 {
8681
8978
  /**
@@ -8724,9 +9021,10 @@ declare namespace Components {
8724
9021
  * providers not in the list are deleted. Omit the field to leave SSO
8725
9022
  * configuration unchanged; send an empty array to remove all providers.
8726
9023
  *
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.
9024
+ * Secrets: a provider sent without `oidc_config.client_secret` keeps the
9025
+ * stored secret for the same slug; an explicit empty string clears it.
9026
+ * `getPortalConfigV3` returns providers with raw secrets redacted;
9027
+ * `{{ env.VAR }}` references pass through.
8730
9028
  *
8731
9029
  */
8732
9030
  identity_providers?: /**
@@ -11568,7 +11866,7 @@ declare namespace Paths {
11568
11866
  export type $500 = Components.Responses.InternalServerError;
11569
11867
  }
11570
11868
  }
11571
- namespace GetEntityWorkflows {
11869
+ namespace GetEntityPortalWorkflows {
11572
11870
  namespace Parameters {
11573
11871
  /**
11574
11872
  * ID of the entity
@@ -11579,7 +11877,7 @@ declare namespace Paths {
11579
11877
  /**
11580
11878
  * Schema slug of the entity
11581
11879
  * example:
11582
- * contact
11880
+ * opportunity
11583
11881
  */
11584
11882
  export type Slug = string;
11585
11883
  }
@@ -11587,7 +11885,7 @@ declare namespace Paths {
11587
11885
  slug: /**
11588
11886
  * Schema slug of the entity
11589
11887
  * example:
11590
- * contact
11888
+ * opportunity
11591
11889
  */
11592
11890
  Parameters.Slug;
11593
11891
  id: /**
@@ -11599,55 +11897,13 @@ declare namespace Paths {
11599
11897
  }
11600
11898
  namespace Responses {
11601
11899
  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
- * }
11900
+ portal_workflows?: /**
11901
+ * A portal-facing projection of a workflow execution (V1 or V2), with the execution
11902
+ * graph already linearized by the Workflows API into a flat, ordered list of
11903
+ * portal-visible tasks.
11904
+ *
11649
11905
  */
11650
- Components.Schemas.WorkflowExecution[];
11906
+ Components.Schemas.PortalWorkflow[];
11651
11907
  }
11652
11908
  export type $401 = Components.Responses.Unauthorized;
11653
11909
  export type $403 = Components.Responses.Forbidden;
@@ -11655,53 +11911,755 @@ declare namespace Paths {
11655
11911
  export type $500 = Components.Responses.InternalServerError;
11656
11912
  }
11657
11913
  }
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
11914
+ namespace GetEntityPortalWorkflowsBatch {
11915
+ export interface RequestBody {
11916
+ entities: [
11917
+ {
11918
+ /**
11919
+ * ID of the entity
11920
+ */
11921
+ id: string;
11922
+ /**
11923
+ * Schema slug of the entity
11924
+ * example:
11925
+ * order
11926
+ */
11927
+ slug: string;
11928
+ },
11929
+ {
11930
+ /**
11931
+ * ID of the entity
11932
+ */
11933
+ id: string;
11934
+ /**
11935
+ * Schema slug of the entity
11936
+ * example:
11937
+ * order
11938
+ */
11939
+ slug: string;
11940
+ }?,
11941
+ {
11942
+ /**
11943
+ * ID of the entity
11944
+ */
11945
+ id: string;
11946
+ /**
11947
+ * Schema slug of the entity
11948
+ * example:
11949
+ * order
11950
+ */
11951
+ slug: string;
11952
+ }?,
11953
+ {
11954
+ /**
11955
+ * ID of the entity
11956
+ */
11957
+ id: string;
11958
+ /**
11959
+ * Schema slug of the entity
11960
+ * example:
11961
+ * order
11962
+ */
11963
+ slug: string;
11964
+ }?,
11965
+ {
11966
+ /**
11967
+ * ID of the entity
11968
+ */
11969
+ id: string;
11970
+ /**
11971
+ * Schema slug of the entity
11972
+ * example:
11973
+ * order
11974
+ */
11975
+ slug: string;
11976
+ }?,
11977
+ {
11978
+ /**
11979
+ * ID of the entity
11980
+ */
11981
+ id: string;
11982
+ /**
11983
+ * Schema slug of the entity
11984
+ * example:
11985
+ * order
11986
+ */
11987
+ slug: string;
11988
+ }?,
11989
+ {
11990
+ /**
11991
+ * ID of the entity
11992
+ */
11993
+ id: string;
11994
+ /**
11995
+ * Schema slug of the entity
11996
+ * example:
11997
+ * order
11998
+ */
11999
+ slug: string;
12000
+ }?,
12001
+ {
12002
+ /**
12003
+ * ID of the entity
12004
+ */
12005
+ id: string;
12006
+ /**
12007
+ * Schema slug of the entity
12008
+ * example:
12009
+ * order
12010
+ */
12011
+ slug: string;
12012
+ }?,
12013
+ {
12014
+ /**
12015
+ * ID of the entity
12016
+ */
12017
+ id: string;
12018
+ /**
12019
+ * Schema slug of the entity
12020
+ * example:
12021
+ * order
12022
+ */
12023
+ slug: string;
12024
+ }?,
12025
+ {
12026
+ /**
12027
+ * ID of the entity
12028
+ */
12029
+ id: string;
12030
+ /**
12031
+ * Schema slug of the entity
12032
+ * example:
12033
+ * order
12034
+ */
12035
+ slug: string;
12036
+ }?,
12037
+ {
12038
+ /**
12039
+ * ID of the entity
12040
+ */
12041
+ id: string;
12042
+ /**
12043
+ * Schema slug of the entity
12044
+ * example:
12045
+ * order
12046
+ */
12047
+ slug: string;
12048
+ }?,
12049
+ {
12050
+ /**
12051
+ * ID of the entity
12052
+ */
12053
+ id: string;
12054
+ /**
12055
+ * Schema slug of the entity
12056
+ * example:
12057
+ * order
12058
+ */
12059
+ slug: string;
12060
+ }?,
12061
+ {
12062
+ /**
12063
+ * ID of the entity
12064
+ */
12065
+ id: string;
12066
+ /**
12067
+ * Schema slug of the entity
12068
+ * example:
12069
+ * order
12070
+ */
12071
+ slug: string;
12072
+ }?,
12073
+ {
12074
+ /**
12075
+ * ID of the entity
12076
+ */
12077
+ id: string;
12078
+ /**
12079
+ * Schema slug of the entity
12080
+ * example:
12081
+ * order
12082
+ */
12083
+ slug: string;
12084
+ }?,
12085
+ {
12086
+ /**
12087
+ * ID of the entity
12088
+ */
12089
+ id: string;
12090
+ /**
12091
+ * Schema slug of the entity
12092
+ * example:
12093
+ * order
12094
+ */
12095
+ slug: string;
12096
+ }?,
12097
+ {
12098
+ /**
12099
+ * ID of the entity
12100
+ */
12101
+ id: string;
12102
+ /**
12103
+ * Schema slug of the entity
12104
+ * example:
12105
+ * order
12106
+ */
12107
+ slug: string;
12108
+ }?,
12109
+ {
12110
+ /**
12111
+ * ID of the entity
12112
+ */
12113
+ id: string;
12114
+ /**
12115
+ * Schema slug of the entity
12116
+ * example:
12117
+ * order
12118
+ */
12119
+ slug: string;
12120
+ }?,
12121
+ {
12122
+ /**
12123
+ * ID of the entity
12124
+ */
12125
+ id: string;
12126
+ /**
12127
+ * Schema slug of the entity
12128
+ * example:
12129
+ * order
12130
+ */
12131
+ slug: string;
12132
+ }?,
12133
+ {
12134
+ /**
12135
+ * ID of the entity
12136
+ */
12137
+ id: string;
12138
+ /**
12139
+ * Schema slug of the entity
12140
+ * example:
12141
+ * order
12142
+ */
12143
+ slug: string;
12144
+ }?,
12145
+ {
12146
+ /**
12147
+ * ID of the entity
12148
+ */
12149
+ id: string;
12150
+ /**
12151
+ * Schema slug of the entity
12152
+ * example:
12153
+ * order
12154
+ */
12155
+ slug: string;
12156
+ }?,
12157
+ {
12158
+ /**
12159
+ * ID of the entity
12160
+ */
12161
+ id: string;
12162
+ /**
12163
+ * Schema slug of the entity
12164
+ * example:
12165
+ * order
12166
+ */
12167
+ slug: string;
12168
+ }?,
12169
+ {
12170
+ /**
12171
+ * ID of the entity
12172
+ */
12173
+ id: string;
12174
+ /**
12175
+ * Schema slug of the entity
12176
+ * example:
12177
+ * order
12178
+ */
12179
+ slug: string;
12180
+ }?,
12181
+ {
12182
+ /**
12183
+ * ID of the entity
12184
+ */
12185
+ id: string;
12186
+ /**
12187
+ * Schema slug of the entity
12188
+ * example:
12189
+ * order
12190
+ */
12191
+ slug: string;
12192
+ }?,
12193
+ {
12194
+ /**
12195
+ * ID of the entity
12196
+ */
12197
+ id: string;
12198
+ /**
12199
+ * Schema slug of the entity
12200
+ * example:
12201
+ * order
12202
+ */
12203
+ slug: string;
12204
+ }?,
12205
+ {
12206
+ /**
12207
+ * ID of the entity
12208
+ */
12209
+ id: string;
12210
+ /**
12211
+ * Schema slug of the entity
12212
+ * example:
12213
+ * order
12214
+ */
12215
+ slug: string;
12216
+ }?,
12217
+ {
12218
+ /**
12219
+ * ID of the entity
12220
+ */
12221
+ id: string;
12222
+ /**
12223
+ * Schema slug of the entity
12224
+ * example:
12225
+ * order
12226
+ */
12227
+ slug: string;
12228
+ }?,
12229
+ {
12230
+ /**
12231
+ * ID of the entity
12232
+ */
12233
+ id: string;
12234
+ /**
12235
+ * Schema slug of the entity
12236
+ * example:
12237
+ * order
12238
+ */
12239
+ slug: string;
12240
+ }?,
12241
+ {
12242
+ /**
12243
+ * ID of the entity
12244
+ */
12245
+ id: string;
12246
+ /**
12247
+ * Schema slug of the entity
12248
+ * example:
12249
+ * order
12250
+ */
12251
+ slug: string;
12252
+ }?,
12253
+ {
12254
+ /**
12255
+ * ID of the entity
12256
+ */
12257
+ id: string;
12258
+ /**
12259
+ * Schema slug of the entity
12260
+ * example:
12261
+ * order
12262
+ */
12263
+ slug: string;
12264
+ }?,
12265
+ {
12266
+ /**
12267
+ * ID of the entity
12268
+ */
12269
+ id: string;
12270
+ /**
12271
+ * Schema slug of the entity
12272
+ * example:
12273
+ * order
12274
+ */
12275
+ slug: string;
12276
+ }?,
12277
+ {
12278
+ /**
12279
+ * ID of the entity
12280
+ */
12281
+ id: string;
12282
+ /**
12283
+ * Schema slug of the entity
12284
+ * example:
12285
+ * order
12286
+ */
12287
+ slug: string;
12288
+ }?,
12289
+ {
12290
+ /**
12291
+ * ID of the entity
12292
+ */
12293
+ id: string;
12294
+ /**
12295
+ * Schema slug of the entity
12296
+ * example:
12297
+ * order
12298
+ */
12299
+ slug: string;
12300
+ }?,
12301
+ {
12302
+ /**
12303
+ * ID of the entity
12304
+ */
12305
+ id: string;
12306
+ /**
12307
+ * Schema slug of the entity
12308
+ * example:
12309
+ * order
12310
+ */
12311
+ slug: string;
12312
+ }?,
12313
+ {
12314
+ /**
12315
+ * ID of the entity
12316
+ */
12317
+ id: string;
12318
+ /**
12319
+ * Schema slug of the entity
12320
+ * example:
12321
+ * order
12322
+ */
12323
+ slug: string;
12324
+ }?,
12325
+ {
12326
+ /**
12327
+ * ID of the entity
12328
+ */
12329
+ id: string;
12330
+ /**
12331
+ * Schema slug of the entity
12332
+ * example:
12333
+ * order
12334
+ */
12335
+ slug: string;
12336
+ }?,
12337
+ {
12338
+ /**
12339
+ * ID of the entity
12340
+ */
12341
+ id: string;
12342
+ /**
12343
+ * Schema slug of the entity
12344
+ * example:
12345
+ * order
12346
+ */
12347
+ slug: string;
12348
+ }?,
12349
+ {
12350
+ /**
12351
+ * ID of the entity
12352
+ */
12353
+ id: string;
12354
+ /**
12355
+ * Schema slug of the entity
12356
+ * example:
12357
+ * order
12358
+ */
12359
+ slug: string;
12360
+ }?,
12361
+ {
12362
+ /**
12363
+ * ID of the entity
12364
+ */
12365
+ id: string;
12366
+ /**
12367
+ * Schema slug of the entity
12368
+ * example:
12369
+ * order
12370
+ */
12371
+ slug: string;
12372
+ }?,
12373
+ {
12374
+ /**
12375
+ * ID of the entity
12376
+ */
12377
+ id: string;
12378
+ /**
12379
+ * Schema slug of the entity
12380
+ * example:
12381
+ * order
12382
+ */
12383
+ slug: string;
12384
+ }?,
12385
+ {
12386
+ /**
12387
+ * ID of the entity
12388
+ */
12389
+ id: string;
12390
+ /**
12391
+ * Schema slug of the entity
12392
+ * example:
12393
+ * order
12394
+ */
12395
+ slug: string;
12396
+ }?,
12397
+ {
12398
+ /**
12399
+ * ID of the entity
12400
+ */
12401
+ id: string;
12402
+ /**
12403
+ * Schema slug of the entity
12404
+ * example:
12405
+ * order
12406
+ */
12407
+ slug: string;
12408
+ }?,
12409
+ {
12410
+ /**
12411
+ * ID of the entity
12412
+ */
12413
+ id: string;
12414
+ /**
12415
+ * Schema slug of the entity
12416
+ * example:
12417
+ * order
12418
+ */
12419
+ slug: string;
12420
+ }?,
12421
+ {
12422
+ /**
12423
+ * ID of the entity
12424
+ */
12425
+ id: string;
12426
+ /**
12427
+ * Schema slug of the entity
12428
+ * example:
12429
+ * order
12430
+ */
12431
+ slug: string;
12432
+ }?,
12433
+ {
12434
+ /**
12435
+ * ID of the entity
12436
+ */
12437
+ id: string;
12438
+ /**
12439
+ * Schema slug of the entity
12440
+ * example:
12441
+ * order
12442
+ */
12443
+ slug: string;
12444
+ }?,
12445
+ {
12446
+ /**
12447
+ * ID of the entity
12448
+ */
12449
+ id: string;
12450
+ /**
12451
+ * Schema slug of the entity
12452
+ * example:
12453
+ * order
12454
+ */
12455
+ slug: string;
12456
+ }?,
12457
+ {
12458
+ /**
12459
+ * ID of the entity
12460
+ */
12461
+ id: string;
12462
+ /**
12463
+ * Schema slug of the entity
12464
+ * example:
12465
+ * order
12466
+ */
12467
+ slug: string;
12468
+ }?,
12469
+ {
12470
+ /**
12471
+ * ID of the entity
12472
+ */
12473
+ id: string;
12474
+ /**
12475
+ * Schema slug of the entity
12476
+ * example:
12477
+ * order
12478
+ */
12479
+ slug: string;
12480
+ }?,
12481
+ {
12482
+ /**
12483
+ * ID of the entity
12484
+ */
12485
+ id: string;
12486
+ /**
12487
+ * Schema slug of the entity
12488
+ * example:
12489
+ * order
12490
+ */
12491
+ slug: string;
12492
+ }?,
12493
+ {
12494
+ /**
12495
+ * ID of the entity
12496
+ */
12497
+ id: string;
12498
+ /**
12499
+ * Schema slug of the entity
12500
+ * example:
12501
+ * order
12502
+ */
12503
+ slug: string;
12504
+ }?,
12505
+ {
12506
+ /**
12507
+ * ID of the entity
12508
+ */
12509
+ id: string;
12510
+ /**
12511
+ * Schema slug of the entity
12512
+ * example:
12513
+ * order
12514
+ */
12515
+ slug: string;
12516
+ }?
12517
+ ];
12518
+ }
12519
+ namespace Responses {
12520
+ export interface $200 {
12521
+ results?: /* Linearized portal workflows of a single entity */ Components.Schemas.EntityPortalWorkflows[];
12522
+ }
12523
+ export type $400 = Components.Responses.InvalidRequest;
12524
+ export type $401 = Components.Responses.Unauthorized;
12525
+ export type $403 = Components.Responses.Forbidden;
12526
+ export type $500 = Components.Responses.InternalServerError;
12527
+ }
12528
+ }
12529
+ namespace GetEntityWorkflows {
12530
+ namespace Parameters {
12531
+ /**
12532
+ * ID of the entity
12533
+ * example:
12534
+ * abc123
12535
+ */
12536
+ export type Id = string;
12537
+ /**
12538
+ * Schema slug of the entity
12539
+ * example:
12540
+ * contact
12541
+ */
12542
+ export type Slug = string;
12543
+ }
12544
+ export interface PathParameters {
12545
+ slug: /**
12546
+ * Schema slug of the entity
12547
+ * example:
12548
+ * contact
12549
+ */
12550
+ Parameters.Slug;
12551
+ id: /**
12552
+ * ID of the entity
12553
+ * example:
12554
+ * abc123
12555
+ */
12556
+ Parameters.Id;
12557
+ }
12558
+ namespace Responses {
12559
+ export interface $200 {
12560
+ workflow_executions?: /**
12561
+ * example:
12562
+ * {
12563
+ * "id": "8gja72h6kas6h",
12564
+ * "name": "Lead Qualification",
12565
+ * "trigger": "MANUAL",
12566
+ * "status": "STARTED",
12567
+ * "creationTime": "2021-04-27T12:01:13.000Z",
12568
+ * "lastUpdateTime": "2021-04-27T12:01:13.000Z",
12569
+ * "dueDate": "2021-04-27T12:01:13.000Z",
12570
+ * "assignedTo": [
12571
+ * "252",
12572
+ * "29052"
12573
+ * ],
12574
+ * "flow": [
12575
+ * {
12576
+ * "id": "sectionId1",
12577
+ * "name": "Initial Information Gathering",
12578
+ * "steps": [
12579
+ * {
12580
+ * "id": "sada5641f3a21",
12581
+ * "name": "Call client and confirm address and product",
12582
+ * "status": "ASSIGNED",
12583
+ * "assignedTo": [
12584
+ * "11"
12585
+ * ]
12586
+ * },
12587
+ * {
12588
+ * "id": "sada5641f3a22",
12589
+ * "name": "Check product availability",
12590
+ * "status": "UNASSIGNED"
12591
+ * },
12592
+ * {
12593
+ * "id": "sada5641f3a23",
12594
+ * "name": "Send email confirming contact with the client",
12595
+ * "status": "SKIPPED"
12596
+ * }
12597
+ * ]
12598
+ * },
12599
+ * {
12600
+ * "id": "firstLevelStepId1",
12601
+ * "name": "Print and send catalog",
12602
+ * "status": "SKIPPED",
12603
+ * "dueDate": "2023-01-15T20:00:00"
12604
+ * }
12605
+ * ]
12606
+ * }
12607
+ */
12608
+ Components.Schemas.WorkflowExecution[];
12609
+ }
12610
+ export type $401 = Components.Responses.Unauthorized;
12611
+ export type $403 = Components.Responses.Forbidden;
12612
+ export type $404 = Components.Responses.NotFound;
12613
+ export type $500 = Components.Responses.InternalServerError;
12614
+ }
12615
+ }
12616
+ namespace GetExport {
12617
+ namespace Parameters {
12618
+ export type JobId = string;
12619
+ }
12620
+ export interface PathParameters {
12621
+ jobId: Parameters.JobId;
12622
+ }
12623
+ namespace Responses {
12624
+ export interface $200 {
12625
+ jobId?: string;
12626
+ status?: "queued" | "running" | "ready" | "failed" | "expired";
12627
+ downloadUrl?: string;
12628
+ error?: string;
12629
+ }
12630
+ export type $401 = Components.Responses.Unauthorized;
12631
+ export interface $404 {
12632
+ }
12633
+ export type $500 = Components.Responses.InternalServerError;
12634
+ }
12635
+ }
12636
+ namespace GetExternalLinks {
12637
+ namespace Parameters {
12638
+ export type ContactId = /**
12639
+ * Entity ID
12640
+ * example:
12641
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12642
+ */
12643
+ Components.Schemas.EntityId /* uuid */;
12644
+ export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
12645
+ }
12646
+ export interface QueryParameters {
12647
+ origin?: Parameters.Origin;
12648
+ contactId?: Parameters.ContactId;
12649
+ }
12650
+ namespace Responses {
12651
+ export type $200 = Components.Schemas.ExternalLink[];
12652
+ export type $401 = Components.Responses.Unauthorized;
12653
+ export type $403 = Components.Responses.Forbidden;
12654
+ export type $500 = Components.Responses.InternalServerError;
12655
+ }
12656
+ }
12657
+ namespace GetExternalLinksV3 {
12658
+ namespace Parameters {
12659
+ export type ContactId = /**
12660
+ * Entity ID
12661
+ * example:
12662
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
11705
12663
  */
11706
12664
  Components.Schemas.EntityId /* uuid */;
11707
12665
  export type PortalId = /**
@@ -11744,6 +12702,26 @@ declare namespace Paths {
11744
12702
  export type $500 = Components.Responses.InternalServerError;
11745
12703
  }
11746
12704
  }
12705
+ namespace GetFilePreview {
12706
+ namespace Parameters {
12707
+ export type Id = /**
12708
+ * Entity ID
12709
+ * example:
12710
+ * 5da0a718-c822-403d-9f5d-20d4584e0528
12711
+ */
12712
+ Components.Schemas.EntityId /* uuid */;
12713
+ }
12714
+ export interface PathParameters {
12715
+ id: Parameters.Id;
12716
+ }
12717
+ namespace Responses {
12718
+ export type $200 = Components.Schemas.FilePreviewResult;
12719
+ export type $401 = Components.Responses.Unauthorized;
12720
+ export type $403 = Components.Responses.Forbidden;
12721
+ export type $404 = Components.Responses.NotFound;
12722
+ export type $500 = Components.Responses.InternalServerError;
12723
+ }
12724
+ }
11747
12725
  namespace GetFilesCountByEntity {
11748
12726
  namespace Responses {
11749
12727
  export type $200 = Components.Schemas.EntityFileCount[];
@@ -12518,6 +13496,10 @@ declare namespace Paths {
12518
13496
  global_blocks?: {
12519
13497
  [name: string]: Components.Schemas.Block;
12520
13498
  };
13499
+ /**
13500
+ * Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.
13501
+ */
13502
+ notification_triggers?: Components.Schemas.NotificationTriggerConfig[];
12521
13503
  /**
12522
13504
  * ID of the organization
12523
13505
  * example:
@@ -13136,6 +14118,10 @@ declare namespace Paths {
13136
14118
  global_blocks?: {
13137
14119
  [name: string]: Components.Schemas.Block;
13138
14120
  };
14121
+ /**
14122
+ * Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.
14123
+ */
14124
+ notification_triggers?: Components.Schemas.NotificationTriggerConfig[];
13139
14125
  /**
13140
14126
  * ID of the organization
13141
14127
  * example:
@@ -13254,6 +14240,21 @@ declare namespace Paths {
13254
14240
  export type $500 = Components.Responses.InternalServerError;
13255
14241
  }
13256
14242
  }
14243
+ namespace GetOutstandingTasks {
14244
+ namespace Responses {
14245
+ export interface $200 {
14246
+ tasks: Components.Schemas.OutstandingTask[];
14247
+ /**
14248
+ * example:
14249
+ * 0
14250
+ */
14251
+ total: number;
14252
+ }
14253
+ export type $401 = Components.Responses.Unauthorized;
14254
+ export type $403 = Components.Responses.Forbidden;
14255
+ export type $500 = Components.Responses.InternalServerError;
14256
+ }
14257
+ }
13257
14258
  namespace GetPortalConfig {
13258
14259
  namespace Parameters {
13259
14260
  export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
@@ -13346,6 +14347,20 @@ declare namespace Paths {
13346
14347
  export type $500 = Components.Responses.InternalServerError;
13347
14348
  }
13348
14349
  }
14350
+ namespace GetPortalNotificationsUnreadCount {
14351
+ namespace Responses {
14352
+ export interface $200 {
14353
+ /**
14354
+ * example:
14355
+ * 3
14356
+ */
14357
+ count?: number;
14358
+ }
14359
+ export type $401 = Components.Responses.Unauthorized;
14360
+ export type $403 = Components.Responses.Forbidden;
14361
+ export type $500 = Components.Responses.InternalServerError;
14362
+ }
14363
+ }
13349
14364
  namespace GetPortalPage {
13350
14365
  namespace Responses {
13351
14366
  export type $200 = Components.Schemas.Page;
@@ -14498,6 +15513,32 @@ declare namespace Paths {
14498
15513
  export type $500 = Components.Responses.InternalServerError;
14499
15514
  }
14500
15515
  }
15516
+ namespace ListPortalNotifications {
15517
+ namespace Parameters {
15518
+ export type Cursor = string;
15519
+ export type Limit = number;
15520
+ }
15521
+ export interface QueryParameters {
15522
+ cursor?: Parameters.Cursor;
15523
+ limit?: Parameters.Limit;
15524
+ }
15525
+ namespace Responses {
15526
+ export interface $200 {
15527
+ /**
15528
+ * Base64 encoded cursor to fetch the next page. Absent when there are no more results.
15529
+ */
15530
+ cursor?: string;
15531
+ /**
15532
+ * Total number of unread notifications for the user.
15533
+ */
15534
+ total_unread?: number;
15535
+ results?: /* A 360 notification addressed to a portal user. */ Components.Schemas.PortalNotification[];
15536
+ }
15537
+ export type $401 = Components.Responses.Unauthorized;
15538
+ export type $403 = Components.Responses.Forbidden;
15539
+ export type $500 = Components.Responses.InternalServerError;
15540
+ }
15541
+ }
14501
15542
  namespace LoginToPortalAsUser {
14502
15543
  export interface RequestBody {
14503
15544
  /**
@@ -14525,6 +15566,31 @@ declare namespace Paths {
14525
15566
  }
14526
15567
  }
14527
15568
  }
15569
+ namespace MarkAllPortalNotificationsRead {
15570
+ namespace Responses {
15571
+ export interface $204 {
15572
+ }
15573
+ export type $401 = Components.Responses.Unauthorized;
15574
+ export type $403 = Components.Responses.Forbidden;
15575
+ export type $500 = Components.Responses.InternalServerError;
15576
+ }
15577
+ }
15578
+ namespace MarkPortalNotificationRead {
15579
+ namespace Parameters {
15580
+ export type Id = number;
15581
+ }
15582
+ export interface PathParameters {
15583
+ id: Parameters.Id;
15584
+ }
15585
+ namespace Responses {
15586
+ export interface $204 {
15587
+ }
15588
+ export type $400 = Components.Responses.InvalidRequest;
15589
+ export type $401 = Components.Responses.Unauthorized;
15590
+ export type $403 = Components.Responses.Forbidden;
15591
+ export type $500 = Components.Responses.InternalServerError;
15592
+ }
15593
+ }
14528
15594
  namespace MigrateEmailTemplateReferences {
14529
15595
  export interface RequestBody {
14530
15596
  /**
@@ -14831,6 +15897,10 @@ declare namespace Paths {
14831
15897
  * The email address registered in the journey's Login & Registration block
14832
15898
  */
14833
15899
  journey_registration_email?: string;
15900
+ /**
15901
+ * The portal selected on the journey's Login & Registration block, used to target the registration link to that portal
15902
+ */
15903
+ journey_registration_portal_id?: string;
14834
15904
  };
14835
15905
  };
14836
15906
  }
@@ -15264,9 +16334,9 @@ declare namespace Paths {
15264
16334
  */
15265
16335
  Components.Schemas.PortalId;
15266
16336
  /**
15267
- * Items to swap
16337
+ * 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
16338
  */
15269
- items_to_swap?: Components.Schemas.SwappableConfig[];
16339
+ 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
16340
  }
15271
16341
  namespace Responses {
15272
16342
  export interface $200 {
@@ -15597,8 +16667,8 @@ declare namespace Paths {
15597
16667
  email: string;
15598
16668
  /**
15599
16669
  * 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.
16670
+ * Required unless a `changeEmail` portal extension hook with `require_password_confirmation` disabled is configured for the portal,
16671
+ * or the portal user's identity is managed by an identity provider - an SSO login has no password to confirm.
15602
16672
  *
15603
16673
  */
15604
16674
  password?: string;
@@ -16107,7 +17177,6 @@ declare namespace Paths {
16107
17177
  }
16108
17178
  }
16109
17179
 
16110
-
16111
17180
  export interface OperationMethods {
16112
17181
  /**
16113
17182
  * upsertPortal - upsertPortal
@@ -16259,7 +17328,7 @@ export interface OperationMethods {
16259
17328
  config?: AxiosRequestConfig
16260
17329
  ): OperationResponse<Paths.GetPublicPortalExtensionDetailsV3.Responses.$200>
16261
17330
  /**
16262
- * getConsumption - Get Consumption
17331
+ * getConsumption - getConsumption
16263
17332
  *
16264
17333
  * Get energy consumption data between a given time period.
16265
17334
  */
@@ -16269,7 +17338,7 @@ export interface OperationMethods {
16269
17338
  config?: AxiosRequestConfig
16270
17339
  ): OperationResponse<Paths.GetConsumption.Responses.$200>
16271
17340
  /**
16272
- * prepareVisualizationExport - Prepare Visualization Export
17341
+ * prepareVisualizationExport - prepareVisualizationExport
16273
17342
  *
16274
17343
  * 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
17344
  *
@@ -16280,7 +17349,7 @@ export interface OperationMethods {
16280
17349
  config?: AxiosRequestConfig
16281
17350
  ): OperationResponse<Paths.PrepareVisualizationExport.Responses.$200>
16282
17351
  /**
16283
- * getVisualizationMetadata - Get Visualization Metadata
17352
+ * getVisualizationMetadata - getVisualizationMetadata
16284
17353
  *
16285
17354
  * 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
17355
  *
@@ -16291,7 +17360,7 @@ export interface OperationMethods {
16291
17360
  config?: AxiosRequestConfig
16292
17361
  ): OperationResponse<Paths.GetVisualizationMetadata.Responses.$200>
16293
17362
  /**
16294
- * getCosts - Get Costs
17363
+ * getCosts - getCosts
16295
17364
  *
16296
17365
  * Get energy cost data between a given time period.
16297
17366
  */
@@ -16301,7 +17370,7 @@ export interface OperationMethods {
16301
17370
  config?: AxiosRequestConfig
16302
17371
  ): OperationResponse<Paths.GetCosts.Responses.$200>
16303
17372
  /**
16304
- * getPrices - Get Prices
17373
+ * getPrices - getPrices
16305
17374
  *
16306
17375
  * Get energy prices data between a given time period.
16307
17376
  */
@@ -17137,6 +18206,16 @@ export interface OperationMethods {
17137
18206
  data?: any,
17138
18207
  config?: AxiosRequestConfig
17139
18208
  ): OperationResponse<Paths.GetFileById.Responses.$200>
18209
+ /**
18210
+ * getFilePreview - getFilePreview
18211
+ *
18212
+ * 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.
18213
+ */
18214
+ 'getFilePreview'(
18215
+ parameters?: Parameters<Paths.GetFilePreview.PathParameters> | null,
18216
+ data?: any,
18217
+ config?: AxiosRequestConfig
18218
+ ): OperationResponse<Paths.GetFilePreview.Responses.$200>
17140
18219
  /**
17141
18220
  * trackFileDownloaded - trackFileDownloaded
17142
18221
  *
@@ -17148,7 +18227,7 @@ export interface OperationMethods {
17148
18227
  config?: AxiosRequestConfig
17149
18228
  ): OperationResponse<Paths.TrackFileDownloaded.Responses.$200>
17150
18229
  /**
17151
- * getFilesCountByEntity - getFileCountByEntity
18230
+ * getFilesCountByEntity - getFilesCountByEntity
17152
18231
  *
17153
18232
  * Fetch file counts for all ECP user related entities
17154
18233
  */
@@ -17302,7 +18381,7 @@ export interface OperationMethods {
17302
18381
  config?: AxiosRequestConfig
17303
18382
  ): OperationResponse<Paths.UpdateWorkflowStepAsDone.Responses.$200>
17304
18383
  /**
17305
- * getEntityWorkflows - Get workflows for an entity
18384
+ * getEntityWorkflows - getEntityWorkflows
17306
18385
  *
17307
18386
  * Get all workflows associated with an entity (requires access to the entity)
17308
18387
  */
@@ -17312,7 +18391,55 @@ export interface OperationMethods {
17312
18391
  config?: AxiosRequestConfig
17313
18392
  ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
17314
18393
  /**
17315
- * uploadMeterReadingPhoto - Upload Meter Reading Photo
18394
+ * getOutstandingTasks - Get outstanding workflow tasks for the portal user
18395
+ *
18396
+ * Returns all outstanding workflow journey tasks for the authenticated portal user, across their opportunity, order and contract entities. Each task is an active workflow step that exposes a journey the customer still needs to fill out.
18397
+ */
18398
+ 'getOutstandingTasks'(
18399
+ parameters?: Parameters<UnknownParamsObject> | null,
18400
+ data?: any,
18401
+ config?: AxiosRequestConfig
18402
+ ): OperationResponse<Paths.GetOutstandingTasks.Responses.$200>
18403
+ /**
18404
+ * getEntityPortalWorkflows - getEntityPortalWorkflows
18405
+ *
18406
+ * Get all portal-relevant workflows associated with an entity (requires access to the entity),
18407
+ * linearized by the Workflows API into a flat, ordered list of portal-visible tasks.
18408
+ *
18409
+ * Unlike `getEntityWorkflows`, this endpoint returns a single uniform shape for both legacy
18410
+ * (V1) workflow executions and graph-based (V2) flow executions — the execution graph is
18411
+ * already resolved server-side (active path, task reachability, chronological ordering), so
18412
+ * clients can render a timeline without any graph traversal logic.
18413
+ *
18414
+ * Tasks carry the config of both portal audiences (`ecp` and `installer`); clients filter
18415
+ * per their configured audience, so one response serves every block on a page.
18416
+ *
18417
+ */
18418
+ 'getEntityPortalWorkflows'(
18419
+ parameters?: Parameters<Paths.GetEntityPortalWorkflows.PathParameters> | null,
18420
+ data?: any,
18421
+ config?: AxiosRequestConfig
18422
+ ): OperationResponse<Paths.GetEntityPortalWorkflows.Responses.$200>
18423
+ /**
18424
+ * getEntityPortalWorkflowsBatch - getEntityPortalWorkflowsBatch
18425
+ *
18426
+ * Batch variant of `getEntityPortalWorkflows`: returns portal-relevant workflows for
18427
+ * up to 50 entities — schemas may differ — in a single call, each already linearized
18428
+ * by the Workflows API into a flat, ordered list of portal-visible tasks.
18429
+ *
18430
+ * Intended for portal list views (e.g. an entity list where every card shows its
18431
+ * workflow progress). Entities the portal user cannot access are omitted from the
18432
+ * response; an entry with an empty task list means the entity has no portal-relevant
18433
+ * workflow.
18434
+ *
18435
+ */
18436
+ 'getEntityPortalWorkflowsBatch'(
18437
+ parameters?: Parameters<UnknownParamsObject> | null,
18438
+ data?: Paths.GetEntityPortalWorkflowsBatch.RequestBody,
18439
+ config?: AxiosRequestConfig
18440
+ ): OperationResponse<Paths.GetEntityPortalWorkflowsBatch.Responses.$200>
18441
+ /**
18442
+ * uploadMeterReadingPhoto - uploadMeterReadingPhoto
17316
18443
  *
17317
18444
  * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
17318
18445
  */
@@ -17322,7 +18449,7 @@ export interface OperationMethods {
17322
18449
  config?: AxiosRequestConfig
17323
18450
  ): OperationResponse<Paths.UploadMeterReadingPhoto.Responses.$200>
17324
18451
  /**
17325
- * createMeterReading - Create Meter Reading
18452
+ * createMeterReading - createMeterReading
17326
18453
  *
17327
18454
  * Inserts a new meter reading.
17328
18455
  */
@@ -17332,7 +18459,9 @@ export interface OperationMethods {
17332
18459
  config?: AxiosRequestConfig
17333
18460
  ): OperationResponse<Paths.CreateMeterReading.Responses.$200>
17334
18461
  /**
17335
- * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
18462
+ * getAllowedMeterReadingRange - getAllowedMeterReadingRange
18463
+ *
18464
+ * Get allowed reading range for all counters of a meter from the configured
17336
18465
  * third-party plausibility check hook using 'range' mode. This endpoint requires
17337
18466
  * a plausibility check hook to be configured for the portal.
17338
18467
  *
@@ -17343,7 +18472,7 @@ export interface OperationMethods {
17343
18472
  config?: AxiosRequestConfig
17344
18473
  ): OperationResponse<Paths.GetAllowedMeterReadingRange.Responses.$200>
17345
18474
  /**
17346
- * getMeterReadings - Get meter readings with optional template resolution
18475
+ * getMeterReadings - getMeterReadings
17347
18476
  *
17348
18477
  * Fetches meter readings for a counter and optionally resolves Handlebars
17349
18478
  * template strings against each reading object using @epilot/variables.
@@ -17590,7 +18719,7 @@ export interface OperationMethods {
17590
18719
  config?: AxiosRequestConfig
17591
18720
  ): OperationResponse<Paths.GetUserEntryPoint.Responses.$200>
17592
18721
  /**
17593
- * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
18722
+ * updateCampaignPortalBlockStatus - updateCampaignPortalBlockStatus
17594
18723
  *
17595
18724
  * Updates the status of a campaign portal block for multiple recipients.
17596
18725
  */
@@ -17599,6 +18728,46 @@ export interface OperationMethods {
17599
18728
  data?: Paths.UpdateCampaignPortalBlockStatus.RequestBody,
17600
18729
  config?: AxiosRequestConfig
17601
18730
  ): OperationResponse<Paths.UpdateCampaignPortalBlockStatus.Responses.$200>
18731
+ /**
18732
+ * listPortalNotifications - listPortalNotifications
18733
+ *
18734
+ * Lists the 360 notifications addressed to the authenticated portal user, newest first. The organization and the portal user are derived from the authenticated session, so a user can only ever read their own notifications.
18735
+ */
18736
+ 'listPortalNotifications'(
18737
+ parameters?: Parameters<Paths.ListPortalNotifications.QueryParameters> | null,
18738
+ data?: any,
18739
+ config?: AxiosRequestConfig
18740
+ ): OperationResponse<Paths.ListPortalNotifications.Responses.$200>
18741
+ /**
18742
+ * getPortalNotificationsUnreadCount - getPortalNotificationsUnreadCount
18743
+ *
18744
+ * Returns the number of unread notifications for the authenticated portal user.
18745
+ */
18746
+ 'getPortalNotificationsUnreadCount'(
18747
+ parameters?: Parameters<UnknownParamsObject> | null,
18748
+ data?: any,
18749
+ config?: AxiosRequestConfig
18750
+ ): OperationResponse<Paths.GetPortalNotificationsUnreadCount.Responses.$200>
18751
+ /**
18752
+ * markAllPortalNotificationsRead - markAllPortalNotificationsRead
18753
+ *
18754
+ * Marks all notifications of the authenticated portal user as read.
18755
+ */
18756
+ 'markAllPortalNotificationsRead'(
18757
+ parameters?: Parameters<UnknownParamsObject> | null,
18758
+ data?: any,
18759
+ config?: AxiosRequestConfig
18760
+ ): OperationResponse<Paths.MarkAllPortalNotificationsRead.Responses.$204>
18761
+ /**
18762
+ * markPortalNotificationRead - markPortalNotificationRead
18763
+ *
18764
+ * Marks a single notification of the authenticated portal user as read.
18765
+ */
18766
+ 'markPortalNotificationRead'(
18767
+ parameters?: Parameters<Paths.MarkPortalNotificationRead.PathParameters> | null,
18768
+ data?: any,
18769
+ config?: AxiosRequestConfig
18770
+ ): OperationResponse<Paths.MarkPortalNotificationRead.Responses.$204>
17602
18771
  /**
17603
18772
  * updateNotificationsStatus - updateNotificationsStatus
17604
18773
  *
@@ -17984,7 +19153,7 @@ export interface PathsDictionary {
17984
19153
  }
17985
19154
  ['/v2/portal/consumption']: {
17986
19155
  /**
17987
- * getConsumption - Get Consumption
19156
+ * getConsumption - getConsumption
17988
19157
  *
17989
19158
  * Get energy consumption data between a given time period.
17990
19159
  */
@@ -17996,7 +19165,7 @@ export interface PathsDictionary {
17996
19165
  }
17997
19166
  ['/v2/portal/visualization:export']: {
17998
19167
  /**
17999
- * prepareVisualizationExport - Prepare Visualization Export
19168
+ * prepareVisualizationExport - prepareVisualizationExport
18000
19169
  *
18001
19170
  * 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
19171
  *
@@ -18009,7 +19178,7 @@ export interface PathsDictionary {
18009
19178
  }
18010
19179
  ['/v2/portal/visualization/metadata']: {
18011
19180
  /**
18012
- * getVisualizationMetadata - Get Visualization Metadata
19181
+ * getVisualizationMetadata - getVisualizationMetadata
18013
19182
  *
18014
19183
  * 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
19184
  *
@@ -18022,7 +19191,7 @@ export interface PathsDictionary {
18022
19191
  }
18023
19192
  ['/v2/portal/costs']: {
18024
19193
  /**
18025
- * getCosts - Get Costs
19194
+ * getCosts - getCosts
18026
19195
  *
18027
19196
  * Get energy cost data between a given time period.
18028
19197
  */
@@ -18034,7 +19203,7 @@ export interface PathsDictionary {
18034
19203
  }
18035
19204
  ['/v2/portal/prices']: {
18036
19205
  /**
18037
- * getPrices - Get Prices
19206
+ * getPrices - getPrices
18038
19207
  *
18039
19208
  * Get energy prices data between a given time period.
18040
19209
  */
@@ -19007,6 +20176,18 @@ export interface PathsDictionary {
19007
20176
  config?: AxiosRequestConfig
19008
20177
  ): OperationResponse<Paths.GetFileById.Responses.$200>
19009
20178
  }
20179
+ ['/v2/portal/user/file/{id}/preview']: {
20180
+ /**
20181
+ * getFilePreview - getFilePreview
20182
+ *
20183
+ * 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.
20184
+ */
20185
+ 'get'(
20186
+ parameters?: Parameters<Paths.GetFilePreview.PathParameters> | null,
20187
+ data?: any,
20188
+ config?: AxiosRequestConfig
20189
+ ): OperationResponse<Paths.GetFilePreview.Responses.$200>
20190
+ }
19010
20191
  ['/v2/portal/user/file/{id}/downloaded']: {
19011
20192
  /**
19012
20193
  * trackFileDownloaded - trackFileDownloaded
@@ -19021,7 +20202,7 @@ export interface PathsDictionary {
19021
20202
  }
19022
20203
  ['/v2/portal/user/files/count-by-entity']: {
19023
20204
  /**
19024
- * getFilesCountByEntity - getFileCountByEntity
20205
+ * getFilesCountByEntity - getFilesCountByEntity
19025
20206
  *
19026
20207
  * Fetch file counts for all ECP user related entities
19027
20208
  */
@@ -19203,7 +20384,7 @@ export interface PathsDictionary {
19203
20384
  }
19204
20385
  ['/v2/portal/entity/{slug}/{id}/workflows']: {
19205
20386
  /**
19206
- * getEntityWorkflows - Get workflows for an entity
20387
+ * getEntityWorkflows - getEntityWorkflows
19207
20388
  *
19208
20389
  * Get all workflows associated with an entity (requires access to the entity)
19209
20390
  */
@@ -19213,9 +20394,63 @@ export interface PathsDictionary {
19213
20394
  config?: AxiosRequestConfig
19214
20395
  ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
19215
20396
  }
20397
+ ['/v2/portal/engagement/tasks']: {
20398
+ /**
20399
+ * getOutstandingTasks - Get outstanding workflow tasks for the portal user
20400
+ *
20401
+ * Returns all outstanding workflow journey tasks for the authenticated portal user, across their opportunity, order and contract entities. Each task is an active workflow step that exposes a journey the customer still needs to fill out.
20402
+ */
20403
+ 'get'(
20404
+ parameters?: Parameters<UnknownParamsObject> | null,
20405
+ data?: any,
20406
+ config?: AxiosRequestConfig
20407
+ ): OperationResponse<Paths.GetOutstandingTasks.Responses.$200>
20408
+ }
20409
+ ['/v2/portal/entity/{slug}/{id}/workflows/linearized']: {
20410
+ /**
20411
+ * getEntityPortalWorkflows - getEntityPortalWorkflows
20412
+ *
20413
+ * Get all portal-relevant workflows associated with an entity (requires access to the entity),
20414
+ * linearized by the Workflows API into a flat, ordered list of portal-visible tasks.
20415
+ *
20416
+ * Unlike `getEntityWorkflows`, this endpoint returns a single uniform shape for both legacy
20417
+ * (V1) workflow executions and graph-based (V2) flow executions — the execution graph is
20418
+ * already resolved server-side (active path, task reachability, chronological ordering), so
20419
+ * clients can render a timeline without any graph traversal logic.
20420
+ *
20421
+ * Tasks carry the config of both portal audiences (`ecp` and `installer`); clients filter
20422
+ * per their configured audience, so one response serves every block on a page.
20423
+ *
20424
+ */
20425
+ 'get'(
20426
+ parameters?: Parameters<Paths.GetEntityPortalWorkflows.PathParameters> | null,
20427
+ data?: any,
20428
+ config?: AxiosRequestConfig
20429
+ ): OperationResponse<Paths.GetEntityPortalWorkflows.Responses.$200>
20430
+ }
20431
+ ['/v2/portal/entities/workflows/linearized/batch']: {
20432
+ /**
20433
+ * getEntityPortalWorkflowsBatch - getEntityPortalWorkflowsBatch
20434
+ *
20435
+ * Batch variant of `getEntityPortalWorkflows`: returns portal-relevant workflows for
20436
+ * up to 50 entities — schemas may differ — in a single call, each already linearized
20437
+ * by the Workflows API into a flat, ordered list of portal-visible tasks.
20438
+ *
20439
+ * Intended for portal list views (e.g. an entity list where every card shows its
20440
+ * workflow progress). Entities the portal user cannot access are omitted from the
20441
+ * response; an entry with an empty task list means the entity has no portal-relevant
20442
+ * workflow.
20443
+ *
20444
+ */
20445
+ 'post'(
20446
+ parameters?: Parameters<UnknownParamsObject> | null,
20447
+ data?: Paths.GetEntityPortalWorkflowsBatch.RequestBody,
20448
+ config?: AxiosRequestConfig
20449
+ ): OperationResponse<Paths.GetEntityPortalWorkflowsBatch.Responses.$200>
20450
+ }
19216
20451
  ['/v2/portal/metering/reading/photo']: {
19217
20452
  /**
19218
- * uploadMeterReadingPhoto - Upload Meter Reading Photo
20453
+ * uploadMeterReadingPhoto - uploadMeterReadingPhoto
19219
20454
  *
19220
20455
  * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
19221
20456
  */
@@ -19227,7 +20462,7 @@ export interface PathsDictionary {
19227
20462
  }
19228
20463
  ['/v2/portal/metering/reading']: {
19229
20464
  /**
19230
- * createMeterReading - Create Meter Reading
20465
+ * createMeterReading - createMeterReading
19231
20466
  *
19232
20467
  * Inserts a new meter reading.
19233
20468
  */
@@ -19239,7 +20474,9 @@ export interface PathsDictionary {
19239
20474
  }
19240
20475
  ['/v2/portal/metering/reading/allowed-range/{meter_id}']: {
19241
20476
  /**
19242
- * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
20477
+ * getAllowedMeterReadingRange - getAllowedMeterReadingRange
20478
+ *
20479
+ * Get allowed reading range for all counters of a meter from the configured
19243
20480
  * third-party plausibility check hook using 'range' mode. This endpoint requires
19244
20481
  * a plausibility check hook to be configured for the portal.
19245
20482
  *
@@ -19252,7 +20489,7 @@ export interface PathsDictionary {
19252
20489
  }
19253
20490
  ['/v2/portal/metering/readings']: {
19254
20491
  /**
19255
- * getMeterReadings - Get meter readings with optional template resolution
20492
+ * getMeterReadings - getMeterReadings
19256
20493
  *
19257
20494
  * Fetches meter readings for a counter and optionally resolves Handlebars
19258
20495
  * template strings against each reading object using @epilot/variables.
@@ -19529,7 +20766,7 @@ export interface PathsDictionary {
19529
20766
  }
19530
20767
  ['/v2/portal/campaign/{campaign_id}/entity:status']: {
19531
20768
  /**
19532
- * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
20769
+ * updateCampaignPortalBlockStatus - updateCampaignPortalBlockStatus
19533
20770
  *
19534
20771
  * Updates the status of a campaign portal block for multiple recipients.
19535
20772
  */
@@ -19539,6 +20776,54 @@ export interface PathsDictionary {
19539
20776
  config?: AxiosRequestConfig
19540
20777
  ): OperationResponse<Paths.UpdateCampaignPortalBlockStatus.Responses.$200>
19541
20778
  }
20779
+ ['/v2/portal/notifications']: {
20780
+ /**
20781
+ * listPortalNotifications - listPortalNotifications
20782
+ *
20783
+ * Lists the 360 notifications addressed to the authenticated portal user, newest first. The organization and the portal user are derived from the authenticated session, so a user can only ever read their own notifications.
20784
+ */
20785
+ 'get'(
20786
+ parameters?: Parameters<Paths.ListPortalNotifications.QueryParameters> | null,
20787
+ data?: any,
20788
+ config?: AxiosRequestConfig
20789
+ ): OperationResponse<Paths.ListPortalNotifications.Responses.$200>
20790
+ }
20791
+ ['/v2/portal/notifications/unread-count']: {
20792
+ /**
20793
+ * getPortalNotificationsUnreadCount - getPortalNotificationsUnreadCount
20794
+ *
20795
+ * Returns the number of unread notifications for the authenticated portal user.
20796
+ */
20797
+ 'get'(
20798
+ parameters?: Parameters<UnknownParamsObject> | null,
20799
+ data?: any,
20800
+ config?: AxiosRequestConfig
20801
+ ): OperationResponse<Paths.GetPortalNotificationsUnreadCount.Responses.$200>
20802
+ }
20803
+ ['/v2/portal/notifications/read-all']: {
20804
+ /**
20805
+ * markAllPortalNotificationsRead - markAllPortalNotificationsRead
20806
+ *
20807
+ * Marks all notifications of the authenticated portal user as read.
20808
+ */
20809
+ 'put'(
20810
+ parameters?: Parameters<UnknownParamsObject> | null,
20811
+ data?: any,
20812
+ config?: AxiosRequestConfig
20813
+ ): OperationResponse<Paths.MarkAllPortalNotificationsRead.Responses.$204>
20814
+ }
20815
+ ['/v2/portal/notifications/{id}/read']: {
20816
+ /**
20817
+ * markPortalNotificationRead - markPortalNotificationRead
20818
+ *
20819
+ * Marks a single notification of the authenticated portal user as read.
20820
+ */
20821
+ 'put'(
20822
+ parameters?: Parameters<Paths.MarkPortalNotificationRead.PathParameters> | null,
20823
+ data?: any,
20824
+ config?: AxiosRequestConfig
20825
+ ): OperationResponse<Paths.MarkPortalNotificationRead.Responses.$204>
20826
+ }
19542
20827
  ['/v2/portal/notifications/entity:status']: {
19543
20828
  /**
19544
20829
  * updateNotificationsStatus - updateNotificationsStatus
@@ -19782,7 +21067,6 @@ export interface PathsDictionary {
19782
21067
 
19783
21068
  export type Client = OpenAPIClient<OperationMethods, PathsDictionary>
19784
21069
 
19785
-
19786
21070
  export type AcceptanceDecision = Components.Schemas.AcceptanceDecision;
19787
21071
  export type AccountExistsRequest = Components.Schemas.AccountExistsRequest;
19788
21072
  export type ActionLabel = Components.Schemas.ActionLabel;
@@ -19833,6 +21117,7 @@ export type EntityGetParams = Components.Schemas.EntityGetParams;
19833
21117
  export type EntityId = Components.Schemas.EntityId;
19834
21118
  export type EntityItem = Components.Schemas.EntityItem;
19835
21119
  export type EntityMatchingConfig = Components.Schemas.EntityMatchingConfig;
21120
+ export type EntityPortalWorkflows = Components.Schemas.EntityPortalWorkflows;
19836
21121
  export type EntityResponse = Components.Schemas.EntityResponse;
19837
21122
  export type EntityResponseGroupedWithHits = Components.Schemas.EntityResponseGroupedWithHits;
19838
21123
  export type EntityResponseWithHits = Components.Schemas.EntityResponseWithHits;
@@ -19865,6 +21150,7 @@ export type ExtraSchemaAttributes = Components.Schemas.ExtraSchemaAttributes;
19865
21150
  export type FailedRuleErrorResp = Components.Schemas.FailedRuleErrorResp;
19866
21151
  export type File = Components.Schemas.File;
19867
21152
  export type FileItem = Components.Schemas.FileItem;
21153
+ export type FilePreviewResult = Components.Schemas.FilePreviewResult;
19868
21154
  export type Grant = Components.Schemas.Grant;
19869
21155
  export type IdentifierAttribute = Components.Schemas.IdentifierAttribute;
19870
21156
  export type InstallmentEvent = Components.Schemas.InstallmentEvent;
@@ -19882,6 +21168,7 @@ export type MobileConfig = Components.Schemas.MobileConfig;
19882
21168
  export type MobileConfigUpdate = Components.Schemas.MobileConfigUpdate;
19883
21169
  export type MobileOtaConfig = Components.Schemas.MobileOtaConfig;
19884
21170
  export type MoblieOIDCConfig = Components.Schemas.MoblieOIDCConfig;
21171
+ export type NotificationTriggerConfig = Components.Schemas.NotificationTriggerConfig;
19885
21172
  export type OIDCProviderConfig = Components.Schemas.OIDCProviderConfig;
19886
21173
  export type OIDCProviderMetadata = Components.Schemas.OIDCProviderMetadata;
19887
21174
  export type Opportunity = Components.Schemas.Opportunity;
@@ -19889,6 +21176,7 @@ export type Order = Components.Schemas.Order;
19889
21176
  export type OrganizationSettings = Components.Schemas.OrganizationSettings;
19890
21177
  export type Origin = Components.Schemas.Origin;
19891
21178
  export type OtaPortal = Components.Schemas.OtaPortal;
21179
+ export type OutstandingTask = Components.Schemas.OutstandingTask;
19892
21180
  export type Page = Components.Schemas.Page;
19893
21181
  export type PageRequest = Components.Schemas.PageRequest;
19894
21182
  export type PaymentWidget = Components.Schemas.PaymentWidget;
@@ -19896,9 +21184,13 @@ export type PortalConfig = Components.Schemas.PortalConfig;
19896
21184
  export type PortalConfigV3 = Components.Schemas.PortalConfigV3;
19897
21185
  export type PortalDataExportColumn = Components.Schemas.PortalDataExportColumn;
19898
21186
  export type PortalId = Components.Schemas.PortalId;
21187
+ export type PortalNotification = Components.Schemas.PortalNotification;
21188
+ export type PortalTaskConfig = Components.Schemas.PortalTaskConfig;
19899
21189
  export type PortalUser = Components.Schemas.PortalUser;
19900
21190
  export type PortalUserRegistrationStatus = Components.Schemas.PortalUserRegistrationStatus;
19901
21191
  export type PortalWidget = Components.Schemas.PortalWidget;
21192
+ export type PortalWorkflow = Components.Schemas.PortalWorkflow;
21193
+ export type PortalWorkflowTask = Components.Schemas.PortalWorkflowTask;
19902
21194
  export type Product = Components.Schemas.Product;
19903
21195
  export type ProductRecommendationsWidget = Components.Schemas.ProductRecommendationsWidget;
19904
21196
  export type ProviderConfig = Components.Schemas.ProviderConfig;