UNPKG

@epilot/customer-portal-client

Version:
1,513 lines (1,512 loc) 638 kB
import type { OpenAPIClient, Parameters, UnknownParamsObject, OperationResponse, AxiosRequestConfig, } from 'openapi-client-axios'; declare namespace Components { namespace Responses { export interface ConfirmUserInvalidRequest { /** * Error message */ message?: string; reason: "invalid_token"; } export type Conflict = Schemas.ErrorResp; export interface ContractAssignmentConflict { /** * Error message */ message?: string; /** * Reason why the contract is not assignable. If the reason is "MULTIPLE", the contract is not assignable because multiple contracts were found and the business logic does not allow it. */ reason: "DRAFT" | "MULTIPLE"; } export type Forbidden = Schemas.ErrorResp; export type ForbiddenByRule = Schemas.ErrorResp | Schemas.FailedRuleErrorResp; export type InternalServerError = Schemas.ErrorResp; export type InvalidRequest = Schemas.ErrorResp; export type InvalidRequestCreateMeterReading = { reason?: "plausibility_check_failed" | "contract_period" | "no_counter" | "no_direction" | "timestamp_future" | "less_than_previous" | "greater_than_subsequent" | "meter_decommissioned" | "plausibility_check_failed"; upper_limit: number; lower_limit: number; /** * Error message */ message?: string; } | void; export type NotFound = Schemas.ErrorResp; export type Unauthorized = Schemas.ErrorResp; } namespace Schemas { export interface AcceptanceDecision { /** * Acceptance decision */ decision: "accept" | "decline"; } export interface AccountExistsRequest { /** * ID of the organization * example: * 728 */ org_id: string; /** * Identifier-value pairs per schema to identify an account during portal user registration * example: * { * "account": { * "customer_number": "ACC-123456" * }, * "contract": { * "contract_number": "123456" * } * } */ registration_identifiers: { [name: string]: { [name: string]: string; }; }; } export interface ActionLabel { en?: string | null; de?: string | null; } export interface ActionWidget { id: string; type: "ACTION_WIDGET" | "CONTENT_WIDGET" | "ENTITY_WIDGET" | "TEASER_WIDGET" | "DOCUMENT_WIDGET" | "PAYMENT_WIDGET" | "METER_READING_WIDGET" | "METER_CHART_WIDGET" | "CAMPAIGN_WIDGET" | "PRODUCT_RECOMMENDATIONS_WIDGET"; /** * Index of the widget in the list, used for ordering (left or right) */ listIndex: number; headline?: { en?: string; de?: string; }; subHeadline?: { en?: string; de?: string; }; actions?: WidgetAction[]; } export interface Activity { /** * example: * MyCustomActivity */ type: string; /** * Title for activity. Supports handlebars syntax. * example: * My custom activity */ title: string; /** * Message for activity. Supports handlebars syntax. * example: * {{caller}} did something with {{entity payload.entity.id}}. */ message: string; /** * example: * { * "entity": { * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", * "schema": "contact" * } * } */ payload?: { [name: string]: any; }; } export interface ActivityCallerContext { [name: string]: any; PortalAuth?: { /** * example: * { * "cognito:username": "john@doe.com", * "custom:contact_entity_id": "7579d22f-9400-41d1-b460-04730239ee91", * "custom:org_id": "123456", * "custom:origin": "END_CUSTOMER_PORTAL", * "custom:portal_user_id": "06c78f9d-af75-4483-893d-a3fad524400f", * "email": "john@doe.com", * "email_verified": true, * "exp": 1694693219, * "iat": 1694689619, * "sub": "8cc73157-3dc4-47f3-b163-d3a5039bba72" * } */ token?: { /** * example: * 8cc73157-3dc4-47f3-b163-d3a5039bba72 */ sub?: string; /** * example: * john@doe.com */ email?: string; /** * example: * john@doe.com */ "cognito:username"?: string; "custom:portal_user_id"?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; "custom:contact_entity_id"?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; }; }; } /** * See https://github.com/ulid/spec * example: * 01F130Q52Q6MWSNS8N2AVXV4JN */ export type ActivityId = string; // ulid export interface ActivityItem { _id?: /** * See https://github.com/ulid/spec * example: * 01F130Q52Q6MWSNS8N2AVXV4JN */ ActivityId /* ulid */; timestamp?: string; // date-time /** * example: * MyCustomActivity */ type: string; /** * Title for activity. Supports handlebars syntax. * example: * My custom activity */ title: string; /** * Message for activity. Supports handlebars syntax. * example: * {{caller}} did something with {{entity payload.entity.id}}. */ message: string; /** * example: * { * "entity": { * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", * "schema": "contact" * } * } */ payload?: { [name: string]: any; entity?: { id?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; schema?: string; }; caller?: ActivityCallerContext; }; } export interface AdminUser { [name: string]: any; /** * example: * user */ type?: string | null; /** * example: * 123456 */ user_id?: string; /** * example: * John */ display_name?: string | null; image_uri?: { /** * example: * https://fuafjvoHKsu.cloudimg.io/v7/e-mage-sam-bucket-dev.s3.eu-central-1.amazonaws.com/files/fuafjvoHKsudhfagweucjasdvga/original */ original?: string | null; /** * example: * https://fuafjvoHKsu.cloudimg.io/v7/e-mage-sam-bucket-dev.s3.eu-central-1.amazonaws.com/files/fuafjvoHKsudhfagweucjasdvga/original?w=32&h=32 */ thumbnail_32?: string | null; /** * example: * https://fuafjvoHKsu.cloudimg.io/v7/e-mage-sam-bucket-dev.s3.eu-central-1.amazonaws.com/files/fuafjvoHKsudhfagweucjasdvga/original?w=64&h=64 */ thumbnail_64?: string | null; /** * example: * fuafjvoHKsudhfagweucjasdvga */ key?: string | null; } | null; /** * example: * 123 */ org_id?: string; /** * example: * j.doe@epilot.cloud */ email?: string | null; /** * example: * 12345 67890 */ phone?: string | null; } /** * Allowed file extensions for upload */ export interface AllowedFileExtensions { document?: string[]; image?: string[]; spreadsheet?: string[]; presentation?: string[]; audioVideo?: string[]; email?: string[]; archive?: string[]; cad?: string[]; calendar?: string[]; other?: string[]; } /** * Dictionary of epilot user attributes to claims */ export interface AttributeMappingConfig { contact: { [name: string]: any; /** * example: * email */ email: string; /** * example: * first_name */ first_name?: string; /** * example: * last_name */ last_name?: string; /** * example: * tel */ phone?: string; /** * example: * language */ preferred_language?: string; /** * The concession of the user. For eg: GPE, EPE, WPE * example: * GPE */ concession?: string; /** * The installer number of the user * example: * 123456 */ installer_number?: string; }; account?: { [name: string]: any; /** * example: * company_name */ name?: string; /** * example: * street_name */ street?: string; /** * example: * house_number */ house_number?: string; /** * example: * postal_code */ postal_code?: string; /** * example: * city */ city?: string; }; portal_user?: { [name: string]: any; /** * example: * access_status */ access_status?: string; /** * example: * expires_at */ expires_at?: string; }; concession_attributes?: { /** * example: * water */ water?: string; /** * example: * energy */ energy?: string; /** * example: * gas */ gas?: string; }; } export interface AuthConfig { /** * AWS Cognito User Pool ID * example: * eu-central-1_CUEQRNbUb */ user_pool_id: string; /** * AWS Cognito User Pool Client ID * example: * 6bsd0jkgoie74k2i8mrhc1vest */ user_pool_client_id: string; /** * AWS Cognito User Pool Identity Pool ID * example: * eu-central-1:a63af1f7-ab86-4ab5-a0eb-f461cb37c2b1 */ user_pool_identity_pool_id?: string; /** * Portal ID * example: * 7h2hwdj7hhjsdcjkq03eidna3ep */ portal_id: string; } export interface Balance { /** * Current balance of the customer in cents. (precision 2) * example: * 8990 */ balance?: number; /** * Current balance of the customer in decimal string representation. * example: * 89.90 */ balance_decimal?: number; balance_currency?: /** * Currency code in ISO 4217 format * example: * EUR */ Currency; } /** * A base billing event to be inherited by all billing events. */ export interface BaseBillingEvent { [name: string]: any; _id: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * Title of the entity * example: * Example Entity */ _title: string; /** * Organization ID the entity belongs to * example: * 123 */ _org: string; /** * Array of entity tags * example: * [ * "example", * "mock" * ] */ _tags?: string[]; /** * Creation timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _created_at: string; // date-time /** * Last update timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _updated_at: string; // date-time /** * Template outputs with search highlight <em> tags merged in. Only present when highlight is requested and matches exist. */ templates_output_highlighted?: { [name: string]: string | { [name: string]: string; }; }; /** * Highlighted fragments for search matches on fields not shown in template content. Max 1 entry. */ search_snippets?: { /** * Human-readable field label */ field?: string; /** * Highlighted text fragment with <em> tags */ fragment?: string; }[]; /** * Amount to be paid in cents i.e. precision 2 * example: * 10050 */ billing_amount?: number; /** * Amount to be paid in cents in decimal string representation * example: * 100.50 */ billing_amount_decimal?: string; billing_currency?: /** * Currency code in ISO 4217 format * example: * EUR */ Currency; /** * Unique identifier for event, used to reference the event to a 3rd party resource such as a SAP Installment. * example: * d4fb2a4e-3f74-4fc4-8fba-6fdaaaa3b08e */ external_id?: string; contract: { $relation?: { /** * Entity ID for the related contract. * example: * f589786b-3024-43cd-9cb3-5a3c953f2896 */ entity_id?: string; }[]; }; } export interface BaseEntity { /** * Entity ID * example: * 3fa85f64-5717-4562-b3fc-2c963f66afa6 */ _id: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * Title of the entity * example: * Example Entity */ _title: string; /** * Organization ID the entity belongs to * example: * 123 */ _org: string; /** * Array of entity tags * example: * [ * "example", * "mock" * ] */ _tags?: string[]; /** * Creation timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _created_at: string; // date-time /** * Last update timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _updated_at: string; // date-time } /** * A billing account */ export interface BillingAccount { [name: string]: any; _id: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * Title of the entity * example: * Example Entity */ _title: string; /** * Organization ID the entity belongs to * example: * 123 */ _org: string; /** * Array of entity tags * example: * [ * "example", * "mock" * ] */ _tags?: string[]; /** * Creation timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _created_at: string; // date-time /** * Last update timestamp of the entity * example: * 2021-02-09T12:41:43.662Z */ _updated_at: string; // date-time /** * Template outputs with search highlight <em> tags merged in. Only present when highlight is requested and matches exist. */ templates_output_highlighted?: { [name: string]: string | { [name: string]: string; }; }; /** * Highlighted fragments for search matches on fields not shown in template content. Max 1 entry. */ search_snippets?: { /** * Human-readable field label */ field?: string; /** * Highlighted text fragment with <em> tags */ fragment?: string; }[]; /** * Billing account number */ billing_account_number?: string; /** * Balance of the billing account */ balance?: number; /** * Balance of the billing account in decimal string representation */ balance_decimal?: string; balance_currency?: /** * Currency code in ISO 4217 format * example: * EUR */ Currency; billing_contact?: { $relation?: { /** * Entity ID for the related billing contact. * example: * f589786b-3024-43cd-9cb3-5a3c953f2896 */ entity_id?: string; }[]; }; billing_address?: { $relation_ref?: { /** * Entity ID for the related billing address. * example: * f589786b-3024-43cd-9cb3-5a3c953f2896 */ entity_id?: string; /** * Path to the related billing address. * example: * address */ path?: string; /** * ID of the related billing address. * example: * f589786b-3024-43cd-9cb3-5a3c953f2896 */ _id?: string; }[]; }; } /** * An entity that describes a billing event such as a future installment or a reimbursement back to the customer. */ export type BillingEvent = { /** * Amount to be paid in cents in decimal string representation * example: * 100.50 */ billing_amount_decimal?: string; } & (/* An entity that describes a billing event such as a future installment or a reimbursement back to the customer. */ /* An entity that describes an installment billing event. */ InstallmentEvent | /* An entity that describes a reimbursement billing event. */ ReimbursementEvent); export interface Block { [name: string]: any; props?: BlockProps; /** * The id of the parent block * example: * c495fef9-eeca-4019-a989-8390dcd9825b */ parentId?: string; type: /** * The type of the block. eg; tabs, tab, group, attribute * example: * tab */ BlockType; /** * The order of the block * example: * 1 */ order: number; /** * The id of the block * example: * c495fef9-eeca-4019-a989-8390dcd9825b */ id?: string; // uuid } /** * The id of the block * example: * c495fef9-eeca-4019-a989-8390dcd9825b */ export type BlockId = string; // uuid export interface BlockProps { [name: string]: any; /** * The conditions that need to be met for the block to be shown */ visibility?: { [name: string]: any; /** * Block is fully hidden from portal users */ is_hidden?: boolean; /** * Block is hidden on mobile viewports */ hidden_on_mobile?: boolean; /** * Block is hidden on desktop viewports */ hidden_on_desktop?: boolean; /** * Block is hidden in the mobile app */ hidden_in_app?: boolean; /** * Schedule visibility start date. If only start_date is set, block is visible from this date onwards. */ start_date?: string; // date-time /** * Schedule visibility end date. If only end_date is set, block is visible until this date. */ end_date?: string; // date-time /** * Target IDs that must match for the block to be visible */ visible_for_targets?: string[]; /** * Operator for visible_for_targets matching */ visible_for_operator?: "and" | "or"; /** * Target IDs that if matched will hide the block */ hidden_for_targets?: string[]; /** * Operator for hidden_for_targets matching */ hidden_for_operator?: "and" | "or"; }; /** * The content of the block */ content?: { [name: string]: any; }; /** * The design of the block */ design?: { [name: string]: any; }; } export interface BlockRequest { [name: string]: any; props?: BlockProps; /** * The id of the parent block * example: * c495fef9-eeca-4019-a989-8390dcd9825b */ parentId?: string; type: /** * The type of the block. eg; tabs, tab, group, attribute * example: * tab */ BlockType; /** * The order of the block * example: * 1 */ order: number; } /** * The type of the block. eg; tabs, tab, group, attribute * example: * tab */ export type BlockType = string; export interface BusinessPartnerItem { _id?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * example: * true */ has_portal_user?: boolean; registration_status?: PortalUserRegistrationStatus; /** * example: * john.doe@example.com */ email?: string; /** * example: * John Doe */ _title?: string; /** * example: * John */ first_name?: string; /** * example: * Doe */ last_name?: string; /** * example: * true */ access_status?: boolean; } export interface CampaignWidget { id: string; type: "ACTION_WIDGET" | "CONTENT_WIDGET" | "ENTITY_WIDGET" | "TEASER_WIDGET" | "DOCUMENT_WIDGET" | "PAYMENT_WIDGET" | "METER_READING_WIDGET" | "METER_CHART_WIDGET" | "CAMPAIGN_WIDGET" | "PRODUCT_RECOMMENDATIONS_WIDGET"; /** * Index of the widget in the list, used for ordering (left or right) */ listIndex: number; headline?: { en?: string; de?: string; }; subHeadline?: { en?: string; de?: string; }; imageUrl?: string; button?: { label?: { en?: string; de?: string; }; url?: string; }; /** * ID of the campaign */ campaign_id?: string; } export interface CommonConfigAttributes { /** * Enable/Disable the portal access */ enabled?: boolean; /** * A short name to identify your portal * example: * Installer Portal */ name?: string; /** * The URL on which the portal is accessible * example: * abc.com */ domain: string; /** * Mark true if the domain is an Epilot domain */ is_epilot_domain?: boolean; /** * The URL on which the portal is accessible * example: * example-portal-12345.ecp.epilot.cloud */ epilot_domain?: string; domain_settings?: /* Domain settings for the portal */ DomainSettings; /** * ID of the design used to build the portal */ design_id?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * Allowed portal entities for the portal * example: * [ * "contact", * "contract" * ] */ allowed_portal_entities?: string[]; self_registration_setting?: "ALLOW_WITH_CONTACT_CREATION" | "ALLOW_WITHOUT_CONTACT_CREATION" | "DENY" | "ALWAYS_CREATE_CONTACT" | "DISALLOW_COMPLETELY" | "BLOCK_IF_PORTAL_USER_EXISTS"; /** * Controls behavior of self-registration when account is used as the registration entity */ self_registration_account_setting?: "ALLOW_WITH_CONTACT_CREATION" | "DENY" | "ALWAYS_CREATE_CONTACT" | "DISALLOW_COMPLETELY"; /** * Entity type used as the primary identifier for self-registration */ self_registration_entity?: "contact" | "account"; /** * Enable or disable user account self management * example: * false */ user_account_self_management?: boolean; /** * Feature settings for the portal */ feature_settings?: { /** * Start page feature flag */ start_page?: boolean; /** * Billing feature flag */ billing?: boolean; /** * Change due date feature flag */ change_due_date?: boolean; /** * Enable or disable the new design for the portal */ new_design?: boolean; }; /** * Access token for the portal */ accessToken?: string; advanced_mfa?: { /** * Advanced MFA feature flag */ enabled?: boolean; }; /** * Authentication settings for the portal */ auth_settings?: { passwordless_login?: { /** * Passwordless login feature flag */ enabled?: boolean; }; entry_point?: "PASSWORD" | "SSO"; preferred_sso_providers?: /** * URL-friendly slug to use as organization-unique identifier for Provider * example: * office-365-login */ ProviderSlug /* [0-9a-z-]+ */[]; /** * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page. */ auto_redirect_to_sso?: boolean; }; /** * AWS Cognito Pool details for the portal */ cognito_details?: { /** * Cognito user pool client ID * example: * 6bsd0jkgoie74k2i8mrhc1vest */ cognito_user_pool_client_id?: string; /** * Cognito user pool ARN * example: * arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341 */ cognito_user_pool_arn?: string; /** * Cognito user pool ID * example: * eu-central-1_CUEQRNbUb */ cognito_user_pool_id?: string; /** * Timeouts for the cognito tokens */ timeouts?: { /** * Timeout for the refresh token * example: * 300 */ refresh_token?: number; /** * Timeout for the access token * example: * 300 */ access_token?: number; /** * Timeout for the id token * example: * 300 */ id_token?: number; }; /** * Advanced authentication settings for the portal */ advanced_authentication?: { /** * Enables detailed logging of user authentication attempts including risk assessments, IP addresses, user agents, and device information. These logs can be used for security analysis and monitoring. * example: * true */ user_activity_logging?: boolean; /** * Automatically assesses risk for every authentication session. Based on risk ratings, can block authentication or require MFA for suspicious sign-in attempts. Helps protect user accounts from potential attacks by adapting security measures in real-time. * example: * true */ adaptive_authentication?: boolean; /** * Checks passwords against databases of leaked and commonly-guessed passwords during sign-up, sign-in, and password reset. Blocks or warns users when insecure passwords are detected, preventing unauthorized access from compromised credentials. * example: * true */ compromised_credentials_detection?: boolean; }; /** * Password policy for the portal */ password_policy?: { /** * Minimum password length * example: * 8 */ minimum_length?: number; /** * Maximum password length * example: * 256 */ maximum_length?: number; /** * Require lowercase characters * example: * true */ require_lowercase?: boolean; /** * Require uppercase characters * example: * true */ require_uppercase?: boolean; /** * Require numbers * example: * true */ require_numbers?: boolean; /** * Require symbols * example: * true */ require_symbols?: boolean; }; }; /** * Stringified object with configuration details */ config?: string; /** * Deprecated. Use registration_identifiers instead. * example: * [ * "email", * "last_name" * ] */ contact_identifiers?: string[]; /** * example: * { * "contact": [ * "name", * "address" * ], * "contract": [ * "installment_amount" * ] * } */ approval_state_attributes?: { [name: string]: string[]; }; email_templates?: /* Email templates used for authentication and internal processes */ EmailTemplates; /** * Teaser & Banner Image web links */ images?: { /** * URL of the order left teaser image * example: * https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg */ orderLeftTeaser?: string | null; /** * URL of the order right teaser image * example: * https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg */ orderRightTeaser?: string | null; /** * URL of the welcome banner image * example: * https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg */ welcomeBanner?: string | null; }; /** * Identifiers used to identify an entity by a portal user. Deprecated. Use contract_identifiers instead. */ entity_identifiers?: { type?: { /** * Enable/Disable the entity identifier */ isEnabled?: boolean; /** * Attributes used to identify an entity */ attributes?: string[]; }; }; /** * Identifiers to identify a contract by a portal user. * example: * [ * { * "name": "email", * "schema": "contact" * }, * { * "name": "last_name", * "schema": "contact" * }, * { * "name": "contract_number", * "schema": "contract" * } * ] */ contract_identifiers?: ContractIdentifier[]; /** * Configuration for contract selector in the portal */ contract_selector_config?: { /** * Whether to show inactive contracts in the selector */ show_inactive?: boolean; /** * Path to the property to use as the contract title */ title_path?: string; }; /** * Identifiers to identify a contact of a portal user during the registration. * example: * [ * { * "name": "last_name", * "schema": "contact" * }, * { * "name": "contract_number", * "schema": "contract" * } * ] */ registration_identifiers?: ContractIdentifier[]; /** * Journeys automatically opened on a portal user action */ triggered_journeys?: { trigger_name?: "FIRST_LOGIN" | "ACCEPT_ORDER" | "DECLINE_ORDER"; journey_id?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; }[]; /** * Rules for editing an entity by a portal user */ entity_edit_rules?: { slug?: /** * URL-friendly identifier for the entity schema * example: * contact */ EntitySlug; /** * example: * first_name */ attribute?: string; rule_type?: "cadence" | "relative_to_current_value" | "days_before_date" | "overdue_payments"; cadence_period_type?: "days" | "weeks" | "months"; /** * example: * 1 */ cadence_period?: number; /** * example: * 1 */ changes_allowed?: number; /** * example: * 1 */ grace_period?: number; /** * example: * 10% */ allowed_increment?: string; /** * example: * 10% */ allowed_decrement?: string; /** * example: * 10 */ number_of_days_before_restriction?: number; }[]; allowed_file_extensions?: /* Allowed file extensions for upload */ AllowedFileExtensions; /** * Prevent indexing by search engines */ prevent_search_engine_indexing?: boolean; /** * Grace period in days for meter readings */ meter_reading_grace_period?: number; /** * Number of years to look back for showing inactive contracts in the portal */ inactive_contract_cutoff_years?: number; /** * Whether this is a dummy/test portal configuration */ is_dummy?: boolean; /** * Whether this is a v3 portal configuration */ is_v3_item?: boolean; portal_id?: /** * ID of the portal * example: * 453ad7bf-86d5-46c8-8252-bcc868df5e3c */ PortalId; /** * Key of the portal config * example: * PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c */ portal_sk_v3?: string; origin?: /* Origin of the portal */ Origin; pages?: { [name: string]: Page; }; /** * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id. */ global_blocks?: { [name: string]: Block; }; } export interface CommonConfigAttributesV3 { /** * Enable/Disable the portal access */ enabled?: boolean; /** * A short name to identify your portal * example: * Installer Portal */ name?: string; /** * The URL on which the portal is accessible * example: * abc.com */ domain?: string; /** * Mark true if the domain is an Epilot domain */ is_epilot_domain?: boolean; /** * The Epilot domain on which the portal is accessible * example: * example-portal-1.ecp.epilot.io */ epilot_domain?: string; domain_settings?: /* Domain settings for the portal */ DomainSettings; /** * ID of the design used to build the portal */ design_id?: /** * Entity ID * example: * 5da0a718-c822-403d-9f5d-20d4584e0528 */ EntityId /* uuid */; /** * Allowed portal entities for the portal * example: * [ * "contact", * "contract" * ] */ allowed_portal_entities?: string[]; self_registration_setting?: "ALLOW_WITH_CONTACT_CREATION" | "ALLOW_WITHOUT_CONTACT_CREATION" | "DENY" | "ALWAYS_CREATE_CONTACT" | "DISALLOW_COMPLETELY" | "BLOCK_IF_PORTAL_USER_EXISTS"; /** * Controls behavior of self-registration when account is used as the registration entity */ self_registration_account_setting?: "ALLOW_WITH_CONTACT_CREATION" | "DENY" | "ALWAYS_CREATE_CONTACT" | "DISALLOW_COMPLETELY"; /** * Entity type used as the primary identifier for self-registration */ self_registration_entity?: "contact" | "account"; /** * Enable or disable user account self management * example: * false */ user_account_self_management?: boolean; /** * Feature settings for the portal */ feature_settings?: { /** * Start page feature flag */ start_page?: boolean; /** * Billing feature flag */ billing?: boolean; /** * Change due date feature flag */ change_due_date?: boolean; /** * Enable or disable the new design for the portal */ new_design?: boolean; }; /** * Access token for the portal */ accessToken?: string; advanced_mfa?: { /** * Advanced MFA feature flag */ enabled?: boolean; }; /** * Authentication settings for the portal */ auth_settings?: { passwordless_login?: { /** * Passwordless login feature flag */ enabled?: boolean; }; entry_point?: "PASSWORD" | "SSO"; preferred_sso_providers?: /** * URL-friendly slug to use as organization-unique identifier for Provider * example: * office-365-login */ ProviderSlug /* [0-9a-z-]+ */[]; /** * Decide whether to automatically redirect to the provider page during login, which would completely bypass showing the portal authentication page. */ auto_redirect_to_sso?: boolean; }; /** * AWS Cognito Pool details for the portal */ cognito_details?: { /** * Cognito user pool client ID * example: * 6bsd0jkgoie74k2i8mrhc1vest */ cognito_user_pool_client_id?: string; /** * Cognito user pool ARN * example: * arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341 */ cognito_user_pool_arn?: string; /** * Cognito user pool ID * example: * eu-central-1_CUEQRNbUb */ cognito_user_pool_id?: string; /** * Timeouts for the cognito tokens */ timeouts?: { /** * Timeout for the refresh token * example: * 300 */ refresh_token?: number; /** * Timeout for the access token * example: * 300 */ access_token?: number; /** * Timeout for the id token * example: * 300 */ id_token?: numbe