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?: 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;
            /**
             * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id.
             */
            global_blocks?: {
                [name: string]: Block;
            };
        }
        /**
         * The mapped contact of the portal user
         */
        export interface Contact {
            [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;
            }[];
            _schema: "contact";
        }
        export interface ContactCountRequest {
            /**
             * ID of the organization
             * example:
             * 728
             */
            orgId: string;
            /**
             * Identifiers to identify a contact
             */
            contactIdentifiers: {
                [name: string]: string;
            };
        }
        export interface ContactExistsRequest {
            /**
             * ID of the organization
             * example:
             * 728
             */
            org_id: string;
            /**
             * Identifier-value pairs per schema to identify a contact of a portal user during the resgistration
             * example:
             * {
             *   "contact": {
             *     "email": "john.doe@example.com"
             *   },
             *   "contract": {
             *     "contract_number": "123456"
             *   }
             * }
             */
            registration_identifiers: {
                [name: string]: {
                    [name: string]: string;
                };
            };
        }
        export interface ContentWidget {
            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;
            };
            content?: string;
        }
        /**
         * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
         * example:
         * [
         *   {
         *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
         *     "entity_schema": "contract"
         *   }
         * ]
         */
        export type ContextEntities = /* An entity reference for context-aware operations */ ContextEntity[];
        /**
         * An entity reference for context-aware operations
         */
        export interface ContextEntity {
            /**
             * Entity schema
             * example:
             * contract
             */
            entity_schema: string;
            /**
             * Entity id
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            entity_id: string; // uuid
        }
        /**
         * The contract entity
         */
        export interface Contract {
            [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;
            }[];
            /**
             * The name of the contract.
             * example:
             * Grid Contract
             */
            contract_name?: string;
            /**
             * The unique identifier of the contract.
             * example:
             * 12345
             */
            contract_number?: string;
            /**
             * The status of the contract.
             * example:
             * approved
             */
            status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired";
            /**
             * A brief description of the contract.
             * example:
             * This contract is for the supply of widgets.
             */
            description?: string;
            /**
             * The account number associated with the contract.
             * example:
             * 67890
             */
            account_number?: string;
            /**
             * The branch associated with the contract.
             * example:
             * power
             */
            branch?: "power" | "gas" | "water" | "waste_water" | "district_heating";
            /**
             * The billing address associated with the contract.
             * example:
             * 123 Main St, Anytown
             */
            billing_address?: string;
            /**
             * The delivery address associated with the contract.
             * example:
             * 456 Elm St, Anytown
             */
            delivery_address?: string;
            /**
             * Any additional addresses associated with the contract.
             * example:
             * 789 Oak St, Anytown
             */
            additional_addresses?: string;
            /**
             * The date on which the contract was terminated.
             * example:
             * 2022-01-01
             */
            termination_date?: string;
            /**
             * The reason for the termination of the contract.
             * example:
             * Non-payment
             */
            termination_reason?: string;
            /**
             * The billing period associated with the contract.
             * example:
             * monthly
             */
            billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly";
            /**
             * The duration of the billing period.
             * example:
             * 30
             */
            billing_duration_amount?: number;
            /**
             * The duration of the renewal period.
             * example:
             * 365
             */
            renewal_duration_amount?: number;
            /**
             * The unit of time for the renewal period.
             * example:
             * years
             */
            renewal_duration_unit?: "weeks" | "months" | "years";
            /**
             * The amount of notice required for termination of the contract.
             * example:
             * 30
             */
            notice_time_amount?: number;
            /**
             * The unit of time for the notice period.
             * example:
             * months
             */
            notice_time_unit?: "weeks" | "months" | "years";
            /**
             * The start date of the contract.
             * example:
             * 2021-01-01
             */
            start_date?: string;
            /**
             * Defines the day of the month in which the installments are due.
             * example:
             * 2
             */
            billing_due_day?: number;
            /**
             * Set amount for installments in cents. (precision 2)
             * example:
             * 10050
             */
            installment_amount?: number;
            /**
             * Current balance of the contract in cents. (precision 2)
             * example:
             * 8990
             */
            balance?: number;
            balance_currency?: /**
             * Currency code in ISO 4217 format
             * example:
             * EUR
             */
            Currency;
        }
        export interface ContractIdentifier {
            /**
             * Name of the identifier/attribute
             */
            name?: string;
            schema?: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
        }
        export interface CreateUserRequest {
            /**
             * User's email address
             * example:
             * testemail921@yopmail.com
             */
            email: string;
            /**
             * First Name of the portal user
             * example:
             * John
             */
            first_name?: string;
            /**
             * Last Name of the portal user
             * example:
             * Doe
             */
            last_name?: string;
            contactId?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the organization
             * example:
             * 728
             */
            orgId: string;
            /**
             * User's password
             * example:
             * 124n$aAJs*d41h4
             */
            password: string;
            /**
             * Deprecated. Use registration_identifiers instead.
             */
            contactIdentifiers?: {
                [name: string]: string;
            };
            /**
             * Identifier-value pairs per schema to identify a contact of a portal user during the resgistration
             * example:
             * {
             *   "contact": {
             *     "email": "john.doe@example.com"
             *   },
             *   "contract": {
             *     "contract_number": "123456"
             *   }
             * }
             */
            registration_identifiers?: {
                [name: string]: {
                    [name: string]: string;
                };
            };
            /**
             * ID of the account
             */
            account_id?: string;
        }
        /**
         * Currency code in ISO 4217 format
         * example:
         * EUR
         */
        export type Currency = string;
        export interface DataRetrievalItem {
            app?: PublicAppDetails;
            extension?: PublicExtensionDetails;
            hook?: PublicDataRetrievalHookDetails;
        }
        export interface DeleteEntityFile {
            entity_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * Entity type
             * example:
             * order
             */
            entity_type: string;
            /**
             * Array of file entity IDs
             */
            file_entity_ids: [
                /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */,
                .../**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */[]
            ];
        }
        export type Direction = "feed-in" | "feed-out";
        export interface DocumentWidget {
            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;
            };
        }
        /**
         * Domain settings for the portal
         */
        export interface DomainSettings {
            /**
             * Whether the custom domain is enabled
             */
            is_custom_domain_enabled?: boolean;
            /**
             * Whether the Epilot domain is enabled
             */
            is_epilot_domain_enabled?: boolean;
            /**
             * Whether the redirection is enabled
             */
            is_redirection_enabled?: boolean;
        }
        /**
         * Email templates used for authentication and internal processes
         */
        export interface EmailTemplates {
            /**
             * ID of the confirmation email template upon registration
             */
            confirmAccount?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the advanced Auth with login link and login code
             */
            advancedAuth?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the advanced MFA with login link and login code
             */
            advancedMFA?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for signing up from Journeys
             */
            journeySignUp?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for OTP to sign in from Journeys
             */
            journeySignInOneTimePassword?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for OTP to sign in from Journeys
             */
            journeyLoginOTP?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for forgot password
             */
            forgotPassword?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for invitation when the user is just invited to register on the portal.
             */
            invitation?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for invitation when a partner invites another partner within the portal.
             */
            partnerInvitation?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for new quote
             */
            onNewQuote?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for mapping a pending portal user with a contact
             */
            onMapAPendingUser?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for document upload
             */
            onDocUpload?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for workflow step assignment
             */
            onWorkflowStepAssigned?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for setting password while updating email
             */
            confirmEmailUpdate?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * ID of the email template for setting password while verifying code
             */
            verifyCodeToSetPassword?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
        }
        export interface Entity {
            [name: string]: any;
            /**
             * 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;
            }[];
        }
        export interface EntityEditRule {
            slug?: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
            attribute?: string;
            rule_type?: string;
            cadence_period_type?: string;
            changes_allowed?: number;
            cadence_period?: number;
            allowed_decrement?: string;
            allowed_increment?: string;
            number_of_days_before_restriction?: number;
            grace_period?: number;
        }
        export interface EntityFileCount {
            /**
             * The ID of the parent entity
             */
            entity_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            _schema: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
            /**
             * The title of the parent entity
             * example:
             * Opportunity ABC
             */
            _title?: string;
            /**
             * Number of files associated with the entity and shared with portal user
             * example:
             * 2
             */
            file_count: number;
        }
        export interface EntityGetParams {
            /**
             * Single entity schema slug
             */
            slug: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
            /**
             * Optional entity ID to filter by. If provided, creates a filter for _id.
             * example:
             * 3ec28ab5-8598-41ef-9486-b57fca1d5e2a
             */
            entity_id?: string; // uuid
            /**
             * When true, enables entity hydration to resolve nested $relation & $relation_ref references in-place.
             */
            hydrate?: boolean;
            /**
             * List of entity fields to include in search results
             * example:
             * [
             *   "_id",
             *   "_title"
             * ]
             */
            fields?: string[];
            /**
             * Template strings to parse and return as synthetic fields. Supports both string values and nested objects of strings.
             * example:
             * {
             *   "content_top_name": "Customer #{{contract.customer_number}}",
             *   "main_content_name": "{{contract.contract_name}} ({{contract.contract_number}})",
             *   "content_bottom_name": "{{custom_contract_delivery_address}}",
             *   "nested_content": {
             *     "title": "{{contract.contract_name}}",
             *     "subtitle": "{{contract.contract_number}}"
             *   }
             * }
             */
            templates?: {
                [name: string]: string | {
                    [name: string]: string;
                };
            };
            /**
             * Additional filters to apply to the search query
             * example:
             * [
             *   {
             *     "term": {
             *       "status.keyword": "active"
             *     }
             *   },
             *   {
             *     "range": {
             *       "_created_at": {
             *         "gte": "2023-01-01"
             *       }
             *     }
             *   }
             * ]
             */
            filters?: {
                [key: string]: any;
            }[];
            /**
             * Context-based filters for entity relations.
             * example:
             * [
             *   {
             *     "portal_user": true
             *   },
             *   {
             *     "contact": true
             *   },
             *   {
             *     "contract": "3ec28ab5-8598-41ef-9486-b57fca1d5e2a"
             *   }
             * ]
             */
            filters_context?: {
                [name: string]: boolean | string;
            }[];
            /**
             * Filters from these targets will be applied to the search query.
             * example:
             * [
             *   "3ec28ab5-8598-41ef-9486-b57fca1d5e2a"
             * ]
             */
            targets?: string /* uuid */[];
        }
        /**
         * Entity ID
         * example:
         * 5da0a718-c822-403d-9f5d-20d4584e0528
         */
        export type EntityId = string; // uuid
        export interface EntityItem {
            [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;
            }[];
            /**
             * Resolved template strings corresponding to the templates parameter. Supports both string values and nested objects of strings.
             * example:
             * {
             *   "content_top_name": "Customer #123456",
             *   "main_content_name": "Orange Flexible A2 (654321)",
             *   "content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
             *   "nested_content": {
             *     "title": "Orange Flexible A2",
             *     "subtitle": "654321"
             *   }
             * }
             */
            templates_output?: {
                [name: string]: string | {
                    [name: string]: string;
                };
            };
            _schema: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
        }
        /**
         * Configuration for matching existing entities during SSO login using token claims
         */
        export interface EntityMatchingConfig {
            /**
             * Mapping of portal_user attributes to token claim paths. All configured fields must match (AND logic).
             * example:
             * {
             *   "external_id": "sub"
             * }
             */
            portal_user?: {
                [name: string]: string;
            };
            /**
             * Mapping of contact attributes to token claim paths. All configured fields must match (AND logic).
             * example:
             * {
             *   "customer_number": "customer_id",
             *   "external_id": "sub"
             * }
             */
            contact?: {
                [name: string]: string;
            };
            /**
             * Whether to automatically create Cognito user when matched portal_user has no authentication data. Defaults to true.
             */
            auto_create_cognito_user?: boolean;
        }
        /**
         * Response for entity get request
         */
        export interface EntityResponse {
            result?: EntityItem;
        }
        /**
         * Response for entity search requests, but with groupings
         */
        export interface EntityResponseGroupedWithHits {
            groups?: {
                /**
                 * Group title
                 * example:
                 * active
                 */
                group?: string;
                /**
                 * Resolved group title from variable
                 * example:
                 * Account #987654321
                 */
                group_title?: string;
                /**
                 * Total number of entities in this group
                 * example:
                 * 10
                 */
                count?: number;
                results?: EntityItem[];
                /**
                 * Pagination metadata for entities within this group
                 */
                pagination?: {
                    /**
                     * Starting offset for entities in this group
                     * example:
                     * 0
                     */
                    from?: number;
                    /**
                     * Number of entities returned for this group
                     * example:
                     * 5
                     */
                    size?: number;
                    /**
                     * Total number of entities available in this group
                     * example:
                     * 10
                     */
                    total?: number;
                    /**
                     * Whether there are more entities available in this group beyond the current page
                     */
                    has_more?: boolean;
                };
            }[];
            /**
             * Group pagination metadata
             */
            groups_pagination?: {
                /**
                 * Whether there are more groups available
                 */
                has_more?: boolean;
                /**
                 * Composite aggregation key for the next page
                 */
                after_key?: {
                    [name: string]: string;
                };
            };
            /**
             * Number of groups returned in this response
             * example:
             * 5
             */
            hits?: number;
            includes?: /* Side-loaded enrichment data requested via the `include` parameter. */ SearchIncludes;
        }
        /**
         * Response for entity search requests
         */
        export interface EntityResponseWithHits {
            results?: EntityItem[];
            /**
             * Pagination metadata
             */
            pagination?: {
                /**
                 * Starting offset for the current page
                 * example:
                 * 0
                 */
                from?: number;
                /**
                 * Number of entities per page
                 * example:
                 * 10
                 */
                size?: number;
                /**
                 * Total number of entities available
                 * example:
                 * 50
                 */
                total?: number;
                /**
                 * Whether there are more entities available beyond the current page
                 */
                has_more?: boolean;
            };
            /**
             * Number of entities returned in this response
             * example:
             * 10
             */
            hits?: number;
            includes?: /* Side-loaded enrichment data requested via the `include` parameter. */ SearchIncludes;
        }
        export interface EntitySearchParams {
            /**
             * Entity slug, array of slugs, or array of per-slug configurations
             */
            slug: /* Entity slug, array of slugs, or array of per-slug configurations */ /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug | [
                /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug,
                .../**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug[]
            ] | [
                /* Per-slug search configuration with scoped targets and templates */ EntitySlugConfig,
                .../* Per-slug search configuration with scoped targets and templates */ EntitySlugConfig[]
            ];
            /**
             * Keyword search query
             * example:
             * contract
             */
            q?: string;
            /**
             * List of fields that can be searched
             * example:
             * [
             *   "_title",
             *   "customer._title",
             *   "customer.first_name",
             *   "customer.last_name"
             * ]
             */
            q_fields?: string[];
            /**
             * Field to group results by
             * example:
             * customer._title
             */
            group?: string;
            /**
             * Template for group title using variables
             * example:
             * {{customer[Primary].first_name}} {{customer[Primary].last_name}}
             */
            group_title?: string;
            /**
             * Number of groups to return
             */
            group_size?: number;
            /**
             * Sort order for groups
             * example:
             * desc
             */
            group_sort?: "asc" | "desc";
            /**
             * Composite aggregation key for group pagination
             */
            group_after_key?: {
                [name: string]: string | number;
            };
            /**
             * example:
             * _created_at:desc
             */
            sort?: string;
            from?: number;
            /**
             * Max search size is 1000 with higher values defaulting to 1000
             */
            size?: number;
            /**
             * When true, enables entity hydration to resolve nested $relation & $relation_ref references in-place.
             */
            hydrate?: boolean;
            /**
             * List of entity fields to include in search results
             * example:
             * [
             *   "_id",
             *   "_title"
             * ]
             */
            fields?: string[];
            /**
             * Template strings to parse and return as synthetic fields
             * example:
             * {
             *   "content_top_name": "Customer #{{contract.customer_number}}",
             *   "main_content_name": "{{contract.contract_name}} ({{contract.contract_number}})",
             *   "content_bottom_name": "{{custom_contract_delivery_address}}"
             * }
             */
            templates?: {
                [name: string]: string;
            };
            /**
             * Additional filters to apply to the search query
             * example:
             * [
             *   {
             *     "term": {
             *       "status.keyword": "active"
             *     }
             *   },
             *   {
             *     "range": {
             *       "_created_at": {
             *         "gte": "2023-01-01"
             *       }
             *     }
             *   }
             * ]
             */
            filters?: {
                [key: string]: any;
            }[];
            /**
             * Context-based filters for entity relations.
             * example:
             * [
             *   {
             *     "portal_user": true
             *   },
             *   {
             *     "contact": true
             *   },
             *   {
             *     "contract": "3ec28ab5-8598-41ef-9486-b57fca1d5e2a"
             *   }
             * ]
             */
            filters_context?: {
                [name: string]: boolean | string;
            }[];
            /**
             * Filters from these targets will be applied to the search query.
             * example:
             * [
             *   "3ec28ab5-8598-41ef-9486-b57fca1d5e2a"
             * ]
             */
            targets?: string /* uuid */[];
            /**
             * Optional enrichment data to side-load alongside results under the `includes` response key.
             * example:
             * [
             *   "active_workflow"
             * ]
             */
            include?: ("active_workflow")[];
            /**
             * Elasticsearch highlight configuration passed through to the Entity API. When provided, matching results include a `highlight` object with field names as keys and arrays of highlighted fragments as values.
             */
            highlight?: {
                [key: string]: any;
            };
        }
        /**
         * URL-friendly identifier for the entity schema
         * example:
         * contact
         */
        export type EntitySlug = string;
        /**
         * Per-slug search configuration with scoped targets and templates
         */
        export interface EntitySlugConfig {
            slug: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
            targets?: string /* uuid */[];
            templates?: {
                [name: string]: string;
            };
        }
        export interface EntityTemplates {
            /**
             * Resolved template strings corresponding to the templates parameter. Supports both string values and nested objects of strings.
             * example:
             * {
             *   "content_top_name": "Customer #123456",
             *   "main_content_name": "Orange Flexible A2 (654321)",
             *   "content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
             *   "nested_content": {
             *     "title": "Orange Flexible A2",
             *     "subtitle": "654321"
             *   }
             * }
             */
            templates_output?: {
                [name: string]: string | {
                    [name: string]: string;
                };
            };
        }
        export interface EntityWidget {
            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;
            };
            schema?: string;
        }
        export interface ErrorResp {
            /**
             * Error message
             */
            message?: string;
        }
        /**
         * example:
         * {
         *   "exists": true,
         *   "active": false
         * }
         */
        export interface Exists {
            /**
             * Indicate whether the item exists
             */
            exists: boolean;
            /**
             * Indicate whether the item is active
             */
            active?: boolean;
        }
        export interface Extension {
            /**
             * Identifier of the extension. Should not change between updates.
             */
            id: string;
            /**
             * Identifier of the app from which the extension was installed. Should not change between updates.
             */
            app_id?: string;
            /**
             * Name of the app from which the extension was installed. Should not change between updates.
             */
            app_name?: string;
            /**
             * Name of the extension.
             */
            name: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
            /**
             * Name of the extension.
             */
            description?: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
            /**
             * Version of the extension.
             */
            version?: string;
            /**
             * Options available to the extension configurable by the portal administrator.
             */
            options?: {
                /**
                 * Identifier of the option. Should not change between updates.
                 */
                id: string;
                /**
                 * Name of the option.
                 */
                name: {
                    [name: string]: string;
                    /**
                     * Name of the option in English.
                     */
                    en: string;
                };
                /**
                 * Type of the option.
                 */
                type: "text" | "secret";
                /**
                 * Description of the option.
                 */
                description?: {
                    [name: string]: string;
                    /**
                     * Description of the option in English.
                     */
                    en: string;
                };
                /**
                 * Default value of the option.
                 */
                default?: string;
                /**
                 * Indicate whether the option is required.
                 */
                required?: boolean;
            }[];
            /**
             * External links added to the portal.
             */
            links?: {
                /**
                 * Identifier of the link. Should not change between updates.
                 */
                id: string;
                /**
                 * Name of the extension.
                 */
                name: {
                    [name: string]: string;
                    /**
                     * Name of the extension in English.
                     */
                    en: string;
                };
                /**
                 * Name of the extension.
                 */
                description?: {
                    [name: string]: string;
                    /**
                     * Name of the extension in English.
                     */
                    en: string;
                };
                type: "seamless";
                /**
                 * Controls whether the link should be shown. Supports variable interpolation.
                 * example:
                 * {{Contact.customer_number | is_not_empty}}
                 */
                condition?: string;
                auth?: ExtensionAuthBlock;
                redirect: {
                    /**
                     * URL to redirect to. Supports variable interpolation.
                     */
                    url?: string;
                    /**
                     * Parameters to append to the URL. Supports variable interpolation.
                     */
                    params?: {
                        [name: string]: string;
                    };
                };
            }[];
            /**
             * Hooks that influence the behavior of Portal.
             */
            hooks?: ({
                /**
                 * Identifier of the hook. Should not change between updates.
                 */
                id?: string;
            } & (/**
             * Hook that replaces the built-in registration identifiers check. This hook makes a POST call whenever a user is trying to register to find the corresponding contact. The expected response to the call is:
             *   - 200 with contact id if exactly one contact is found
             *   - 404 if no contact is found or more than contact is found
             *
             */
            ExtensionHookRegistrationIdentifiersCheck | /**
             * Hook that replaces the built-in Contract identification for self-assignment. This hook involves an HTTP request whenever a user is trying to self-assign Contract(s).
             * The expected response http status code to the call is:
             *   - 200 if found
             *   - 404 if not found
             *
             * The following assignment modes are supported:
             *   - `contracts`: We expect the response to contain Contract ids (customizable using `result` property).
             *   - `contact_to_contracts`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact as a Customer to the Contracts and (optionally) update the Contact attribute specified by `contact_relation_attribute` to add the matched Contact.
             *   - `contact_to_portal_user`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact to the Portal User. Portal User will be able to see all data including Contracts transitively.
             *
             * Defaults to `contact_to_contracts` for backwards compatibility. We recommend using `contact_to_portal_user` as it does not influence the data model of business entities.
             *
             */
            ExtensionHookContractIdentification | /**
             * Hook that will allow using the specified source as data for price visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
             *   - 200 with the time series data
             *
             */
            ExtensionHookPriceDataRetrieval | /**
             * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
             *   - 200 with the time series data
             *
             */
            ExtensionHookConsumptionDataRetrieval | /**
             * Generic data export hook. When configured on a visualization block, the portal delegates the export action (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the file itself. Can be used by any block that supports export — consumption charts, dynamic tariff charts, etc. The expected response to the call is:
             *   - 200 with a JSON body describing the exported file (download_url, optional filename, content_type, expires_at)
             *
             */
            ExtensionHookDataExport | /**
             * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
             *   - 200 with the time series data
             *
             */
            ExtensionHookCostDataRetrieval | /**
             * Hook that checks the plausibility of meter readings before they are saved. This hook makes a POST call whenever a user is trying to save a meter reading. The expected response to the call is:
             *   - 200:
             *     If meter reading is plausible, the response should contain:
             *       - valid: true
             *     If meter reading is not plausible, the response should contain:
             *       - valid: false
             *
             */
            ExtensionHookMeterReadingPlausibilityCheck | /**
             * Hook that returns runtime metadata describing how a visualization should be rendered for a given portal context. Invoked by the portal before fetching data, with the same context the data hook receives.
             *
             */
            ExtensionHookVisualizationMetadata))[];
        }
        export interface ExtensionAuthBlock {
            /**
             * HTTP method to use for authentication
             */
            method?: string;
            /**
             * URL to use for authentication. Supports variable interpolation.
             */
            url: string;
            /**
             * Parameters to append to the URL. Supports variable interpolation.
             */
            params?: {
                [name: string]: string;
            };
            /**
             * Headers to use for authentication. Supports variable interpolation.
             */
            headers?: {
                [name: string]: string;
            };
            /**
             * JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.
             */
            body?: {
                [name: string]: string;
            };
            cache?: {
                /**
                 * Key to use to identify the auth response. Supports interpolation.
                 * example:
                 * {{Options.api_key}}
                 */
                key: string;
                /**
                 * Time to live in seconds for the cache. Supports interpolation.
                 * example:
                 * {{AuthResponse.data.expires_in}}
                 */
                ttl: string;
            };
        }
        export interface ExtensionConfig {
            /**
             * Name of the extension
             */
            id: string;
            /**
             * Status of the extension
             */
            status: "installed" | "enabled";
            /**
             * Extension option values.
             */
            options?: {
                [name: string]: string;
            };
        }
        export interface ExtensionHook {
            /**
             * Identifier of the hook. Should not change between updates.
             */
            id?: string;
        }
        /**
         * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
         *   - 200 with the time series data
         *
         */
        export interface ExtensionHookConsumptionDataRetrieval {
            type: "consumptionDataRetrieval";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers?: {
                    [name: string]: string;
                };
                /**
                 * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
                 */
                body?: {
                    [name: string]: string;
                };
            };
            resolved?: {
                /**
                 * Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level.
                 */
                dataPath?: string;
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Hook that replaces the built-in Contract identification for self-assignment. This hook involves an HTTP request whenever a user is trying to self-assign Contract(s).
         * The expected response http status code to the call is:
         *   - 200 if found
         *   - 404 if not found
         *
         * The following assignment modes are supported:
         *   - `contracts`: We expect the response to contain Contract ids (customizable using `result` property).
         *   - `contact_to_contracts`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact as a Customer to the Contracts and (optionally) update the Contact attribute specified by `contact_relation_attribute` to add the matched Contact.
         *   - `contact_to_portal_user`: We expect the response to contain a Contact id (customizable using `result` property) and we will assign the Contact to the Portal User. Portal User will be able to see all data including Contracts transitively.
         *
         * Defaults to `contact_to_contracts` for backwards compatibility. We recommend using `contact_to_portal_user` as it does not influence the data model of business entities.
         *
         */
        export interface ExtensionHookContractIdentification {
            type: "contractIdentification";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers: {
                    [name: string]: string;
                };
                /**
                 * Optional JSON body to use for the call. Defaults to object with all configured identifiers grouped by entity, e.g. `{"contract": {"contract_name": "Name"}}`. Supports variable interpolation.
                 */
                body?: {
                    [key: string]: any;
                };
                /**
                 * Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation.
                 */
                result?: string;
            };
            /**
             * Mode of contract assignment. See hook description for mode details.
             */
            assignment_mode?: "contracts" | "contact_to_contracts" | "contact_to_portal_user";
            /**
             * Name of the Contact attribute to update with the matched Contact ID when using `contact_to_contracts` mode. Must be a Contact relation attribute supporting multiple entities.
             * example:
             * represents_contact
             */
            contact_relation_attribute?: string;
            /**
             * Explanation of the hook.
             */
            explanation?: {
                [name: string]: string;
                /**
                 * Explanation of the functionality shown to the end user.
                 * example:
                 * This process will give you access to the matching Contracts.
                 */
                en: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Hook that will allow using the specified source as data for consumption visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
         *   - 200 with the time series data
         *
         */
        export interface ExtensionHookCostDataRetrieval {
            type: "costDataRetrieval";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers?: {
                    [name: string]: string;
                };
                /**
                 * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
                 */
                body?: {
                    [name: string]: string;
                };
            };
            resolved?: {
                /**
                 * Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level.
                 */
                dataPath?: string;
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Generic data export hook. When configured on a visualization block, the portal delegates the export action (e.g. CSV/Excel/PDF download) to the configured external source instead of generating the file itself. Can be used by any block that supports export — consumption charts, dynamic tariff charts, etc. The expected response to the call is:
         *   - 200 with a JSON body describing the exported file (download_url, optional filename, content_type, expires_at)
         *
         */
        export interface ExtensionHookDataExport {
            type: "dataExport";
            /**
             * Optional list of portal block types this hook supports. If omitted,
             * the hook is usable on any export-capable block. Allowed values match
             * the block type identifiers used by the portal builder
             * (e.g. `consumption_visualization`, `dynamic_tariff`).
             *
             */
            block_types?: string[];
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers?: {
                    [name: string]: string;
                };
                /**
                 * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
                 */
                body?: {
                    [name: string]: string;
                };
            };
            resolved?: {
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Hook that checks the plausibility of meter readings before they are saved. This hook makes a POST call whenever a user is trying to save a meter reading. The expected response to the call is:
         *   - 200:
         *     If meter reading is plausible, the response should contain:
         *       - valid: true
         *     If meter reading is not plausible, the response should contain:
         *       - valid: false
         *
         */
        export interface ExtensionHookMeterReadingPlausibilityCheck {
            type: "meterReadingPlausibilityCheck";
            /**
             * Mode for plausibility check:
             * - "check": Validates meter reading and returns valid: boolean (used during submission)
             * - "range": Returns min/max allowed values for each counter for validation before submission
             *
             */
            plausibility_mode?: "check" | "range";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * JSON body to use for the call. Supports variable interpolation.
                 */
                body: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers: {
                    [name: string]: string;
                };
            };
            /**
             * Response to the call
             */
            resolved: {
                /**
                 * Optional path to an array in the response. If specified and the path points to an array,
                 * the hook will map over each item using 'Item' variable for interpolation.
                 * Relevant only if plausibility_mode is "range".
                 *
                 * example:
                 * data.results
                 */
                dataPath?: string;
                /**
                 * Counter identifier(s) used to match against the meter's counters.
                 * Can be a string (counter ID) or an object with counter properties.
                 * The backend resolves this to meter_counter_id in the final response.
                 * Relevant only if plausibility_mode is "range".
                 *
                 */
                counter_identifiers?: /**
                 * Counter identifier(s) used to match against the meter's counters.
                 * Can be a string (counter ID) or an object with counter properties.
                 * The backend resolves this to meter_counter_id in the final response.
                 * Relevant only if plausibility_mode is "range".
                 *
                 */
                string | {
                    [name: string]: string;
                };
                /**
                 * Indicate whether the meter reading is plausible. Relevant only if plausibility_mode is "check".
                 * example:
                 * {{CallResponse.data.valid}}
                 */
                valid?: string;
                /**
                 * Upper allowed limit of the meter reading
                 * example:
                 * {{CallResponse.data.upper_limit}}
                 */
                upper_limit?: string;
                /**
                 * Lower allowed limit of the meter reading
                 * example:
                 * {{CallResponse.data.lower_limit}}
                 */
                lower_limit?: string;
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Hook that will allow using the specified source as data for price visualizations. This hook is triggered to fetch the data. Format of the request and response has to follow the following specification: TBD. The expected response to the call is:
         *   - 200 with the time series data
         *
         */
        export interface ExtensionHookPriceDataRetrieval {
            type: "priceDataRetrieval";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers?: {
                    [name: string]: string;
                };
                /**
                 * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
                 */
                body?: {
                    [name: string]: string;
                };
            };
            resolved?: {
                /**
                 * Optional path to the data (array) in the response. If omitted, the data is assumed to be on the top level.
                 */
                dataPath?: string;
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        /**
         * Hook that replaces the built-in registration identifiers check. This hook makes a POST call whenever a user is trying to register to find the corresponding contact. The expected response to the call is:
         *   - 200 with contact id if exactly one contact is found
         *   - 404 if no contact is found or more than contact is found
         *
         */
        export interface ExtensionHookRegistrationIdentifiersCheck {
            type: "registrationIdentifiersCheck";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers: {
                    [name: string]: string;
                };
                /**
                 * Optional JSON body to use for the call. Defaults to object with all configured identifiers grouped by entity, e.g. `{"contract": {"contract_name": "Name"}}`. Supports variable interpolation.
                 */
                body?: {
                    [key: string]: any;
                };
                /**
                 * Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation.
                 */
                result?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        export type ExtensionHookSelection = {
            /**
             * The ID of the selected app.
             */
            app_id: string;
            /**
             * The ID of the selected extension.
             */
            extension_id: string;
            /**
             * The ID of the selected hook.
             */
            hook_id: string;
        } | null;
        /**
         * Hook that returns runtime metadata describing how a visualization should be rendered for a given portal context. Invoked by the portal before fetching data, with the same context the data hook receives.
         *
         */
        export interface ExtensionHookVisualizationMetadata {
            type: "visualizationMetadata";
            auth?: ExtensionAuthBlock;
            call: {
                /**
                 * HTTP method to use for the call
                 */
                method?: string;
                /**
                 * URL to call. Supports variable interpolation.
                 */
                url: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
                /**
                 * Headers to use. Supports variable interpolation.
                 */
                headers?: {
                    [name: string]: string;
                };
                /**
                 * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
                 */
                body?: {
                    [name: string]: string;
                };
            };
            resolved?: {
                /**
                 * Optional path to the metadata object in the response. If omitted, the metadata is assumed to be on the top level.
                 */
                dataPath?: string;
                /**
                 * Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).
                 * If specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.
                 *
                 * example:
                 * error.message
                 */
                errorMessagePath?: string;
            };
            /**
             * Deprecated. Prefer `secure_proxy` instead.
             * If true, requests are made from a set of static IP addresses and only allow connections to a set of allowed IP addresses. Get in touch with us to add your IP addresses.
             *
             */
            use_static_ips?: boolean;
            secure_proxy?: /* Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips. */ SecureProxyConfig;
        }
        export interface ExtensionSeamlessLink {
            /**
             * Identifier of the link. Should not change between updates.
             */
            id: string;
            /**
             * Name of the extension.
             */
            name: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
            /**
             * Name of the extension.
             */
            description?: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
            type: "seamless";
            /**
             * Controls whether the link should be shown. Supports variable interpolation.
             * example:
             * {{Contact.customer_number | is_not_empty}}
             */
            condition?: string;
            auth?: ExtensionAuthBlock;
            redirect: {
                /**
                 * URL to redirect to. Supports variable interpolation.
                 */
                url?: string;
                /**
                 * Parameters to append to the URL. Supports variable interpolation.
                 */
                params?: {
                    [name: string]: string;
                };
            };
        }
        export interface ExternalLink {
            /**
             * Unique identifier for the external link
             */
            id: string;
            label: {
                [name: string]: string;
            };
            type: "link" | "journey" | "seamless";
            /**
             * The URL of the external link
             */
            link: string;
            rules?: {
                [key: string]: any;
            }[];
            /**
             * Attribute associated with the link
             */
            attribute?: string;
            /**
             * Entity associated with the link
             */
            entity?: string;
            /**
             * Attribute value for the link
             */
            attribute_value?: string;
            /**
             * Configuration of the icon for the external link
             */
            icon?: {
                /**
                 * The name of the icon
                 */
                name?: string;
                /**
                 * The color of the icon
                 */
                color?: string;
                /**
                 * Size of the icon in pixels
                 */
                size?: number;
            };
            /**
             * Seamless link identifier in a form of [extensionId, linkId]
             */
            extension_link_id?: string[];
        }
        export type ExtraSchemaAttributes = {
            /**
             * Attribute name
             */
            name: string;
            /**
             * Attribute label
             */
            label: string;
            /**
             * Attribute group
             */
            group: string;
        }[];
        export interface FailedRuleErrorResp {
            /**
             * Error message
             */
            message?: string;
            /**
             * Failed validation rule
             */
            failed_rule?: {
                [key: string]: any;
            };
        }
        /**
         * The file entity
         */
        export interface File {
            [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;
            }[];
            _schema: "file";
        }
        /**
         * The file entity
         */
        export interface FileItem {
            [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;
            }[];
            _schema: "file";
            /**
             * example:
             * document.pdf
             */
            filename?: string;
            access_control?: "private" | "public-read";
            /**
             * The date used for sorting the file
             * example:
             * 2021-02-09T12:41:43.662Z
             */
            file_date?: string; // date-time
            /**
             * Direct URL for file (public only if file access control is public-read)
             * example:
             * https://epilot-files-prod.s3.eu-central-1.amazonaws.com/123/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf
             */
            public_url?: string; // url
            /**
             * Human readable type for file
             */
            type?: "document" | "document_template" | "text" | "image" | "video" | "audio" | "spreadsheet" | "presentation" | "font" | "archive" | "application" | "unknown";
            /**
             * MIME type of the file
             * example:
             * application/pdf
             */
            mime_type?: string;
            _relations?: {
                entity_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */;
                _schema?: /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug;
                /**
                 * The title of the parent entity
                 * example:
                 * Opportunity ABC
                 */
                _title?: string;
            }[];
            /**
             * Indicate whether the user has not seen/downloaded the file before
             */
            is_new?: boolean;
        }
        export interface Grant {
            /**
             * Action for granting permission
             * example:
             * entity-read
             */
            action: string;
            /**
             * Resource for granting permission
             * example:
             * entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947
             */
            resource?: string;
            /**
             * Effect of the permission
             */
            effect?: "allow" | "deny";
        }
        export interface IdentifierAttribute {
            /**
             * Label attribute
             */
            label?: string;
            /**
             * Name of the attribute
             */
            name?: string;
            /**
             * Type of the secondary attribute
             */
            type?: string;
        }
        /**
         * An entity that describes an installment billing event.
         */
        export interface InstallmentEvent {
            [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;
                }[];
            };
            /**
             * Type of the billing event.
             * example:
             * installment
             */
            type: "installment";
            /**
             * Date on which the installment is due.
             */
            due_date: string; // date
            /**
             * Date on which the installment is paid by the customer.
             */
            paid_date?: string; // date
        }
        export interface JourneyActions {
            journey_id?: string | null;
            action_label?: ActionLabel;
            slug?: string | null;
            rules?: Rule[] | null;
        }
        export interface JuiceSettings {
            /**
             * Whether the org is in dummy mode
             */
            is_dummy?: boolean;
            /**
             * Whether the org is in canary mode
             */
            is_canary?: boolean;
            /**
             * The URL to redirect to
             * example:
             * https://example.com
             */
            redirect_to?: string;
        }
        /**
         * The meter entity
         */
        export interface Meter {
            [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;
            }[];
            _schema: "meter";
        }
        export interface MeterChartWidget {
            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;
            };
            schema?: string;
        }
        export interface MeterReading {
            /**
             * The reading value of the meter
             * example:
             * 240
             */
            value: number;
            read_by?: /**
             * The person who recorded the reading
             * example:
             * John Doe
             */
            ReadBy;
            reason?: /**
             * The reason for recording the reading
             * If no reason is specified or left empty, the Epilot UI will show 'Regular' as the default display text
             *
             * example:
             * Storing the feed-in record
             */
            Reason;
            /**
             * The ID of the associated meter
             */
            meter_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * The ID of the associated meter counter
             */
            counter_id?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * The direction of the reading (feed-in or feed-out)
             */
            direction?: Direction;
            /**
             * If the value is not provided, the system will be set with the time the request is processed.
             * example:
             * 2022-10-10
             */
            timestamp?: string;
            /**
             * The source of the reading
             */
            source: Source;
            /**
             * The status of the reading
             */
            status?: ReadingStatus;
            /**
             * The external ID of the reading
             */
            external_id?: string;
            /**
             * A remark or comment for the reading
             * example:
             * Customer reported unusual consumption
             */
            remark?: string | null;
            /**
             * Additional metadata for the reading
             * example:
             * {
             *   "registration_id": "1234567890",
             *   "business_unit": "ABC"
             * }
             */
            metadata?: {
                [name: string]: string;
            };
        }
        export interface MeterReadingPhoto {
            /**
             * example:
             * Reading 10.01.2025.jpg
             */
            filename: string;
            /**
             * example:
             * image/jpeg
             */
            mime_type: string;
            /**
             * Base64 encoded image
             * example:
             * data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMWFhUXGBgYGBgYGBgYGBgYGBgYFxgYFxgYHSggGBolHRgXITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGhAQGy0lHyUt
             */
            contents: string;
            /**
             * The ID of the associated Meter
             */
            meter_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
        }
        export interface MeterReadingPhotoData {
            /**
             * example:
             * Reading 10.01.2025.jpg
             */
            filename: string;
            s3ref: {
                /**
                 * S3 bucket name
                 * example:
                 * meter-readings
                 */
                bucket: string;
                /**
                 * S3 key
                 * example:
                 * uuid/reading-10.01.2025.jpg
                 */
                key: string;
            };
            /**
             * Recognized meter reading.
             * example:
             * 000123.45
             */
            reading?: string;
            /**
             * Recognized sector of the meter.
             * example:
             * water
             */
            sector?: string;
            /**
             * Recognized list of (potential) meter numbers.
             * example:
             * [
             *   "00123456"
             * ]
             */
            meter_numbers?: string[];
            /**
             * ID of the created file entity for the uploaded photo.
             * example:
             * abc123def456
             */
            file_id?: string;
        }
        export interface MeterReadingWidget {
            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;
            };
            schema?: string;
        }
        /**
         * Mobile OIDC configuration. Values are resolved at SSO invocation time, so the
         * fields below may reference org env vars via mustache-like templates, e.g.
         * `{{ env.MOBILE_CLIENT_SECRET }}`.
         *
         */
        export interface MoblieOIDCConfig {
            /**
             * Client ID for the mobile app. Supports env var interpolation.
             * example:
             * 123456
             */
            client_id?: string;
            /**
             * Client Secret for the mobile app. Supports env var interpolation (incl. secrets),
             * e.g. `{{ env.MOBILE_CLIENT_SECRET }}`.
             *
             * example:
             * 123456
             */
            client_secret?: string;
        }
        /**
         * OIDC provider configuration. Values are resolved at SSO invocation time
         * (login / callback), so the fields below may reference org env vars via
         * mustache-like templates, e.g. `{{ env.MY_PROVIDER_CLIENT_SECRET }}`.
         *
         * Fields used to render the SSO buttons up-front (`ProviderConfig.slug`,
         * `ProviderConfig.display_name`) are NOT interpolated and must be literal.
         *
         */
        export interface OIDCProviderConfig {
            type?: "authorization_code" | "implicit";
            /**
             * Issuing Authority URL. Supports env var interpolation, e.g. `{{ env.MY_ISSUER }}`.
             * example:
             * https://login.microsoftonline.com/33d4f3e5-3df2-421e-b92e-a63cfa680a88/v2.0
             */
            oidc_issuer: string;
            /**
             * Redirect URI for the OIDC flow. Supports env var interpolation.
             * example:
             * https://customer-portal.com/login
             */
            redirect_uri?: string;
            /**
             * Supports env var interpolation, e.g. `{{ env.MY_CLIENT_ID }}`.
             * example:
             * ab81daf8-8b1f-42d6-94ca-c51621054c75
             */
            client_id: string;
            /**
             * Client Secret. Supports env var interpolation (incl. secrets), e.g.
             * `{{ env.MY_CLIENT_SECRET }}`. Prefer storing the actual secret as an org
             * env var and referencing it here.
             *
             * example:
             * 7BIUnn~6shh.7fNtXb..3k1Mp3s6k6WK3B
             */
            client_secret?: string;
            /**
             * Whether the client secret is present
             * example:
             * true
             */
            has_client_secret?: boolean;
            /**
             * Space-separated list of OAuth 2.0 scopes to request from OpenID Connect
             * example:
             * openid email
             */
            scope: string;
            metadata?: OIDCProviderMetadata;
            prompt?: "login" | "select_account" | "consent";
        }
        export interface OIDCProviderMetadata {
            /**
             * Response modes the provider accepts (e.g. `form_post` for Apple)
             */
            response_modes_supported?: ("form_post" | "fragment" | "query")[];
            /**
             * URL of the authorization endpoint
             * example:
             * https://www.facebook.com/v12.0/dialog/oauth
             */
            authorization_endpoint?: string;
            /**
             * URL of the token endpoint
             * example:
             * https://graph.facebook.com/v12.0/oauth/access_token
             */
            token_endpoint?: string;
            /**
             * URL of the userinfo endpoint
             * example:
             * https://graph.facebook.com/me
             */
            userinfo_endpoint?: string;
            /**
             * URL of the logout/end session endpoint
             * example:
             * https://login.microsoftonline.com/common/oauth2/v2.0/logout
             */
            logout_uri?: string;
            /**
             * URL to redirect to after logout completes
             * example:
             * https://customer-portal.com/login
             */
            logout_redirect_uri?: string;
            /**
             * When true, skip SSO logout redirect during "login as" flow. Use this for providers that cannot redirect back after logout and would break log in as.
             */
            skip_login_as_logout?: boolean;
            /**
             * URL of the mobile redirect URI
             * example:
             * msauth.io.epilot.ecp://auth
             */
            mobile_redirect_uri?: string;
            /**
             * The username for the test auth, only used for testing on auth code flow.
             * Supports env var interpolation, e.g. `{{ env.MY_TEST_AUTH_USERNAME }}`.
             *
             * example:
             * test@epilot.io
             */
            test_auth_username?: string;
            /**
             * The password for the test auth, only used for testing on auth code flow.
             * Supports env var interpolation (incl. secrets), e.g. `{{ env.MY_TEST_AUTH_PASSWORD }}`.
             *
             */
            test_auth_password?: string;
        }
        /**
         * The opportunity entity
         */
        export interface Opportunity {
            [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;
            }[];
            _schema: "opportunity";
        }
        /**
         * The order entity
         */
        export interface Order {
            [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;
            }[];
            _schema: "order";
        }
        export interface OrganizationSettings {
            automation_entity_mapping?: {
                /**
                 * Enable/Disable automation entity mapping
                 */
                enabled?: boolean;
            };
            automation_preview?: {
                /**
                 * Enable/Disable automation preview
                 */
                enabled?: boolean;
            };
            central_inbox_preview_setting?: {
                /**
                 * Enable/Disable central inbox preview setting
                 */
                enabled?: boolean;
            };
            contracts_preview_setting?: {
                /**
                 * Enable/Disable contracts preview setting
                 */
                enabled?: boolean;
            };
            disable_ivy?: {
                /**
                 * Enable/Disable Ivy
                 */
                enabled?: boolean;
            };
            double_opt_in?: {
                /**
                 * Enable/Disable double opt-in
                 */
                enabled?: boolean;
            };
            ecommerce_catalog_preview?: {
                /**
                 * Enable/Disable ecommerce catalog preview
                 */
                enabled?: boolean;
            };
            ecommerce_opportunities_preview?: {
                /**
                 * Enable/Disable ecommerce opportunities preview
                 */
                enabled?: boolean;
            };
            ecommerce_preview?: {
                /**
                 * Enable/Disable ecommerce preview
                 */
                enabled?: boolean;
            };
            end_customer_portal?: {
                /**
                 * Enable/Disable end customer portal
                 */
                enabled?: boolean;
            };
            installer_portal?: {
                /**
                 * Enable/Disable installer portal
                 */
                enabled?: boolean;
            };
            entity_schema_builder?: {
                /**
                 * Enable/Disable entity schema builder
                 */
                enabled?: boolean;
            };
            logic_editor_preview?: {
                /**
                 * Enable/Disable logic editor preview
                 */
                enabled?: boolean;
            };
            new_navigation?: {
                /**
                 * Enable/Disable new navigation
                 */
                enabled?: boolean;
            };
            partnering?: {
                /**
                 * Enable/Disable partnering
                 */
                enabled?: boolean;
            };
            "product-availability"?: {
                /**
                 * Enable/Disable product availability
                 */
                enabled?: boolean;
            };
            sso?: {
                /**
                 * Enable/Disable single sign-on (SSO)
                 */
                enabled?: boolean;
            };
            submission_preview?: {
                /**
                 * Enable/Disable submission preview
                 */
                enabled?: boolean;
            };
            user_roles_preview?: {
                /**
                 * Enable/Disable user roles preview
                 */
                enabled?: boolean;
            };
        }
        /**
         * Origin of the portal
         */
        export type Origin = string;
        export interface Page {
            [name: string]: any;
            /**
             * The slug of the page
             * example:
             * dashboard
             */
            slug: string;
            /**
             * The path of the page
             * example:
             * /dashboard
             */
            path?: string;
            schema?: string[];
            /**
             * The conditions that need to be met for the page to be shown
             */
            visibility?: {
                [name: string]: any;
                /**
                 * Page is fully hidden from portal users
                 */
                is_hidden?: boolean;
                /**
                 * Page is hidden in the mobile app
                 */
                hidden_in_app?: boolean;
                /**
                 * Schedule visibility start date. If only start_date is set, page is visible from this date onwards.
                 */
                start_date?: string; // date-time
                /**
                 * Schedule visibility end date. If only end_date is set, page is visible until this date.
                 */
                end_date?: string; // date-time
                /**
                 * Target IDs that must match for the page 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 page
                 */
                hidden_for_targets?: string[];
                /**
                 * Operator for hidden_for_targets matching
                 */
                hidden_for_operator?: "and" | "or";
            };
            /**
             * The content of the page
             */
            content?: {
                [name: string]: any;
            };
            /**
             * The design of the page
             */
            design?: {
                [name: string]: any;
            };
            blocks?: {
                [name: string]: Block;
            };
            /**
             * The order of the block
             * example:
             * 1
             */
            order: number;
            /**
             * Whether the page is a system page
             * example:
             * false
             */
            is_system?: boolean;
            /**
             * Whether the page is a detail page
             * example:
             * false
             */
            is_detail?: boolean;
            /**
             * The schema of the detail page
             * example:
             * contact
             */
            detail_schema?: string;
            /**
             * Whether the detail page should appear in the main navigation
             * example:
             * false
             */
            show_in_navigation?: boolean;
            /**
             * Whether the page is public
             * example:
             * true
             */
            is_public?: boolean;
            /**
             * The id of the parent page
             * example:
             * c495fef9-eeca-4019-a989-8390dcd9825b
             */
            parentId?: string | null;
            /**
             * Whether the page is the entry route
             * example:
             * false
             */
            is_entry_route?: boolean;
            /**
             * Send the flag as true to delete the page
             * example:
             * false
             */
            is_deleted?: boolean;
            /**
             * The id of the page
             * example:
             * c495fef9-eeca-4019-a989-8390dcd9825b
             */
            id?: string; // uuid
            /**
             * Last modified timestamp of the Page
             * example:
             * 2021-02-09T12:41:43.662Z
             */
            last_modified_at?: string; // date-time
            /**
             * The id of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            portal_id?: string;
            /**
             * Slugs that previously belonged to this page. The portal redirects requests for these slugs to the current slug. Managed by the server: when a page's slug changes, the old slug is appended here, and when another page claims one of these slugs it is removed from this list.
             *
             * example:
             * [
             *   "old-dashboard",
             *   "home"
             * ]
             */
            past_routes?: string[];
        }
        export interface PageRequest {
            [name: string]: any;
            /**
             * The slug of the page
             * example:
             * dashboard
             */
            slug: string;
            /**
             * The path of the page
             * example:
             * /dashboard
             */
            path?: string;
            schema?: string[];
            /**
             * The conditions that need to be met for the page to be shown
             */
            visibility?: {
                [name: string]: any;
                /**
                 * Page is fully hidden from portal users
                 */
                is_hidden?: boolean;
                /**
                 * Page is hidden in the mobile app
                 */
                hidden_in_app?: boolean;
                /**
                 * Schedule visibility start date. If only start_date is set, page is visible from this date onwards.
                 */
                start_date?: string; // date-time
                /**
                 * Schedule visibility end date. If only end_date is set, page is visible until this date.
                 */
                end_date?: string; // date-time
                /**
                 * Target IDs that must match for the page 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 page
                 */
                hidden_for_targets?: string[];
                /**
                 * Operator for hidden_for_targets matching
                 */
                hidden_for_operator?: "and" | "or";
            };
            /**
             * The content of the page
             */
            content?: {
                [name: string]: any;
            };
            /**
             * The design of the page
             */
            design?: {
                [name: string]: any;
            };
            blocks?: {
                [name: string]: Block;
            };
            /**
             * The order of the block
             * example:
             * 1
             */
            order: number;
            /**
             * Whether the page is a system page
             * example:
             * false
             */
            is_system?: boolean;
            /**
             * Whether the page is a detail page
             * example:
             * false
             */
            is_detail?: boolean;
            /**
             * The schema of the detail page
             * example:
             * contact
             */
            detail_schema?: string;
            /**
             * Whether the detail page should appear in the main navigation
             * example:
             * false
             */
            show_in_navigation?: boolean;
            /**
             * Whether the page is public
             * example:
             * true
             */
            is_public?: boolean;
            /**
             * The id of the parent page
             * example:
             * c495fef9-eeca-4019-a989-8390dcd9825b
             */
            parentId?: string | null;
            /**
             * Whether the page is the entry route
             * example:
             * false
             */
            is_entry_route?: boolean;
            /**
             * Send the flag as true to delete the page
             * example:
             * false
             */
            is_deleted?: boolean;
        }
        export interface PaymentWidget {
            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;
            };
        }
        export interface PortalConfig {
            /**
             * 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;
            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;
            };
            /**
             * ID of the organization
             * example:
             * 12345
             */
            id?: string;
            /**
             * ID of the organization
             * example:
             * 12345
             */
            organization_id?: string;
            /**
             * Organization settings
             */
            org_settings?: {
                /**
                 * Canary feature flag
                 */
                canary?: {
                    /**
                     * Enable/Disable the canary feature
                     */
                    enabled?: boolean;
                };
                /**
                 * Disable Advanced Usage Metrics
                 */
                notracking?: {
                    /**
                     * Disable browser-side scripts that track advanced usage metrics
                     */
                    enabled?: boolean;
                };
            };
            /**
             * Feature flags for the portal
             */
            feature_flags?: {
                [name: string]: boolean;
            };
            /**
             * Permissions granted to a portal user while accessing entities
             */
            grants?: Grant[];
            identity_providers?: ProviderPublicConfig[];
        }
        export interface PortalConfigV3 {
            /**
             * Journey actions allowed on an entity by a portal user
             */
            entity_actions?: {
                journey_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */;
                slug?: /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug;
                action_Label?: {
                    en?: string;
                    de?: string;
                };
            }[];
            /**
             * Configured Portal extensions
             */
            extensions?: ExtensionConfig[];
            /**
             * Configured Portal extensions hooks
             */
            extension_hooks?: {
                [name: string]: ExtensionHookSelection;
            };
            /**
             * Default 360 user to notify upon an internal notification
             */
            default_user_to_notify?: {
                /**
                 * Default admin users for pending user notification to notify
                 */
                onPendingUser?: AdminUser[];
            };
            /**
             * SSO identity providers for the portal. When sent on a portal save (PUT/POST),
             * the list is fully synced — incoming providers are upserted and any existing
             * providers not in the list are deleted. Omit the field to leave SSO
             * configuration unchanged; send an empty array to remove all providers.
             *
             * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
             * as sent. Customers are encouraged to reference an org env secret via
             * `{{ env.VAR }}` rather than embed raw values.
             *
             */
            identity_providers?: ProviderPublicConfig[];
            /**
             * 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;
            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;
            /**
             * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id.
             */
            global_blocks?: {
                [name: string]: Block;
            };
            /**
             * ID of the organization
             * example:
             * 12345
             */
            organization_id?: string;
            /**
             * Organization settings
             */
            org_settings?: {
                /**
                 * Canary feature flag
                 */
                canary?: {
                    /**
                     * Enable/Disable the canary feature
                     */
                    enabled?: boolean;
                };
                /**
                 * Disable Advanced Usage Metrics
                 */
                notracking?: {
                    /**
                     * Disable browser-side scripts that track advanced usage metrics
                     */
                    enabled?: boolean;
                };
            };
            /**
             * Feature flags for the portal
             */
            feature_flags?: {
                [name: string]: boolean;
            };
            /**
             * Permissions granted to a portal user while accessing entities
             */
            grants?: Grant[];
            pages?: Page[];
        }
        /**
         * ID of the portal
         * example:
         * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
         */
        export type PortalId = string;
        /**
         * The portal user entity
         */
        export interface PortalUser {
            [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;
            }[];
            _schema: "portal_user";
        }
        export type PortalUserRegistrationStatus = "Registration Pending" | "Confirmation Email Sent" | "Registered" | "Email Update In Progress";
        export type PortalWidget = EntityWidget | ContentWidget | ActionWidget | TeaserWidget | DocumentWidget | PaymentWidget | MeterReadingWidget | MeterChartWidget | CampaignWidget | ProductRecommendationsWidget;
        /**
         * The product entity
         */
        export interface Product {
            [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;
            }[];
            _schema: "product";
        }
        export interface ProductRecommendationsWidget {
            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;
        }
        /**
         * SSO identity provider configuration.
         *
         * Env var interpolation: only string fields under `oidc_config` and
         * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
         * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
         * get resolved at runtime against the organization's environment.
         *
         * The following fields are used as literal values and MUST NOT contain
         * template syntax: `slug`, `display_name`, `provider_type`, all keys and
         * values under `attribute_mappings` (used as JSONPath-like accessors into
         * token claims), and all keys and values under `entity_matching`.
         *
         */
        export interface ProviderConfig {
            slug?: /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            ProviderSlug /* [0-9a-z-]+ */;
            display_name: /**
             * Human-readable display name for identity provider shown in login
             * example:
             * Office 365 Login
             */
            ProviderDisplayName;
            provider_type: "OIDC";
            attribute_mappings?: /* Dictionary of epilot user attributes to claims */ AttributeMappingConfig;
            entity_matching?: /* Configuration for matching existing entities during SSO login using token claims */ EntityMatchingConfig;
            oidc_config?: /**
             * OIDC provider configuration. Values are resolved at SSO invocation time
             * (login / callback), so the fields below may reference org env vars via
             * mustache-like templates, e.g. `{{ env.MY_PROVIDER_CLIENT_SECRET }}`.
             *
             * Fields used to render the SSO buttons up-front (`ProviderConfig.slug`,
             * `ProviderConfig.display_name`) are NOT interpolated and must be literal.
             *
             */
            OIDCProviderConfig;
            mobile_oidc_config?: /**
             * Mobile OIDC configuration. Values are resolved at SSO invocation time, so the
             * fields below may reference org env vars via mustache-like templates, e.g.
             * `{{ env.MOBILE_CLIENT_SECRET }}`.
             *
             */
            MoblieOIDCConfig;
        }
        /**
         * Human-readable display name for identity provider shown in login
         * example:
         * Office 365 Login
         */
        export type ProviderDisplayName = string;
        export interface ProviderPublicConfig {
            slug: /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            ProviderSlug /* [0-9a-z-]+ */;
            display_name: /**
             * Human-readable display name for identity provider shown in login
             * example:
             * Office 365 Login
             */
            ProviderDisplayName;
            oidc_config?: /**
             * OIDC provider configuration. Values are resolved at SSO invocation time
             * (login / callback), so the fields below may reference org env vars via
             * mustache-like templates, e.g. `{{ env.MY_PROVIDER_CLIENT_SECRET }}`.
             *
             * Fields used to render the SSO buttons up-front (`ProviderConfig.slug`,
             * `ProviderConfig.display_name`) are NOT interpolated and must be literal.
             *
             */
            OIDCProviderConfig;
            mobile_oidc_config?: /**
             * Mobile OIDC configuration. Values are resolved at SSO invocation time, so the
             * fields below may reference org env vars via mustache-like templates, e.g.
             * `{{ env.MOBILE_CLIENT_SECRET }}`.
             *
             */
            MoblieOIDCConfig;
        }
        /**
         * URL-friendly slug to use as organization-unique identifier for Provider
         * example:
         * office-365-login
         */
        export type ProviderSlug = string; // [0-9a-z-]+
        export interface PublicAppDetails {
            /**
             * Identifier of the app.
             */
            app_id?: string;
            name?: {
                [name: string]: string;
                /**
                 * Name of the app in English.
                 */
                en: string;
            };
        }
        export interface PublicContractIdentificationDetails {
            /**
             * Explanation of the hook.
             */
            explanation?: {
                [name: string]: string;
                /**
                 * Explanation of the functionality shown to the end user.
                 * example:
                 * This process will give you access to all Contracts kept
                 */
                en: string;
            };
        }
        export interface PublicDataRetrievalHookDetails {
            /**
             * Identifier of the hook.
             */
            id?: string;
            name?: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
            /**
             * Deprecated. Prefer fetching `intervals` from the `visualizationMetadata` endpoint
             * (`GET /v2/portal/visualization/metadata`) so the supported intervals can vary per
             * meter/contract. Still emitted as a fallback for clients that have not migrated yet.
             *
             */
            intervals?: string[];
            /**
             * Optional list of portal block types the hook supports. Empty/missing means the hook is usable on any export-capable block.
             */
            block_types?: string[];
        }
        export interface PublicExtensionCapabilities {
            consumptionDataRetrieval?: DataRetrievalItem[];
            dataExport?: DataRetrievalItem[];
            priceDataRetrieval?: DataRetrievalItem[];
            costDataRetrieval?: DataRetrievalItem[];
            contractIdentification?: {
                extension?: PublicExtensionDetails;
                hook?: PublicContractIdentificationDetails;
            };
            meterReadingPlausibilityCheck?: {
                extension?: PublicExtensionDetails;
                hook?: PublicMeterReadingPlausibilityCheckDetails;
            };
        }
        export interface PublicExtensionDetails {
            /**
             * Identifier of the extension.
             */
            id?: string;
            name?: {
                [name: string]: string;
                /**
                 * Name of the extension in English.
                 */
                en: string;
            };
        }
        export interface PublicMeterReadingPlausibilityCheckDetails {
            /**
             * Mode for plausibility check:
             * - "check": Validates meter reading and returns valid: boolean (used during submission)
             * - "range": Returns min/max allowed values for validation before submission
             *
             */
            plausibility_mode?: "check" | "range";
        }
        /**
         * The person who recorded the reading
         * example:
         * John Doe
         */
        export type ReadBy = string | null;
        export type ReadingStatus = "valid" | "in-validation" | "implausible" | null | "";
        /**
         * The reason for recording the reading
         * If no reason is specified or left empty, the Epilot UI will show 'Regular' as the default display text
         *
         * example:
         * Storing the feed-in record
         */
        export type Reason = "" | "regular" | "irregular" | "last" | "first" | "meter_change" | "contract_change" | "meter_adjustment";
        export interface RegistrationIdentifier {
            /**
             * Name of the identifier/attribute
             */
            name?: string;
            schema?: /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            EntitySlug;
        }
        /**
         * An entity that describes a reimbursement billing event.
         */
        export interface ReimbursementEvent {
            [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;
                }[];
            };
            /**
             * Type of the billing event.
             * example:
             * reimbursement
             */
            type: "reimbursement";
            /**
             * Date on which the installment is due.
             */
            due_date?: string; // date
            /**
             * Date on which the customer is reimbursed.
             */
            paid_date?: string; // date
        }
        export interface Rule {
            entity?: string | null;
            attribute?: string | null;
            attribute_value?: string | null;
        }
        export interface SAMLProviderConfig {
        }
        export interface SSOCallbackRequest {
            provider_slug?: /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            ProviderSlug /* [0-9a-z-]+ */;
            /**
             * URL of the authorization endpoint
             * example:
             * https://www.facebook.com/v12.0/dialog/oauth
             */
            token_endpoint: string;
            /**
             * The grant type
             * example:
             * authorization_code
             */
            grant_type: string;
            /**
             * The code received from the external SSO provider
             * example:
             * 123456
             */
            code: string;
            /**
             * The redirect uri
             * example:
             * https://customer-portal.com/login
             */
            redirect_uri: string;
            /**
             * The client id
             * example:
             * 123456
             */
            client_id: string;
            /**
             * The code verifier
             * example:
             * 123456
             */
            code_verifier: string;
        }
        export interface SSOCallbackResponse {
            /**
             * The access token
             * example:
             * 123456
             */
            access_token: string;
            /**
             * The token type
             * example:
             * Bearer
             */
            token_type: string;
            /**
             * The expires in
             * example:
             * 3600
             */
            expires_in: number;
            /**
             * The refresh token
             * example:
             * 123456
             */
            refresh_token: string;
            /**
             * The id token
             * example:
             * 123456
             */
            id_token?: string;
            /**
             * The scope of the access token
             * example:
             * openid email
             */
            scope?: string;
        }
        export type SSOLoginToken = string;
        export interface SaveEntityFile {
            entity_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
            /**
             * Entity type
             * example:
             * order
             */
            entity_type: string;
            files: {
                /**
                 * File name
                 * example:
                 * document.pdf
                 */
                filename: string;
                /**
                 * Access control level for the file. Deprecated - all files are private.
                 */
                access_control?: "private" | "public-read";
                s3ref: {
                    /**
                     * S3 bucket name
                     * example:
                     * 12345
                     */
                    bucket: string;
                    /**
                     * S3 key
                     * example:
                     * 12345
                     */
                    key: string;
                };
            }[];
        }
        export interface SavePortalFile {
            /**
             * Origin of the portal
             */
            origin: /* Origin of the portal */ Origin;
            files: {
                /**
                 * File name
                 * example:
                 * 12345
                 */
                filename?: string;
                /**
                 * File type
                 * example:
                 * orderRightTeaser
                 */
                file_type: string;
                /**
                 * Array of file tags
                 * example:
                 * 12345
                 */
                _tags?: string[];
                s3ref?: {
                    /**
                     * S3 bucket name
                     * example:
                     * 12345
                     */
                    bucket: string;
                    /**
                     * S3 key
                     * example:
                     * 12345
                     */
                    key: string;
                };
            }[];
        }
        export interface Schema {
            [name: string]: any;
            /**
             * Slug of the schema
             * example:
             * contact
             */
            slug?: string;
        }
        /**
         * Side-loaded enrichment data requested via the `include` parameter.
         */
        export interface SearchIncludes {
            /**
             * The active workflow execution for each entity, keyed by entity ID. Only entities with an active workflow are present.
             */
            active_workflow?: {
                [name: string]: {
                    [key: string]: any;
                };
            };
        }
        /**
         * Configuration for routing requests through the ERP Integration secure proxy. Mutually exclusive with use_static_ips.
         */
        export interface SecureProxyConfig {
            /**
             * Integration ID that owns the secure_proxy use case.
             */
            integration_id: string; // uuid
            /**
             * Use case slug for the secure proxy use case.
             */
            use_case_slug: string;
        }
        export type Source = "ECP" | "ERP" | "360" | "journey-submission";
        export type SwappableConfig = "all" | "domain" | "users" | "email_templates";
        export type TariffType = "ht" | "nt";
        export interface TeaserWidget {
            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;
            };
        }
        export interface TriggerPortalFlow {
            /**
             * Id of the activity
             * example:
             * 01F130Q52Q6MWSNS8N2AVXV4JN
             */
            activity_id?: string;
            ecp_config?: {
                file_config?: {
                    /**
                     * Indicate whether the file is shared with the end customer
                     */
                    shared_with_end_customer?: boolean;
                    /**
                     * Array of entity tags
                     * example:
                     * [
                     *   "example",
                     *   "mock"
                     * ]
                     */
                    _tags?: string[];
                };
            };
        }
        export interface UpdateOnlyPortalConfigAttributes {
            /**
             * Journey actions allowed on an entity by a portal user
             */
            entity_actions?: {
                journey_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */;
                slug?: /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug;
                action_Label?: {
                    en?: string;
                    de?: string;
                };
            }[];
            /**
             * Configured Portal extensions
             */
            extensions?: ExtensionConfig[];
            /**
             * Configured Portal extensions hooks
             */
            extension_hooks?: {
                [name: string]: ExtensionHookSelection;
            };
            /**
             * Default 360 user to notify upon an internal notification
             */
            default_user_to_notify?: {
                /**
                 * Default admin users for pending user notification to notify
                 */
                onPendingUser?: AdminUser[];
            };
            /**
             * SSO identity providers for the portal. When sent on a portal save (PUT/POST),
             * the list is fully synced — incoming providers are upserted and any existing
             * providers not in the list are deleted. Omit the field to leave SSO
             * configuration unchanged; send an empty array to remove all providers.
             *
             * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
             * as sent. Customers are encouraged to reference an org env secret via
             * `{{ env.VAR }}` rather than embed raw values.
             *
             */
            identity_providers?: /**
             * SSO identity provider configuration.
             *
             * Env var interpolation: only string fields under `oidc_config` and
             * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
             * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
             * get resolved at runtime against the organization's environment.
             *
             * The following fields are used as literal values and MUST NOT contain
             * template syntax: `slug`, `display_name`, `provider_type`, all keys and
             * values under `attribute_mappings` (used as JSONPath-like accessors into
             * token claims), and all keys and values under `entity_matching`.
             *
             */
            ProviderConfig[];
        }
        export interface UpsertPortalConfig {
            /**
             * Journey actions allowed on an entity by a portal user
             */
            entity_actions?: {
                journey_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */;
                slug?: /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug;
                action_Label?: {
                    en?: string;
                    de?: string;
                };
            }[];
            /**
             * Configured Portal extensions
             */
            extensions?: ExtensionConfig[];
            /**
             * Configured Portal extensions hooks
             */
            extension_hooks?: {
                [name: string]: ExtensionHookSelection;
            };
            /**
             * Default 360 user to notify upon an internal notification
             */
            default_user_to_notify?: {
                /**
                 * Default admin users for pending user notification to notify
                 */
                onPendingUser?: AdminUser[];
            };
            /**
             * SSO identity providers for the portal. When sent on a portal save (PUT/POST),
             * the list is fully synced — incoming providers are upserted and any existing
             * providers not in the list are deleted. Omit the field to leave SSO
             * configuration unchanged; send an empty array to remove all providers.
             *
             * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
             * as sent. Customers are encouraged to reference an org env secret via
             * `{{ env.VAR }}` rather than embed raw values.
             *
             */
            identity_providers?: /**
             * SSO identity provider configuration.
             *
             * Env var interpolation: only string fields under `oidc_config` and
             * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
             * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
             * get resolved at runtime against the organization's environment.
             *
             * The following fields are used as literal values and MUST NOT contain
             * template syntax: `slug`, `display_name`, `provider_type`, all keys and
             * values under `attribute_mappings` (used as JSONPath-like accessors into
             * token claims), and all keys and values under `entity_matching`.
             *
             */
            ProviderConfig[];
            /**
             * 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;
            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 UpsertPortalConfigV3 {
            /**
             * Journey actions allowed on an entity by a portal user
             */
            entity_actions?: {
                journey_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                EntityId /* uuid */;
                slug?: /**
                 * URL-friendly identifier for the entity schema
                 * example:
                 * contact
                 */
                EntitySlug;
                action_Label?: {
                    en?: string;
                    de?: string;
                };
            }[];
            /**
             * Configured Portal extensions
             */
            extensions?: ExtensionConfig[];
            /**
             * Configured Portal extensions hooks
             */
            extension_hooks?: {
                [name: string]: ExtensionHookSelection;
            };
            /**
             * Default 360 user to notify upon an internal notification
             */
            default_user_to_notify?: {
                /**
                 * Default admin users for pending user notification to notify
                 */
                onPendingUser?: AdminUser[];
            };
            /**
             * SSO identity providers for the portal. When sent on a portal save (PUT/POST),
             * the list is fully synced — incoming providers are upserted and any existing
             * providers not in the list are deleted. Omit the field to leave SSO
             * configuration unchanged; send an empty array to remove all providers.
             *
             * Each provider is persisted verbatim — `oidc_config.client_secret` is stored
             * as sent. Customers are encouraged to reference an org env secret via
             * `{{ env.VAR }}` rather than embed raw values.
             *
             */
            identity_providers?: /**
             * SSO identity provider configuration.
             *
             * Env var interpolation: only string fields under `oidc_config` and
             * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
             * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
             * get resolved at runtime against the organization's environment.
             *
             * The following fields are used as literal values and MUST NOT contain
             * template syntax: `slug`, `display_name`, `provider_type`, all keys and
             * values under `attribute_mappings` (used as JSONPath-like accessors into
             * token claims), and all keys and values under `entity_matching`.
             *
             */
            ProviderConfig[];
            /**
             * 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;
            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;
            /**
             * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id.
             */
            global_blocks?: {
                [name: string]: Block;
            };
            pages?: PageRequest[];
        }
        export interface UpsertPortalWidget {
            /**
             * V3 portal-scoped storage key for the widget configuration
             */
            portal_sk_v3?: string;
            /**
             * Indicates whether the widget configuration is stored as a V3 portal-scoped item
             */
            is_v3_item?: boolean;
            widgets: PortalWidget[];
        }
        export interface UserRequest {
            /**
             * User's email address
             * example:
             * testemail921@yopmail.com
             */
            email?: string;
            /**
             * First Name of the portal user
             * example:
             * John
             */
            first_name?: string;
            /**
             * Last Name of the portal user
             * example:
             * Doe
             */
            last_name?: string;
            /**
             * ID of the contact
             */
            contactId?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            EntityId /* uuid */;
        }
        /**
         * Earliest / latest timestamps for which data is available in the current context.
         */
        export interface VisualizationDataRange {
            /**
             * ISO 8601 timestamp of the earliest available data point.
             */
            from?: string; // date-time
            /**
             * ISO 8601 timestamp of the latest available data point.
             */
            to?: string; // date-time
        }
        /**
         * Runtime metadata describing how a visualization should be rendered for a given portal context. Returned by `GET /v2/portal/visualization/metadata`.
         *
         */
        export interface VisualizationMetadata {
            /**
             * Types advertised for the current context (e.g. `ht`/`nt`, `feed-in`/`feed-out`). The `id` matches the `type` field returned by the data hook.
             *
             */
            type_options?: VisualizationTypeOption[];
            /**
             * Intervals supported for the current context. If omitted, all intervals are assumed supported.
             */
            intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M")[];
            data_range?: /* Earliest / latest timestamps for which data is available in the current context. */ VisualizationDataRange;
        }
        export interface VisualizationTypeOption {
            /**
             * Identifier of the type. Matches the `type` field on the data hook response.
             */
            id: string;
            /**
             * Localized label for the type, keyed by ISO 3166-1 alpha-2 language code.
             */
            label?: {
                [name: string]: string;
            };
            /**
             * Optional grouping key. Types in the same `aggregation_group` are visually combined; types in different groups (or without a group) render separately. How they combine depends on each type's `statistical_method`:
             *   - bar chart (`sum`): same-group types are stacked into a single bar (e.g. ht/nt
             *     summed into total consumption); different-group types render side-by-side.
             *   - line chart (`min` / `average` / `max`): same-group types are rendered as an
             *     area chart; different-group types render as separate lines.
             *
             */
            aggregation_group?: string;
            /**
             * Statistical method already applied to this type's data. Determines the chart shape used to render the type's values: `sum` is shown as a bar chart; `min`, `average`, and `max` are shown as a line chart. Each type advertises its own method, so a single visualization can mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.
             *
             */
            statistical_method?: "sum" | "average" | "min" | "max";
            /**
             * Unit shared by all values of this type (e.g. "kWh").
             */
            unit?: string;
            /**
             * Optional Spark color token used to render this type in the visualization. Maps onto the portal's Spark palette (`primary` is the org's primary brand color). When omitted the consumer falls back to its own per-type default.
             *
             */
            color?: "primary" | "slate" | "mauve" | "orange" | "red" | "tomato" | "amber" | "green" | "blue";
            /**
             * Optional number of decimal places to show when rendering values of this type in the visualization (axis labels, tooltips, summaries). When omitted the consumer falls back to its own default precision.
             *
             */
            precision?: number;
        }
        export interface WidgetAction {
            _id: string;
            type: "link" | "journey";
            label: {
                en?: string;
                de?: string;
            };
            url: string;
            rules?: {
                attribute: string;
                attribute_value: string;
                entity: string;
            }[];
        }
        export interface WidgetBase {
            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;
            };
        }
        /**
         * Workflow identifier object
         */
        export interface WorfklowIdentifier {
            defition_id?: string;
            name?: string;
        }
        /**
         * example:
         * {
         *   "id": "8gja72h6kas6h",
         *   "name": "Lead Qualification",
         *   "trigger": "MANUAL",
         *   "status": "STARTED",
         *   "creationTime": "2021-04-27T12:01:13.000Z",
         *   "lastUpdateTime": "2021-04-27T12:01:13.000Z",
         *   "dueDate": "2021-04-27T12:01:13.000Z",
         *   "assignedTo": [
         *     "252",
         *     "29052"
         *   ],
         *   "flow": [
         *     {
         *       "id": "sectionId1",
         *       "name": "Initial Information Gathering",
         *       "steps": [
         *         {
         *           "id": "sada5641f3a21",
         *           "name": "Call client and confirm address and product",
         *           "status": "ASSIGNED",
         *           "assignedTo": [
         *             "11"
         *           ]
         *         },
         *         {
         *           "id": "sada5641f3a22",
         *           "name": "Check product availability",
         *           "status": "UNASSIGNED"
         *         },
         *         {
         *           "id": "sada5641f3a23",
         *           "name": "Send email confirming contact with the client",
         *           "status": "SKIPPED"
         *         }
         *       ]
         *     },
         *     {
         *       "id": "firstLevelStepId1",
         *       "name": "Print and send catalog",
         *       "status": "SKIPPED",
         *       "dueDate": "2023-01-15T20:00:00"
         *     }
         *   ]
         * }
         */
        export interface WorkflowExecution {
            [name: string]: any;
        }
        /**
         * example:
         * {
         *   "startedTime": "2024-01-12T13:29:55.942Z",
         *   "requirements": [],
         *   "created": "2023-10-20T17:41:10.256Z",
         *   "executionType": "MANUAL",
         *   "assignedToInProgress": "-",
         *   "sectionId": "lzxsw2sblj7",
         *   "type": "STEP",
         *   "entityRefId": "q1d6vcbsqvn",
         *   "assignedTo": [
         *     "10014532"
         *   ],
         *   "lastUpdated": "2024-01-13T05:18:43.838Z",
         *   "ecp": {},
         *   "userIds": [],
         *   "name": "Hinterlege den vereinbarten LIC Termin",
         *   "id": "q1d6vcbsqvn",
         *   "definitionId": "9UjHKq",
         *   "status": "COMPLETED",
         *   "manuallyCreated": false,
         *   "enabled": true,
         *   "completedTime": "2024-01-13T05:18:43.827Z"
         * }
         */
        export interface WorkflowStep {
            [name: string]: any;
        }
    }
}
declare namespace Paths {
    namespace AddContractByIdentifiers {
        /**
         * Identifier-value pairs per schema to identify the contract
         * example:
         * {
         *   "contract": {
         *     "contract_number": "123456"
         *   },
         *   "meter": {
         *     "meter_number": "123456"
         *   }
         * }
         */
        export interface RequestBody {
            [name: string]: {
                [name: string]: string;
            };
        }
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.EntityItem[];
                hits: number;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $409 = Components.Responses.ContractAssignmentConflict;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CanTriggerPortalFlow {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
            /**
             * Portal ID
             * example:
             * 123
             */
            export type PortalId = string;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
            portal_id: /**
             * Portal ID
             * example:
             * 123
             */
            Parameters.PortalId;
        }
        export type RequestBody = Components.Schemas.TriggerPortalFlow;
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the flow can be triggered
                 * example:
                 * true
                 */
                can_trigger?: boolean;
            }
        }
    }
    namespace CheckAccountExists {
        namespace Parameters {
            export type Domain = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        export type RequestBody = Components.Schemas.AccountExistsRequest;
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the account exists with the given identifier values
                 * example:
                 * true
                 */
                exists?: boolean;
                /**
                 * ID of the account if exists
                 */
                accountId?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CheckContactExists {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        export type RequestBody = Components.Schemas.ContactExistsRequest;
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the contact exists with the given identifier values
                 * example:
                 * true
                 */
                exists?: boolean;
                /**
                 * ID of the contact if exists
                 */
                contactId?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CheckContactExistsV3 {
        namespace Parameters {
            export type Domain = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        export type RequestBody = Components.Schemas.ContactExistsRequest;
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the contact exists with the given identifier values
                 * example:
                 * true
                 */
                exists?: boolean;
                /**
                 * ID of the contact if exists
                 */
                contactId?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
                /**
                 * ID of the resolved account when the portal is configured for account-based registration
                 */
                accountId?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ClonePortalConfig {
        export interface RequestBody {
            source_portal_id: /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
            /**
             * Name for the cloned portal. Defaults to "Copy of <source portal name>".
             */
            name?: string;
        }
        namespace Responses {
            export type $201 = Components.Schemas.PortalConfigV3;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ConfigureDistribution {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * The domain name of the configured distribution
                 * example:
                 * dsj8op4ha01jha23.cloudfront.net
                 */
                domainName?: string;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ConfigureDistributionV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * The domain name of the configured distribution
                 * example:
                 * dsj8op4ha01jha23.cloudfront.net
                 */
                domainName?: string;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ConfirmUser {
        namespace Parameters {
            /**
             * Confirmation link token
             */
            export type ConfirmationLinkToken = string;
            /**
             * Should the operation result in a 301 redirect
             */
            export type UseRedirect = boolean;
        }
        export interface QueryParameters {
            confirmation_link_token: /* Confirmation link token */ Parameters.ConfirmationLinkToken;
            use_redirect?: /* Should the operation result in a 301 redirect */ Parameters.UseRedirect;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Is the user confirmed
                 * example:
                 * true
                 */
                confirmed?: boolean;
                /**
                 * Is the user previously confirmed
                 * example:
                 * true
                 */
                user_already_confirmed?: boolean;
            }
            export interface $301 {
            }
            export type $400 = Components.Responses.ConfirmUserInvalidRequest;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ConfirmUserWithUserId {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            /**
             * example:
             * 123
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
            org_id: /**
             * example:
             * 123
             */
            Parameters.OrgId;
        }
        namespace Responses {
            export interface $301 {
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreateCustomEntityActivity {
        namespace Parameters {
            export type Entities = [
                /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */,
                .../**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */[]
            ];
        }
        export interface QueryParameters {
            entities?: Parameters.Entities;
        }
        export interface RequestBody {
            /**
             * One of supported activity types
             */
            type: "PortalUserResetPassword";
        }
        namespace Responses {
            export type $201 = Components.Schemas.ActivityItem;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreateMeterReading {
        namespace Parameters {
            export type OverridePlausibility = boolean;
        }
        export interface QueryParameters {
            override_plausibility?: Parameters.OverridePlausibility;
        }
        export type RequestBody = Components.Schemas.MeterReading;
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.MeterReading;
            }
            export type $400 = Components.Responses.InvalidRequestCreateMeterReading;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreatePortalConfig {
        export type RequestBody = Components.Schemas.UpsertPortalConfigV3;
        namespace Responses {
            export type $201 = Components.Schemas.PortalConfigV3;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $409 = Components.Responses.Conflict;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreatePortalPage {
        export type RequestBody = Components.Schemas.PageRequest;
        namespace Responses {
            export type $200 = Components.Schemas.Page;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreatePortalPageBlock {
        export type RequestBody = Components.Schemas.BlockRequest;
        namespace Responses {
            export type $200 = Components.Schemas.Block;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreateUser {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        export type RequestBody = Components.Schemas.CreateUserRequest;
        namespace Responses {
            export interface $201 {
                message: "User created successfully";
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace CreateUserV3 {
        namespace Parameters {
            export type Domain = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        export type RequestBody = Components.Schemas.CreateUserRequest;
        namespace Responses {
            export interface $201 {
                message: "User created successfully";
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeRegisterMLoginUser {
        namespace Parameters {
            export type ClientId = string;
            export type UserId = string;
        }
        export interface PathParameters {
            client_id: Parameters.ClientId;
            user_id: Parameters.UserId;
        }
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeleteEntityFile {
        export type RequestBody = Components.Schemas.DeleteEntityFile;
        namespace Responses {
            export interface $202 {
                deletedFiles?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */[];
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeletePortal {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeletePortalConfig {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type PortalId = string; // uuid
        }
        export interface PathParameters {
            portal_id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.PortalId /* uuid */;
        }
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeletePortalPage {
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeletePortalPageBlock {
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DeletePortalUser {
        namespace Responses {
            export interface $200 {
                message?: "User Succesfully Deleted";
                data?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace DisablePartner {
        namespace Parameters {
            /**
             * ID of the partner to disable from the portal
             */
            export type PartnerId = string;
        }
        export interface PathParameters {
            partner_id: /* ID of the partner to disable from the portal */ Parameters.PartnerId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * Partner disabled from portal successfully
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace EnablePartner {
        namespace Parameters {
            /**
             * ID of the partner to enable from the portal
             */
            export type PartnerId = string;
        }
        export interface PathParameters {
            partner_id: /* ID of the partner to enable from the portal */ Parameters.PartnerId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * Partner enabled from portal successfully
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ExtraPermissionAttributes {
        namespace Responses {
            export interface $200 {
                data?: {
                    contact?: Components.Schemas.ExtraSchemaAttributes;
                    contract?: Components.Schemas.ExtraSchemaAttributes;
                    order?: Components.Schemas.ExtraSchemaAttributes;
                    opportunity?: Components.Schemas.ExtraSchemaAttributes;
                    meter?: Components.Schemas.ExtraSchemaAttributes;
                    meter_counter?: Components.Schemas.ExtraSchemaAttributes;
                };
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace FetchPortalUsersByRelatedEntity {
        namespace Parameters {
            export type EntityId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Slug = /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            Components.Schemas.EntitySlug;
        }
        export interface QueryParameters {
            entity_id: Parameters.EntityId;
            slug: Parameters.Slug;
        }
        namespace Responses {
            export interface $200 {
                portalUsers?: /* The portal user entity */ Components.Schemas.PortalUser[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllContracts {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 100
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 100
             */
            Parameters.Size;
        }
        namespace Responses {
            export interface $200 {
                data?: {
                    [name: string]: any;
                    _id: /**
                     * Entity ID
                     * example:
                     * 5da0a718-c822-403d-9f5d-20d4584e0528
                     */
                    Components.Schemas.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;
                    }[];
                    /**
                     * The name of the contract.
                     * example:
                     * Grid Contract
                     */
                    contract_name?: string;
                    /**
                     * The unique identifier of the contract.
                     * example:
                     * 12345
                     */
                    contract_number?: string;
                    /**
                     * The status of the contract.
                     * example:
                     * approved
                     */
                    status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired";
                    /**
                     * A brief description of the contract.
                     * example:
                     * This contract is for the supply of widgets.
                     */
                    description?: string;
                    /**
                     * The account number associated with the contract.
                     * example:
                     * 67890
                     */
                    account_number?: string;
                    /**
                     * The branch associated with the contract.
                     * example:
                     * power
                     */
                    branch?: "power" | "gas" | "water" | "waste_water" | "district_heating";
                    /**
                     * The billing address associated with the contract.
                     * example:
                     * 123 Main St, Anytown
                     */
                    billing_address?: string;
                    /**
                     * The delivery address associated with the contract.
                     * example:
                     * 456 Elm St, Anytown
                     */
                    delivery_address?: string;
                    /**
                     * Any additional addresses associated with the contract.
                     * example:
                     * 789 Oak St, Anytown
                     */
                    additional_addresses?: string;
                    /**
                     * The date on which the contract was terminated.
                     * example:
                     * 2022-01-01
                     */
                    termination_date?: string;
                    /**
                     * The reason for the termination of the contract.
                     * example:
                     * Non-payment
                     */
                    termination_reason?: string;
                    /**
                     * The billing period associated with the contract.
                     * example:
                     * monthly
                     */
                    billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly";
                    /**
                     * The duration of the billing period.
                     * example:
                     * 30
                     */
                    billing_duration_amount?: number;
                    /**
                     * The duration of the renewal period.
                     * example:
                     * 365
                     */
                    renewal_duration_amount?: number;
                    /**
                     * The unit of time for the renewal period.
                     * example:
                     * years
                     */
                    renewal_duration_unit?: "weeks" | "months" | "years";
                    /**
                     * The amount of notice required for termination of the contract.
                     * example:
                     * 30
                     */
                    notice_time_amount?: number;
                    /**
                     * The unit of time for the notice period.
                     * example:
                     * months
                     */
                    notice_time_unit?: "weeks" | "months" | "years";
                    /**
                     * The start date of the contract.
                     * example:
                     * 2021-01-01
                     */
                    start_date?: string;
                    /**
                     * Defines the day of the month in which the installments are due.
                     * example:
                     * 2
                     */
                    billing_due_day?: number;
                    /**
                     * Set amount for installments in cents. (precision 2)
                     * example:
                     * 10050
                     */
                    installment_amount?: number;
                    /**
                     * Current balance of the contract in cents. (precision 2)
                     * example:
                     * 8990
                     */
                    balance?: number;
                    balance_currency?: /**
                     * Currency code in ISO 4217 format
                     * example:
                     * EUR
                     */
                    Components.Schemas.Currency;
                    journey_actions?: Components.Schemas.JourneyActions;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllFiles {
        namespace Parameters {
            /**
             * example:
             * [
             *   "4910096f-000a-4504-bf5a-d3774ec3032a",
             *   "7c9f8536-6266-42e8-a0de-c60b61aa81a7"
             * ]
             */
            export type EntityIds = [
                /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */,
                .../**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */[]
            ];
            /**
             * example:
             * [
             *   "document",
             *   "image"
             * ]
             */
            export type FileTypes = [
                string,
                ...string[]
            ];
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 0
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size: /**
             * Size of the search results
             * example:
             * 0
             */
            Parameters.Size;
            entity_ids?: /**
             * example:
             * [
             *   "4910096f-000a-4504-bf5a-d3774ec3032a",
             *   "7c9f8536-6266-42e8-a0de-c60b61aa81a7"
             * ]
             */
            Parameters.EntityIds;
            file_types?: /**
             * example:
             * [
             *   "document",
             *   "image"
             * ]
             */
            Parameters.FileTypes;
        }
        namespace Responses {
            export interface $200 {
                results?: /* The file entity */ Components.Schemas.FileItem[];
                /**
                 * Total number of files for pagination
                 * example:
                 * 50
                 */
                hits?: number;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllOpportunities {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 100
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 100
             */
            Parameters.Size;
        }
        namespace Responses {
            export interface $200 {
                data?: {
                    [name: string]: any;
                    _id: /**
                     * Entity ID
                     * example:
                     * 5da0a718-c822-403d-9f5d-20d4584e0528
                     */
                    Components.Schemas.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;
                    }[];
                    _schema: "opportunity";
                    journey_actions?: Components.Schemas.JourneyActions;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllOrders {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 100
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 100
             */
            Parameters.Size;
        }
        namespace Responses {
            export interface $200 {
                data?: {
                    [name: string]: any;
                    _id: /**
                     * Entity ID
                     * example:
                     * 5da0a718-c822-403d-9f5d-20d4584e0528
                     */
                    Components.Schemas.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;
                    }[];
                    _schema: "order";
                    journey_actions?: Components.Schemas.JourneyActions;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllPortalConfigs {
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.PortalConfig[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllRequests {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 100
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 100
             */
            Parameters.Size;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Total number of hits
                 * example:
                 * 1
                 */
                hits?: number;
                results?: ({
                    journey_actions?: Components.Schemas.JourneyActions;
                } & (/* The opportunity entity */ Components.Schemas.Opportunity | /* The order entity */ Components.Schemas.Order))[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAllowedMeterReadingRange {
        namespace Parameters {
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type MeterId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
            /**
             * example:
             * 2022-10-01T10:10:00.000Z
             */
            export type Timestamp = string;
        }
        export interface PathParameters {
            meter_id: Parameters.MeterId;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
            timestamp?: /**
             * example:
             * 2022-10-01T10:10:00.000Z
             */
            Parameters.Timestamp;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                data?: {
                    /**
                     * The ID of the counter
                     */
                    meter_counter_id?: string;
                    /**
                     * Minimum allowed reading value
                     */
                    min_value?: number | null;
                    /**
                     * Maximum allowed reading value
                     */
                    max_value?: number | null;
                }[];
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetAutomationContext {
        namespace Parameters {
            export type ActivityId = /**
             * See https://github.com/ulid/spec
             * example:
             * 01F130Q52Q6MWSNS8N2AVXV4JN
             */
            Components.Schemas.ActivityId /* ulid */;
            export type Type = "file";
        }
        export interface QueryParameters {
            activity_id: Parameters.ActivityId;
            type: Parameters.Type;
        }
        namespace Responses {
            export interface $200 {
                [name: string]: Components.Schemas.Entity;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetBillingAccount {
        namespace Responses {
            export interface $200 {
                entity?: /* A billing account */ Components.Schemas.BillingAccount;
                /**
                 * The related entities of the requested billing account
                 */
                relations?: Components.Schemas.EntityItem[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetBillingEvents {
        namespace Parameters {
            /**
             * List billing events after this date
             */
            export type DateAfter = string; // date-time
            /**
             * List billing events before this date
             */
            export type DateBefore = string; // date-time
            export type EntityId = [
                /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */,
                .../**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */[]
            ];
            /**
             * Type of billing event to filter by
             */
            export type EventType = "installment" | "reimbursement";
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Filter billing events by paid status
             */
            export type Paid = boolean;
            /**
             * Size of the search results.
             * example:
             * 100
             */
            export type Size = number;
            /**
             * Key to sort by
             * example:
             * due_date:asc
             */
            export type Sort = string;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results.
             * example:
             * 100
             */
            Parameters.Size;
            entity_id?: Parameters.EntityId;
            event_type?: /* Type of billing event to filter by */ Parameters.EventType;
            paid?: /* Filter billing events by paid status */ Parameters.Paid;
            date_after?: /* List billing events after this date */ Parameters.DateAfter /* date-time */;
            date_before?: /* List billing events before this date */ Parameters.DateBefore /* date-time */;
            sort?: /**
             * Key to sort by
             * example:
             * due_date:asc
             */
            Parameters.Sort;
        }
        namespace Responses {
            export interface $200 {
                results?: /* An entity that describes a billing event such as a future installment or a reimbursement back to the customer. */ Components.Schemas.BillingEvent[];
                /**
                 * Total number of billing events for pagination
                 * example:
                 * 50
                 */
                hits?: number;
            }
        }
    }
    namespace GetConsumption {
        namespace Parameters {
            export type AppId = string;
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ExtensionId = string;
            export type From = string; // date-time
            export type HookId = string;
            export type Interval = "PT15M" | "PT1H" | "P1D" | "P1M";
            export type MeterId = string;
            export type To = string; // date-time
        }
        export interface QueryParameters {
            app_id?: Parameters.AppId;
            extensionId: Parameters.ExtensionId;
            hookId?: Parameters.HookId;
            meter_id?: Parameters.MeterId;
            from: Parameters.From /* date-time */;
            to: Parameters.To /* date-time */;
            interval: Parameters.Interval;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                consumptions?: {
                    /**
                     * ISO 8601 timestamp of the consumption record.
                     */
                    timestamp: string; // date-time
                    /**
                     * The consumption value.
                     */
                    value: number;
                    /**
                     * Optional type of the consumption, such as 'nt' (night time) and 'ht' (high time) or 'feed-in' and 'feed-out'. Can be any string.
                     * example:
                     * nt
                     */
                    type?: string;
                    /**
                     * Optional unit of the consumption value. Defaults to unit present on the relevant Meter Counter.
                     * example:
                     * kWh
                     */
                    unit?: string;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetContact {
        namespace Responses {
            export interface $200 {
                entity?: /* The mapped contact of the portal user */ Components.Schemas.Contact;
                files?: /* The file entity */ Components.Schemas.File[];
                relations?: Components.Schemas.EntityItem[];
                journey_actions?: Components.Schemas.JourneyActions[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetContract {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                entity?: /* The contract entity */ Components.Schemas.Contract;
                /**
                 * The related orders of the requested contract
                 */
                orders?: /* The order entity */ Components.Schemas.Order[];
                /**
                 * The related meters of the requested contract
                 */
                meters?: /* The meter entity */ Components.Schemas.Meter[];
                /**
                 * The related files of the requested contract
                 */
                files?: /* The file entity */ Components.Schemas.File[];
                /**
                 * The related entities of the requested contract
                 */
                relations?: Components.Schemas.EntityItem[];
                workflow?: /**
                 * example:
                 * {
                 *   "id": "8gja72h6kas6h",
                 *   "name": "Lead Qualification",
                 *   "trigger": "MANUAL",
                 *   "status": "STARTED",
                 *   "creationTime": "2021-04-27T12:01:13.000Z",
                 *   "lastUpdateTime": "2021-04-27T12:01:13.000Z",
                 *   "dueDate": "2021-04-27T12:01:13.000Z",
                 *   "assignedTo": [
                 *     "252",
                 *     "29052"
                 *   ],
                 *   "flow": [
                 *     {
                 *       "id": "sectionId1",
                 *       "name": "Initial Information Gathering",
                 *       "steps": [
                 *         {
                 *           "id": "sada5641f3a21",
                 *           "name": "Call client and confirm address and product",
                 *           "status": "ASSIGNED",
                 *           "assignedTo": [
                 *             "11"
                 *           ]
                 *         },
                 *         {
                 *           "id": "sada5641f3a22",
                 *           "name": "Check product availability",
                 *           "status": "UNASSIGNED"
                 *         },
                 *         {
                 *           "id": "sada5641f3a23",
                 *           "name": "Send email confirming contact with the client",
                 *           "status": "SKIPPED"
                 *         }
                 *       ]
                 *     },
                 *     {
                 *       "id": "firstLevelStepId1",
                 *       "name": "Print and send catalog",
                 *       "status": "SKIPPED",
                 *       "dueDate": "2023-01-15T20:00:00"
                 *     }
                 *   ]
                 * }
                 */
                Components.Schemas.WorkflowExecution[];
                journey_actions?: Components.Schemas.JourneyActions[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetCosts {
        namespace Parameters {
            export type AppId = string;
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ExtensionId = string;
            export type From = string; // date-time
            export type HookId = string;
            export type Interval = "PT15M" | "PT1H" | "P1D" | "P1M";
            export type MeterId = string;
            export type To = string; // date-time
        }
        export interface QueryParameters {
            app_id?: Parameters.AppId;
            extensionId: Parameters.ExtensionId;
            hookId?: Parameters.HookId;
            meter_id?: Parameters.MeterId;
            from: Parameters.From /* date-time */;
            to: Parameters.To /* date-time */;
            interval: Parameters.Interval;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                costs?: {
                    /**
                     * ISO 8601 timestamp of the cost record.
                     */
                    timestamp: string; // date-time
                    /**
                     * Cost in cents, e.g. 1234 for 12,34 €.
                     * example:
                     * 1234
                     */
                    unit_amount: number;
                    /**
                     * ISO 4217:2015 currency.
                     * example:
                     * EUR
                     */
                    unit_amount_currency: string;
                    /**
                     * Cost in decimal format, e.g. "12.34".
                     * example:
                     * 12.34
                     */
                    unit_amount_decimal: string;
                    /**
                     * Is the tax (typically Value Added Tax) included in the amounts. Typically should NOT be included - exclusive of tax.
                     * example:
                     * exclusive
                     */
                    tax_behavior: "inclusive" | "exclusive";
                    /**
                     * Tax rate in percent, e.g. 19 for 19%.
                     * example:
                     * 19
                     */
                    tax_rate: number;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetCustomerBalance {
        namespace Responses {
            export type $200 = Components.Schemas.Balance;
        }
    }
    namespace GetDefaultPages {
        namespace Responses {
            export type $200 = Components.Schemas.Page[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetECPContact {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface QueryParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                data?: /* The mapped contact of the portal user */ Components.Schemas.Contact;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetEmailTemplates {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetEmailTemplatesByPortalId {
        namespace Parameters {
            export type PortalId = string;
        }
        export interface PathParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export type $200 = /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetEntityActivityFeed {
        namespace Parameters {
            export type After = string; // date-time
            export type Before = string; // date-time
            export type From = number;
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type IncludeRelations = boolean;
            export type Size = number;
            export type Slug = /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            Components.Schemas.EntitySlug;
            /**
             * example:
             * SyncActivity
             */
            export type Type = string;
        }
        export interface PathParameters {
            slug: Parameters.Slug;
            id: Parameters.Id;
        }
        export interface QueryParameters {
            after?: Parameters.After /* date-time */;
            before?: Parameters.Before /* date-time */;
            from?: Parameters.From;
            size?: Parameters.Size;
            type?: /**
             * example:
             * SyncActivity
             */
            Parameters.Type;
            include_relations?: Parameters.IncludeRelations;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * 1
                 */
                total?: number;
                results?: Components.Schemas.ActivityItem[];
            }
        }
    }
    namespace GetEntityIdentifiers {
        namespace Parameters {
            export type Slug = /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            Components.Schemas.EntitySlug;
        }
        export interface PathParameters {
            slug: Parameters.Slug;
        }
        namespace Responses {
            export interface $200 {
                data?: {
                    /**
                     * The name of the identifier
                     * example:
                     * contract_number
                     */
                    name?: string;
                    /**
                     * The type of the identifier
                     * example:
                     * string
                     */
                    type?: string;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetEntityWorkflows {
        namespace Parameters {
            /**
             * ID of the entity
             * example:
             * abc123
             */
            export type Id = string;
            /**
             * Schema slug of the entity
             * example:
             * contact
             */
            export type Slug = string;
        }
        export interface PathParameters {
            slug: /**
             * Schema slug of the entity
             * example:
             * contact
             */
            Parameters.Slug;
            id: /**
             * ID of the entity
             * example:
             * abc123
             */
            Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                workflow_executions?: /**
                 * example:
                 * {
                 *   "id": "8gja72h6kas6h",
                 *   "name": "Lead Qualification",
                 *   "trigger": "MANUAL",
                 *   "status": "STARTED",
                 *   "creationTime": "2021-04-27T12:01:13.000Z",
                 *   "lastUpdateTime": "2021-04-27T12:01:13.000Z",
                 *   "dueDate": "2021-04-27T12:01:13.000Z",
                 *   "assignedTo": [
                 *     "252",
                 *     "29052"
                 *   ],
                 *   "flow": [
                 *     {
                 *       "id": "sectionId1",
                 *       "name": "Initial Information Gathering",
                 *       "steps": [
                 *         {
                 *           "id": "sada5641f3a21",
                 *           "name": "Call client and confirm address and product",
                 *           "status": "ASSIGNED",
                 *           "assignedTo": [
                 *             "11"
                 *           ]
                 *         },
                 *         {
                 *           "id": "sada5641f3a22",
                 *           "name": "Check product availability",
                 *           "status": "UNASSIGNED"
                 *         },
                 *         {
                 *           "id": "sada5641f3a23",
                 *           "name": "Send email confirming contact with the client",
                 *           "status": "SKIPPED"
                 *         }
                 *       ]
                 *     },
                 *     {
                 *       "id": "firstLevelStepId1",
                 *       "name": "Print and send catalog",
                 *       "status": "SKIPPED",
                 *       "dueDate": "2023-01-15T20:00:00"
                 *     }
                 *   ]
                 * }
                 */
                Components.Schemas.WorkflowExecution[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetExternalLinks {
        namespace Parameters {
            export type ContactId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
            contactId?: Parameters.ContactId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.ExternalLink[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetExternalLinksV3 {
        namespace Parameters {
            export type ContactId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            contactId?: Parameters.ContactId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.ExternalLink[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetFileById {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                file?: /* The file entity */ Components.Schemas.FileItem;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetFilesCountByEntity {
        namespace Responses {
            export type $200 = Components.Schemas.EntityFileCount[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetMeterReadings {
        export interface RequestBody {
            meter_id: string;
            counter_id: string;
            sort?: "asc" | "desc";
            from?: number;
            size?: number;
            /**
             * Template map (key to Handlebars template string). Each template is resolved per reading.
             */
            templates?: {
                [name: string]: string;
            };
            /**
             * Template map resolved against the counter entity.
             */
            counter_templates?: {
                [name: string]: string;
            };
        }
        namespace Responses {
            export interface $200 {
                results?: {
                    [name: string]: any;
                    templates_output?: {
                        [name: string]: string;
                    };
                }[];
                hits?: number;
                /**
                 * Resolved counter templates.
                 */
                counter_templates_output?: {
                    [name: string]: string;
                };
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOpportunity {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                entity?: /* The opportunity entity */ Components.Schemas.Opportunity;
                /**
                 * The related orders of the requested opportunity
                 */
                orders?: /* The order entity */ Components.Schemas.Order[];
                /**
                 * The related files of the requested opportunity
                 */
                files?: /* The file entity */ Components.Schemas.File[];
                /**
                 * The related entities of the requested opportunity
                 */
                relations?: Components.Schemas.EntityItem[];
                /**
                 * The related workflows of the requested opportunity
                 */
                workflow?: /**
                 * example:
                 * {
                 *   "id": "8gja72h6kas6h",
                 *   "name": "Lead Qualification",
                 *   "trigger": "MANUAL",
                 *   "status": "STARTED",
                 *   "creationTime": "2021-04-27T12:01:13.000Z",
                 *   "lastUpdateTime": "2021-04-27T12:01:13.000Z",
                 *   "dueDate": "2021-04-27T12:01:13.000Z",
                 *   "assignedTo": [
                 *     "252",
                 *     "29052"
                 *   ],
                 *   "flow": [
                 *     {
                 *       "id": "sectionId1",
                 *       "name": "Initial Information Gathering",
                 *       "steps": [
                 *         {
                 *           "id": "sada5641f3a21",
                 *           "name": "Call client and confirm address and product",
                 *           "status": "ASSIGNED",
                 *           "assignedTo": [
                 *             "11"
                 *           ]
                 *         },
                 *         {
                 *           "id": "sada5641f3a22",
                 *           "name": "Check product availability",
                 *           "status": "UNASSIGNED"
                 *         },
                 *         {
                 *           "id": "sada5641f3a23",
                 *           "name": "Send email confirming contact with the client",
                 *           "status": "SKIPPED"
                 *         }
                 *       ]
                 *     },
                 *     {
                 *       "id": "firstLevelStepId1",
                 *       "name": "Print and send catalog",
                 *       "status": "SKIPPED",
                 *       "dueDate": "2023-01-15T20:00:00"
                 *     }
                 *   ]
                 * }
                 */
                Components.Schemas.WorkflowExecution[];
                journey_actions?: Components.Schemas.JourneyActions[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOrder {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                entity?: /* The order entity */ Components.Schemas.Order;
                /**
                 * The related files of the requested order
                 */
                files?: /* The file entity */ Components.Schemas.File[];
                /**
                 * The related entities of the requested order
                 */
                relations?: Components.Schemas.EntityItem[];
                /**
                 * The related products of the requested order
                 */
                products?: /* The product entity */ Components.Schemas.Product[];
                /**
                 * The related cross sellable products of the requested order
                 */
                crossSellableProducts?: /* The product entity */ Components.Schemas.Product[];
                /**
                 * The related workflows of the requested order
                 */
                workflow?: /**
                 * example:
                 * {
                 *   "id": "8gja72h6kas6h",
                 *   "name": "Lead Qualification",
                 *   "trigger": "MANUAL",
                 *   "status": "STARTED",
                 *   "creationTime": "2021-04-27T12:01:13.000Z",
                 *   "lastUpdateTime": "2021-04-27T12:01:13.000Z",
                 *   "dueDate": "2021-04-27T12:01:13.000Z",
                 *   "assignedTo": [
                 *     "252",
                 *     "29052"
                 *   ],
                 *   "flow": [
                 *     {
                 *       "id": "sectionId1",
                 *       "name": "Initial Information Gathering",
                 *       "steps": [
                 *         {
                 *           "id": "sada5641f3a21",
                 *           "name": "Call client and confirm address and product",
                 *           "status": "ASSIGNED",
                 *           "assignedTo": [
                 *             "11"
                 *           ]
                 *         },
                 *         {
                 *           "id": "sada5641f3a22",
                 *           "name": "Check product availability",
                 *           "status": "UNASSIGNED"
                 *         },
                 *         {
                 *           "id": "sada5641f3a23",
                 *           "name": "Send email confirming contact with the client",
                 *           "status": "SKIPPED"
                 *         }
                 *       ]
                 *     },
                 *     {
                 *       "id": "firstLevelStepId1",
                 *       "name": "Print and send catalog",
                 *       "status": "SKIPPED",
                 *       "dueDate": "2023-01-15T20:00:00"
                 *     }
                 *   ]
                 * }
                 */
                Components.Schemas.WorkflowExecution[];
                journey_actions?: Components.Schemas.JourneyActions[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOrgPortalConfig {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * 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 */ Components.Schemas.DomainSettings;
                design_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.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
                     */
                    Components.Schemas.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 */ Components.Schemas.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?: Components.Schemas.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?: Components.Schemas.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
                     */
                    Components.Schemas.EntityId /* uuid */;
                }[];
                /**
                 * Rules for editing an entity by a portal user
                 */
                entity_edit_rules?: {
                    slug?: /**
                     * URL-friendly identifier for the entity schema
                     * example:
                     * contact
                     */
                    Components.Schemas.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 */ Components.Schemas.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
                 */
                Components.Schemas.PortalId;
                /**
                 * Key of the portal config
                 * example:
                 * PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c
                 */
                portal_sk_v3?: string;
                origin?: /* Origin of the portal */ Components.Schemas.Origin;
                pages?: {
                    [name: string]: Components.Schemas.Page;
                };
                /**
                 * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id.
                 */
                global_blocks?: {
                    [name: string]: Components.Schemas.Block;
                };
                /**
                 * ID of the organization
                 * example:
                 * 12345
                 */
                id?: string;
                /**
                 * ID of the organization
                 * example:
                 * 12345
                 */
                organization_id?: string;
                /**
                 * Organization settings
                 */
                org_settings?: {
                    /**
                     * Canary feature flag
                     */
                    canary?: {
                        /**
                         * Enable/Disable the canary feature
                         */
                        enabled?: boolean;
                    };
                    /**
                     * Disable Advanced Usage Metrics
                     */
                    notracking?: {
                        /**
                         * Disable browser-side scripts that track advanced usage metrics
                         */
                        enabled?: boolean;
                    };
                };
                /**
                 * Feature flags for the portal
                 */
                feature_flags?: {
                    [name: string]: boolean;
                };
                /**
                 * Permissions granted to a portal user while accessing entities
                 */
                grants?: Components.Schemas.Grant[];
                /**
                 * SSO identity providers configured for the portal. Includes raw
                 * `oidc_config.client_secret` values so the admin UI can round-trip
                 * them. Customers are encouraged to reference secrets via env
                 * templates (`{{ env.VAR }}`) rather than embed raw values.
                 *
                 */
                identity_providers?: /**
                 * SSO identity provider configuration.
                 *
                 * Env var interpolation: only string fields under `oidc_config` and
                 * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
                 * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
                 * get resolved at runtime against the organization's environment.
                 *
                 * The following fields are used as literal values and MUST NOT contain
                 * template syntax: `slug`, `display_name`, `provider_type`, all keys and
                 * values under `attribute_mappings` (used as JSONPath-like accessors into
                 * token claims), and all keys and values under `entity_matching`.
                 *
                 */
                Components.Schemas.ProviderConfig[];
                certificate_details?: {
                    /**
                     * Status of the certificate
                     */
                    status?: "PENDING_VALIDATION" | "ISSUED" | "INACTIVE" | "EXPIRED" | "VALIDATION_TIMED_OUT" | "REVOKED" | "FAILED" | "PENDING_AUTO_RENEWAL";
                    /**
                     * Reason for failed certificate
                     * example:
                     * CAA_ERROR
                     */
                    failed_reason?: string;
                };
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOrgPortalConfigV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * 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 */ Components.Schemas.DomainSettings;
                design_id?: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.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
                     */
                    Components.Schemas.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 */ Components.Schemas.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?: Components.Schemas.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?: Components.Schemas.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
                     */
                    Components.Schemas.EntityId /* uuid */;
                }[];
                /**
                 * Rules for editing an entity by a portal user
                 */
                entity_edit_rules?: {
                    slug?: /**
                     * URL-friendly identifier for the entity schema
                     * example:
                     * contact
                     */
                    Components.Schemas.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 */ Components.Schemas.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
                 */
                Components.Schemas.PortalId;
                /**
                 * Key of the portal config
                 * example:
                 * PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c
                 */
                portal_sk_v3?: string;
                origin?: /* Origin of the portal */ Components.Schemas.Origin;
                pages?: {
                    [name: string]: Components.Schemas.Page;
                };
                /**
                 * Portal-level blocks shared across all pages (e.g. footer). Keyed by block id.
                 */
                global_blocks?: {
                    [name: string]: Components.Schemas.Block;
                };
                /**
                 * ID of the organization
                 * example:
                 * 12345
                 */
                id?: string;
                /**
                 * ID of the organization
                 * example:
                 * 12345
                 */
                organization_id?: string;
                /**
                 * Organization settings
                 */
                org_settings?: {
                    /**
                     * Canary feature flag
                     */
                    canary?: {
                        /**
                         * Enable/Disable the canary feature
                         */
                        enabled?: boolean;
                    };
                    /**
                     * Disable Advanced Usage Metrics
                     */
                    notracking?: {
                        /**
                         * Disable browser-side scripts that track advanced usage metrics
                         */
                        enabled?: boolean;
                    };
                };
                /**
                 * Feature flags for the portal
                 */
                feature_flags?: {
                    [name: string]: boolean;
                };
                /**
                 * Permissions granted to a portal user while accessing entities
                 */
                grants?: Components.Schemas.Grant[];
                /**
                 * SSO identity providers configured for the portal. Includes raw
                 * `oidc_config.client_secret` values so the admin UI can round-trip
                 * them. Customers are encouraged to reference secrets via env
                 * templates (`{{ env.VAR }}`) rather than embed raw values.
                 *
                 */
                identity_providers?: /**
                 * SSO identity provider configuration.
                 *
                 * Env var interpolation: only string fields under `oidc_config` and
                 * `mobile_oidc_config` (incl. their nested `metadata`) are passed through
                 * Liquid templating, so they may contain `{{ env.VAR }}` placeholders that
                 * get resolved at runtime against the organization's environment.
                 *
                 * The following fields are used as literal values and MUST NOT contain
                 * template syntax: `slug`, `display_name`, `provider_type`, all keys and
                 * values under `attribute_mappings` (used as JSONPath-like accessors into
                 * token claims), and all keys and values under `entity_matching`.
                 *
                 */
                Components.Schemas.ProviderConfig[];
                certificate_details?: {
                    /**
                     * Status of the certificate
                     */
                    status?: "PENDING_VALIDATION" | "ISSUED" | "INACTIVE" | "EXPIRED" | "VALIDATION_TIMED_OUT" | "REVOKED" | "FAILED" | "PENDING_AUTO_RENEWAL";
                    /**
                     * Reason for failed certificate
                     * example:
                     * CAA_ERROR
                     */
                    failed_reason?: string;
                };
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOrganizationSettings {
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.OrganizationSettings;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetOrganizationSettingsByDomain {
        namespace Parameters {
            /**
             * Domain of the portal
             * example:
             * ecp.dev.epilot.io
             */
            export type Domain = string;
        }
        export interface QueryParameters {
            domain: /**
             * Domain of the portal
             * example:
             * ecp.dev.epilot.io
             */
            Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.OrganizationSettings;
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalConfig {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfig;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalConfigByDomain {
        namespace Parameters {
            /**
             * Domain of the portal
             * example:
             * example.com
             */
            export type Domain = string;
        }
        export interface QueryParameters {
            domain: /**
             * Domain of the portal
             * example:
             * example.com
             */
            Parameters.Domain;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfig;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalConfigV3 {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type PortalId = string; // uuid
        }
        export interface PathParameters {
            portal_id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.PortalId /* uuid */;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfigV3;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalExtensions {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = Components.Schemas.Extension[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalExtensionsV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.Extension[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalPage {
        namespace Responses {
            export type $200 = Components.Schemas.Page;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalPageBlock {
        namespace Responses {
            export type $200 = Components.Schemas.Block;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalPageBlocks {
        namespace Responses {
            export type $200 = Components.Schemas.Block[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalPages {
        namespace Parameters {
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ContractId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            /**
             * example:
             * id,slug,description
             */
            export type Fields = string;
            /**
             * example:
             * slug=contracts
             */
            export type Filter = string;
        }
        export interface QueryParameters {
            fields?: /**
             * example:
             * id,slug,description
             */
            Parameters.Fields;
            filter?: /**
             * example:
             * slug=contracts
             */
            Parameters.Filter;
            contract_id?: Parameters.ContractId;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export type $200 = Components.Schemas.Page[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalUser {
        namespace Responses {
            export interface $200 {
                data?: /* The portal user entity */ Components.Schemas.PortalUser;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalUserEntity {
        export type RequestBody = Components.Schemas.EntityGetParams;
        namespace Responses {
            export type $200 = /* Response for entity get request */ Components.Schemas.EntityResponse;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalWidgets {
        namespace Parameters {
            export type ContractId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
            contract_id?: Parameters.ContractId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.UpsertPortalWidget;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPortalWidgetsV3 {
        namespace Parameters {
            export type ContractId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
            contract_id?: Parameters.ContractId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.UpsertPortalWidget;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPrices {
        namespace Parameters {
            export type AppId = string;
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ExtensionId = string;
            export type From = string; // date-time
            export type HookId = string;
            export type Interval = "PT15M" | "PT1H" | "P1D" | "P1M";
            export type MeterId = string;
            export type To = string; // date-time
        }
        export interface QueryParameters {
            app_id?: Parameters.AppId;
            extensionId: Parameters.ExtensionId;
            hookId?: Parameters.HookId;
            meter_id?: Parameters.MeterId;
            from: Parameters.From /* date-time */;
            to: Parameters.To /* date-time */;
            interval: Parameters.Interval;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                prices?: {
                    /**
                     * ISO 8601 timestamp of the price record.
                     */
                    timestamp: string; // date-time
                    /**
                     * Cost in cents, e.g. 1234 for 12,34 €.
                     * example:
                     * 1234
                     */
                    unit_amount: number;
                    /**
                     * ISO 4217:2015 currency.
                     * example:
                     * EUR
                     */
                    unit_amount_currency: string;
                    /**
                     * Cost in decimal format, e.g. "12.34".
                     * example:
                     * 12.34
                     */
                    unit_amount_decimal: string;
                    /**
                     * Optional price components.
                     */
                    components?: {
                        /**
                         * Market price in cents, e.g. 1000 for 10,00 €.
                         * example:
                         * 1000
                         */
                        auction_price_amount?: number;
                        /**
                         * Market price in decimal format, e.g. "10.00".
                         * example:
                         * 10.00
                         */
                        auction_price_amount_decimal?: string;
                        /**
                         * Taxes/Levies other than tax specified on the price level in cents, e.g. 50 for 00,50 €.
                         * example:
                         * 50
                         */
                        taxes_levies_amount?: number;
                        /**
                         * Taxes/Levies other than tax specified on the price level in decimal format, e.g. "0.50".
                         * example:
                         * 0.50
                         */
                        taxes_levies_amount_decimal?: string;
                        /**
                         * Fee associated with the source, e.g. Green Energy Certificate fee in cents, e.g. 50 for 00,50 €.
                         * example:
                         * 50
                         */
                        source_fee_amount?: number;
                        /**
                         * Fee associated with the source, e.g. Green Energy Certificate fee in decimal format, e.g. "0.50".
                         * example:
                         * 0.50
                         */
                        source_fee_amount_decimal?: string;
                        /**
                         * Fee associated with the transmission/distribution in cents, e.g. 100 for 1,00 €.
                         * example:
                         * 100
                         */
                        grid_fee_amount?: number;
                        /**
                         * Fee associated with the transmission/distribution in decimal format, e.g. "1.00".
                         * example:
                         * 1.00
                         */
                        grid_fee_amount_decimal?: string;
                        /**
                         * Margin in cents, e.g. 34 for 0,34 €.
                         * example:
                         * 34
                         */
                        margin_amount?: number;
                        /**
                         * Margin in decimal format, e.g. "0.34".
                         * example:
                         * 0.34
                         */
                        margin_amount_decimal?: string;
                    };
                    /**
                     * Is the tax (typically Value Added Tax) included in the amounts. Typically should NOT be included - exclusive of tax.
                     * example:
                     * exclusive
                     */
                    tax_behavior: "inclusive" | "exclusive";
                    /**
                     * Tax rate in percent, e.g. 19 for 19%.
                     * example:
                     * 19
                     */
                    tax_rate: number;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPages {
        namespace Parameters {
            /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            export type Domain = string;
            /**
             * example:
             * id,slug,description
             */
            export type Fields = string;
            /**
             * example:
             * schema=contract,slug=contracts
             */
            export type Filter = string;
        }
        export interface QueryParameters {
            domain: /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            Parameters.Domain;
            fields?: /**
             * example:
             * id,slug,description
             */
            Parameters.Fields;
            filter?: /**
             * example:
             * schema=contract,slug=contracts
             */
            Parameters.Filter;
        }
        namespace Responses {
            export type $200 = Components.Schemas.Page[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalConfig {
        namespace Parameters {
            /**
             * Organization ID
             * example:
             * 12324
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            org_id: /**
             * Organization ID
             * example:
             * 12324
             */
            Parameters.OrgId;
            origin: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfig;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalConfigV3 {
        namespace Parameters {
            /**
             * Organization ID
             * example:
             * 12324
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            org_id: /**
             * Organization ID
             * example:
             * 12324
             */
            Parameters.OrgId;
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfig;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalExtensionDetails {
        namespace Parameters {
            /**
             * Organization ID
             * example:
             * 12324
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            org_id: /**
             * Organization ID
             * example:
             * 12324
             */
            Parameters.OrgId;
            origin: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PublicExtensionCapabilities;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalExtensionDetailsV3 {
        namespace Parameters {
            export type Domain = string;
            /**
             * example:
             * 12324
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            org_id?: /**
             * example:
             * 12324
             */
            Parameters.OrgId;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export type $200 = Components.Schemas.PublicExtensionCapabilities;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalWidgets {
        namespace Parameters {
            /**
             * Organization ID
             * example:
             * 123
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            org_id: /**
             * Organization ID
             * example:
             * 123
             */
            Parameters.OrgId;
            origin: Parameters.Origin;
        }
        namespace Responses {
            export type $200 = Components.Schemas.UpsertPortalWidget;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicPortalWidgetsV3 {
        namespace Parameters {
            export type Domain = string;
            /**
             * example:
             * 12324
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            org_id?: /**
             * example:
             * 12324
             */
            Parameters.OrgId;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export type $200 = Components.Schemas.UpsertPortalWidget;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetPublicSchemasV3 {
        namespace Parameters {
            export type Domain = string;
            /**
             * example:
             * 12324
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            org_id?: /**
             * example:
             * 12324
             */
            Parameters.OrgId;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                schemas?: Components.Schemas.Schema[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetRecipientsToNotifyOnAutomation {
        export interface RequestBody {
            /**
             * Emails array that are part of the automation
             * example:
             * [
             *   "john@doe.com"
             * ]
             */
            emails: string[];
            /**
             * Email template ID that used on the automation
             */
            template_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            /**
             * Entity ID that is part of the automation
             */
            context_id: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Filtered recipients to notify
                 */
                recipients?: {
                    /**
                     * Email of the recipient
                     * example:
                     * john@doe.com
                     */
                    email: string;
                    /**
                     * ID of the recipient
                     */
                    recipient_id: /**
                     * Entity ID
                     * example:
                     * 5da0a718-c822-403d-9f5d-20d4584e0528
                     */
                    Components.Schemas.EntityId /* uuid */;
                }[];
                /**
                 * Reason to not notify the user
                 */
                message?: string;
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetRegistrationIdentifiers {
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * {
                 *   "contact": [
                 *     {
                 *       "label": "First name",
                 *       "name": "first_name",
                 *       "type": "string"
                 *     }
                 *   ],
                 *   "contract": [
                 *     {
                 *       "label": "Contract number",
                 *       "name": "contract_number",
                 *       "type": "string"
                 *     }
                 *   ]
                 * }
                 */
                data?: {
                    [name: string]: Components.Schemas.IdentifierAttribute[];
                };
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetResolvedExternalLink {
        namespace Parameters {
            export type ContactId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export interface QueryParameters {
            origin?: Parameters.Origin;
            contactId?: Parameters.ContactId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.ExternalLink;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetResolvedExternalLinkV3 {
        namespace Parameters {
            export type ContactId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            contactId?: Parameters.ContactId;
        }
        namespace Responses {
            export type $200 = Components.Schemas.ExternalLink;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetResolvedSeamlessLink {
        namespace Parameters {
            export type AppId = string;
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ExtensionId = string;
            export type LinkId = string;
        }
        export interface QueryParameters {
            app_id?: Parameters.AppId;
            extension_id: Parameters.ExtensionId;
            link_id: Parameters.LinkId;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Resolved link
                 */
                link?: string;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetSSOProvider {
        namespace Parameters {
            export type Domain = string;
            /**
             * example:
             * 123
             */
            export type OrgId = string;
            export type Origin = "END_CUSTOMER_PORTAL" | "INSTALLER_PORTAL";
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
            export type ProviderSlug = /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
        }
        export interface PathParameters {
            provider_slug: Parameters.ProviderSlug;
        }
        export interface QueryParameters {
            org_id?: /**
             * example:
             * 123
             */
            Parameters.OrgId;
            origin?: Parameters.Origin;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export type $200 = Components.Schemas.ProviderPublicConfig;
            export type $400 = Components.Responses.InvalidRequest;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetSchemas {
        namespace Responses {
            export interface $200 {
                schemas?: Components.Schemas.Schema[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetSchemasByDomain {
        namespace Parameters {
            /**
             * Domain of the portal
             * example:
             * ecp.dev.epilot.io
             */
            export type Domain = string;
        }
        export interface QueryParameters {
            domain: /**
             * Domain of the portal
             * example:
             * ecp.dev.epilot.io
             */
            Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                schemas?: Components.Schemas.Schema[];
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetSearchResultsForOpportunities {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 1000
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 1000
             */
            Parameters.Size;
        }
        export interface RequestBody {
            addresses?: string[];
            customers?: string[];
            purposes?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */[];
            workflows?: any[];
        }
        namespace Responses {
            export interface $200 {
                data?: /* The opportunity entity */ Components.Schemas.Opportunity[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetSearchableAttributesForOpportunities {
        namespace Parameters {
            /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            export type From = number;
            /**
             * Size of the search results
             * example:
             * 1000
             */
            export type Size = number;
        }
        export interface QueryParameters {
            from?: /**
             * Initial offset to set for the search results
             * example:
             * 0
             */
            Parameters.From;
            size?: /**
             * Size of the search results
             * example:
             * 1000
             */
            Parameters.Size;
        }
        namespace Responses {
            export interface $200 {
                data?: /* The opportunity entity */ Components.Schemas.Opportunity[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetUserEntryPoint {
        namespace Parameters {
            /**
             * Domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            export type Domain = string;
            /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            export type Email = string;
        }
        export interface QueryParameters {
            email: /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            Parameters.Email;
            domain: /**
             * Domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the user exists in the portal
                 * example:
                 * true
                 */
                user_exists: boolean;
                /**
                 * The entry point for the user
                 */
                entry_point: "PASSWORD" | "SSO";
                /**
                 * The SSO providers for the user
                 */
                preferred_sso_providers?: /**
                 * URL-friendly slug to use as organization-unique identifier for Provider
                 * example:
                 * office-365-login
                 */
                Components.Schemas.ProviderSlug /* [0-9a-z-]+ */[];
                /**
                 * Whether the user is soft deleted
                 * example:
                 * true
                 */
                is_soft_deleted?: boolean;
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetValidSecondaryAttributes {
        namespace Responses {
            export interface $200 {
                data?: {
                    /**
                     * Name of the secondary attribute
                     * example:
                     * first_name
                     */
                    name?: string;
                    /**
                     * Type of the secondary attribute
                     * example:
                     * string
                     */
                    type?: string;
                }[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace GetVisualizationMetadata {
        namespace Parameters {
            export type AppId = string;
            export type ContextEntities = /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            export type ExtensionId = string;
        }
        export interface QueryParameters {
            app_id: Parameters.AppId;
            extensionId: Parameters.ExtensionId;
            context_entities?: Parameters.ContextEntities;
        }
        namespace Responses {
            export type $200 = /**
             * Runtime metadata describing how a visualization should be rendered for a given portal context. Returned by `GET /v2/portal/visualization/metadata`.
             *
             */
            Components.Schemas.VisualizationMetadata;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace InterpolatePortalPages {
        export interface RequestBody {
            /**
             * The pages to interpolate
             */
            pages: Components.Schemas.Page[];
            context_entities?: /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
            /**
             * When true, evaluates targeting conditions and annotates each page/block visibility with _targeting_status ('visible' | 'hidden' | 'no_targeting'). Blocks and pages are never removed — for preview/builder use only.
             */
            evaluate_targeting?: boolean;
        }
        namespace Responses {
            export type $200 = Components.Schemas.Page[];
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace InvitePartner {
        export interface RequestBody {
            /**
             * Email address of the partner to invite
             */
            email: string;
            represents_contact_list?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */[];
            /**
             * Additional contact entity fields to set when creating the contact for the invited user.
             * These are mapped directly to contact entity attributes (e.g. first_name, last_name, phone).
             * Values can be strings or arrays of strings (for multiselect attributes).
             *
             */
            contact_data?: {
                [name: string]: string | string[];
            };
            /**
             * Additional portal user entity fields to set when creating the portal user for the invited user.
             * These are mapped directly to portal_user entity attributes.
             * Values can be strings or arrays of strings (for multiselect attributes).
             *
             */
            portal_user_data?: {
                [name: string]: string | string[];
            };
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * User invited successfully
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ListAllPortalConfigs {
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.PortalConfigV3[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ListBusinessPartners {
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.BusinessPartnerItem[];
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace LoginToPortalAsUser {
        export interface RequestBody {
            /**
             * The email address of the user to log in as
             * example:
             * portal-customer@email.com
             */
            email?: string;
            origin?: /* Origin of the portal */ Components.Schemas.Origin;
            /**
             * The portal ID to look up the portal config. When provided, takes precedence over origin.
             */
            portal_id?: string;
            /**
             * Portal domain for identification. Alternative to portal_id or origin.
             */
            domain?: string;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * A generated login_as_token to log in to a portal impersonating a user.
                 */
                login_as_token?: string;
            }
        }
    }
    namespace NotifyMLoginInterestChange {
        namespace Parameters {
            export type ClientId = string;
            export type UserId = string;
        }
        export interface PathParameters {
            client_id: Parameters.ClientId;
            user_id: Parameters.UserId;
        }
        export interface RequestBody {
            [name: string]: any;
            /**
             * Resource ID
             */
            resource_id?: string;
            /**
             * Resource type
             */
            user_id?: string;
            /**
             * Interest tag
             */
            interest_tag?: string;
            /**
             * Action
             */
            action?: string;
            resource?: {
                [name: string]: any;
                /**
                 * Resource ID
                 */
                resource_id?: string;
                /**
                 * Description
                 */
                description?: string | null;
                /**
                 * Contact
                 */
                contact?: string;
                /**
                 * Kind
                 */
                kind?: string;
            };
        }
        namespace Responses {
            export interface $200 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace PortalProxyExecute {
        export interface RequestBody {
            /**
             * Integration ID containing the managed-call use case
             */
            integration_id: string; // uuid
            /**
             * Use case slug (acts as the RPC method name)
             */
            use_case_slug: string;
            /**
             * Input data for the managed-call operation
             */
            payload?: {
                [name: string]: any;
            };
        }
        namespace Responses {
            export interface $200 {
                success: boolean;
                /**
                 * Managed-call response payload. Shape is defined by the use
                 * case's JSONata response_mapping; if no mapping is
                 * configured the raw external API response is returned.
                 *
                 */
                data?: {
                    [name: string]: any;
                };
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace PostOrderAcceptance {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export type RequestBody = Components.Schemas.AcceptanceDecision;
        namespace Responses {
            export interface $200 {
                data?: /* The order entity */ Components.Schemas.Order;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $409 = Components.Responses.Conflict;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace PrepareVisualizationExport {
        export interface RequestBody {
            /**
             * App ID providing the dataExport hook.
             */
            app_id: string;
            /**
             * Extension ID providing the dataExport hook.
             */
            extension_id: string;
            /**
             * Optional Hook ID. If omitted, the only `dataExport` hook on the extension is used; if the extension has multiple `dataExport` hooks, this becomes required.
             */
            hook_id?: string;
            /**
             * Optional start date for the export window (ISO 8601 format).
             */
            from?: string; // date-time
            /**
             * Optional end date for the export window (ISO 8601 format).
             */
            to?: string; // date-time
            context_entities?: /**
             * Additional entities to include in the context for variable interpolation. Portal User and Contact entities are automatically part of the context.
             * example:
             * [
             *   {
             *     "entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
             *     "entity_schema": "contract"
             *   }
             * ]
             */
            Components.Schemas.ContextEntities;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * URL the client can use to download the exported file. May be a pre-signed or short-lived URL.
                 */
                download_url: string;
                /**
                 * Suggested filename for the exported file.
                 */
                filename?: string;
                /**
                 * MIME type of the exported file.
                 * example:
                 * text/csv
                 */
                content_type?: string;
                /**
                 * Optional expiration timestamp for the download URL.
                 */
                expires_at?: string; // date-time
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace PutPortalConfig {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type PortalId = string; // uuid
        }
        export interface PathParameters {
            portal_id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.PortalId /* uuid */;
        }
        export type RequestBody = Components.Schemas.PortalConfigV3;
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfigV3;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ReplaceECPTemplateVariables {
        export interface RequestBody {
            /**
             * ID of the template
             */
            template_id?: /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            entity_context?: {
                [name: string]: {
                    /**
                     * ID of the entity
                     */
                    _id?: /**
                     * Entity ID
                     * example:
                     * 5da0a718-c822-403d-9f5d-20d4584e0528
                     */
                    Components.Schemas.EntityId /* uuid */;
                    is_main_entity?: boolean;
                };
            };
        }
        namespace Responses {
            export interface $200 {
                customerPortal?: {
                    /**
                     * example:
                     * https://end-customer-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com
                     */
                    invitationLink?: string;
                    /**
                     * example:
                     * https://end-customer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    newDocumentLink?: string;
                    /**
                     * example:
                     * https://end-customer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    entityLink?: string;
                    /**
                     * example:
                     * [
                     *   "john@doe.com",
                     *   "mary@doe.com"
                     * ]
                     */
                    userEmailsOnEntity?: string[];
                };
                installerPortal?: {
                    /**
                     * example:
                     * https://installer-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com
                     */
                    invitationLink?: string;
                    /**
                     * example:
                     * https://installer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    newDocumentLink?: string;
                    /**
                     * example:
                     * https://installer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    entityLink?: string;
                    /**
                     * example:
                     * [
                     *   "peter@doe.com",
                     *   "jane@doe.com"
                     * ]
                     */
                    userEmailsOnEntity?: string[];
                };
                portalUser?: {
                    /**
                     * example:
                     * https://employee-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com
                     */
                    invitationLink?: string;
                    /**
                     * example:
                     * https://employee-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    newDocumentLink?: string;
                    /**
                     * example:
                     * https://employee-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b
                     */
                    entityLink?: string;
                    /**
                     * example:
                     * [
                     *   "peter@doe.com",
                     *   "jane@doe.com"
                     * ]
                     */
                    userEmailsOnEntity?: string[];
                };
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ResendConfirmationEmail {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                message?: "Confirmation email sent successfully.";
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ResendPartnerInvitation {
        namespace Parameters {
            /**
             * ID of the partner to resend invitation to
             */
            export type PartnerId = string;
        }
        export interface PathParameters {
            partner_id: /* ID of the partner to resend invitation to */ Parameters.PartnerId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * Partner invitation resent successfully
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace RevokePartner {
        namespace Parameters {
            /**
             * ID of the partner to revoke from the portal
             */
            export type PartnerId = string;
        }
        export interface PathParameters {
            partner_id: /* ID of the partner to revoke from the portal */ Parameters.PartnerId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * Partner revoked from portal successfully
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace RevokeToken {
        export interface RequestBody {
            /**
             * Refresh Token to be revoked
             * example:
             * eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
             */
            refresh_token: string;
        }
        namespace Responses {
            export interface $200 {
                message?: "Token revoked successfully";
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SaveEntityFile {
        export type RequestBody = Components.Schemas.SaveEntityFile;
        namespace Responses {
            export interface $201 {
                createdFiles?: /* The file entity */ Components.Schemas.File[];
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SavePortalFiles {
        export type RequestBody = Components.Schemas.SavePortalFile;
        namespace Responses {
            export interface $201 {
                createdFiles?: /* The file entity */ Components.Schemas.File[];
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SavePortalFilesV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        export type RequestBody = Components.Schemas.SavePortalFile;
        namespace Responses {
            export interface $201 {
                createdFiles?: /* The file entity */ Components.Schemas.File[];
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SearchPaymentRelationsInEntities {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                results?: Components.Schemas.EntityItem[];
                /**
                 * Total number of files for entities found
                 * example:
                 * 50
                 */
                hits?: number;
            }
        }
    }
    namespace SearchPortalUserEntities {
        export type RequestBody = Components.Schemas.EntitySearchParams;
        namespace Responses {
            export type $200 = /* Response for entity search requests */ Components.Schemas.EntityResponseWithHits | /* Response for entity search requests, but with groupings */ Components.Schemas.EntityResponseGroupedWithHits;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SsoCallback {
        namespace Parameters {
            /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            export type Domain = string;
        }
        export interface QueryParameters {
            domain?: /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            Parameters.Domain;
        }
        export type RequestBody = Components.Schemas.SSOCallbackRequest;
        namespace Responses {
            export type $200 = Components.Schemas.SSOCallbackResponse;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SsoLogin {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type ContactId = string; // uuid
            /**
             * example:
             * 123
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
            org_id: /**
             * example:
             * 123
             */
            Parameters.OrgId;
            contact_id?: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.ContactId /* uuid */;
        }
        export interface RequestBody {
            provider_slug?: /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
        }
        namespace Responses {
            export interface $200 {
                token?: Components.Schemas.SSOLoginToken;
                /**
                 * The email address of the user to log in as
                 * example:
                 * portal-customer@email.com
                 */
                email?: string;
            }
        }
    }
    namespace SsoLoginV3 {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type ContactId = string; // uuid
            export type Domain = string;
            /**
             * example:
             * 123
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id?: Parameters.PortalId;
            org_id?: /**
             * example:
             * 123
             */
            Parameters.OrgId;
            domain?: Parameters.Domain;
            contact_id?: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.ContactId /* uuid */;
        }
        export interface RequestBody {
            provider_slug?: /**
             * URL-friendly slug to use as organization-unique identifier for Provider
             * example:
             * office-365-login
             */
            Components.Schemas.ProviderSlug /* [0-9a-z-]+ */;
        }
        namespace Responses {
            export interface $200 {
                token?: Components.Schemas.SSOLoginToken;
                /**
                 * The email address of the user to log in as
                 * example:
                 * portal-customer@email.com
                 */
                email?: string;
            }
        }
    }
    namespace SsoRedirect {
        namespace Parameters {
            /**
             * example:
             * https://customer-portal.com
             */
            export type WebUri = string;
        }
        export interface QueryParameters {
            web_uri: /**
             * example:
             * https://customer-portal.com
             */
            Parameters.WebUri;
        }
        export interface RequestBody {
            /**
             * The code received from the external SSO provider
             * example:
             * 123456
             */
            code?: string;
            /**
             * The state received from the external SSO provider
             * example:
             * 123456
             */
            state?: string;
        }
        namespace Responses {
            export interface $301 {
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace SwapPortalConfig {
        export interface RequestBody {
            source_portal_id: /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
            target_portal_id: /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
            /**
             * Items to swap
             */
            items_to_swap?: Components.Schemas.SwappableConfig[];
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * Domain and users swapped successfully.
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace TrackFileDownloaded {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        namespace Responses {
            export interface $200 {
                file?: /* The file entity */ Components.Schemas.FileItem;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace TriggerEntityAccessEvent {
        namespace Parameters {
            export type EntityId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            /**
             * Origin of the portal
             */
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
            /**
             * example:
             * contract
             */
            export type Schema = string;
        }
        export interface PathParameters {
            schema: /**
             * example:
             * contract
             */
            Parameters.Schema;
        }
        export interface QueryParameters {
            entity_id?: Parameters.EntityId;
            origin: /* Origin of the portal */ Parameters.Origin;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Event ID
                 */
                eventId?: string;
            }
        }
    }
    namespace TriggerEntityAccessEventV3 {
        namespace Parameters {
            export type Domain = string;
            export type EntityId = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
            /**
             * example:
             * contract
             */
            export type Schema = string;
        }
        export interface PathParameters {
            schema: /**
             * example:
             * contract
             */
            Parameters.Schema;
        }
        export interface QueryParameters {
            entity_id?: Parameters.EntityId;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Event ID
                 */
                eventId?: string;
            }
        }
    }
    namespace UpdateCampaignPortalBlockStatus {
        namespace Parameters {
            export type CampaignId = string;
        }
        export interface PathParameters {
            campaign_id: Parameters.CampaignId;
        }
        export interface RequestBody {
            /**
             * The status to set for the campaign portal block
             */
            status: "seen" | "dismissed" | "clicked";
            /**
             * Array of entity references with their schemas
             */
            entity_refs: {
                entity_id: /**
                 * Entity ID
                 * example:
                 * 5da0a718-c822-403d-9f5d-20d4584e0528
                 */
                Components.Schemas.EntityId /* uuid */;
                /**
                 * Schema of the entity (e.g., contact, contract, opportunity, order, meter)
                 */
                entity_schema: string;
            }[];
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the operation completed successfully
                 * example:
                 * true
                 */
                success: boolean;
                /**
                 * Number of entities successfully updated
                 * example:
                 * 2
                 */
                updated: number;
                /**
                 * Number of entities that failed to update
                 * example:
                 * 0
                 */
                failed: number;
                /**
                 * Total number of entities processed
                 * example:
                 * 2
                 */
                total: number;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateContact {
        export type RequestBody = Components.Schemas.Entity;
        namespace Responses {
            export interface $200 {
                data?: /* The mapped contact of the portal user */ Components.Schemas.Contact;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.ForbiddenByRule;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateContract {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export type RequestBody = Components.Schemas.Entity;
        namespace Responses {
            export interface $200 {
                data?: /* The contract entity */ Components.Schemas.Contract;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.ForbiddenByRule;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateNotificationsStatus {
        export interface RequestBody {
            notifications: {
                /**
                 * ID of the notification
                 */
                id: string;
                /**
                 * The status to set for the notification
                 */
                status: "read" | "important";
            }[];
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Message indicating the status of the notifications
                 * example:
                 * Notifications status updated successfully.
                 */
                message?: string;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateOpportunity {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export type RequestBody = Components.Schemas.Entity;
        namespace Responses {
            export interface $200 {
                data?: /* The opportunity entity */ Components.Schemas.Opportunity;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateOrder {
        namespace Parameters {
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
        }
        export interface PathParameters {
            id: Parameters.Id;
        }
        export type RequestBody = Components.Schemas.Entity;
        namespace Responses {
            export interface $200 {
                data?: /* The order entity */ Components.Schemas.Order;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdatePortalPage {
        export type RequestBody = Components.Schemas.PageRequest;
        namespace Responses {
            export type $200 = Components.Schemas.Page;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdatePortalPageBlock {
        export type RequestBody = Components.Schemas.BlockRequest;
        namespace Responses {
            export type $200 = Components.Schemas.Block;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $404 = Components.Responses.NotFound;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdatePortalUser {
        export type RequestBody = Components.Schemas.Entity;
        namespace Responses {
            export interface $200 {
                data?: /* The portal user entity */ Components.Schemas.PortalUser;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdatePortalUserEmail {
        export interface RequestBody {
            /**
             * New email address of the portal user
             * example:
             * john@doe.com
             */
            email: string;
            /**
             * Password of the portal user for confirmation
             */
            password: string;
        }
        namespace Responses {
            export interface $200 {
                message?: "You will receive a confirmation mail soon on your updated email address.";
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpdateWorkflowStepAsDone {
        namespace Parameters {
            /**
             * ID of a step
             * example:
             * q1d6vcbsqvn
             */
            export type StepId = string;
            /**
             * ID of a workflow
             * example:
             * 0bjwcxc827t
             */
            export type WorkflowId = string;
        }
        export interface PathParameters {
            workflow_id: /**
             * ID of a workflow
             * example:
             * 0bjwcxc827t
             */
            Parameters.WorkflowId;
            step_id: /**
             * ID of a step
             * example:
             * q1d6vcbsqvn
             */
            Parameters.StepId;
        }
        namespace Responses {
            export type $200 = /**
             * example:
             * {
             *   "startedTime": "2024-01-12T13:29:55.942Z",
             *   "requirements": [],
             *   "created": "2023-10-20T17:41:10.256Z",
             *   "executionType": "MANUAL",
             *   "assignedToInProgress": "-",
             *   "sectionId": "lzxsw2sblj7",
             *   "type": "STEP",
             *   "entityRefId": "q1d6vcbsqvn",
             *   "assignedTo": [
             *     "10014532"
             *   ],
             *   "lastUpdated": "2024-01-13T05:18:43.838Z",
             *   "ecp": {},
             *   "userIds": [],
             *   "name": "Hinterlege den vereinbarten LIC Termin",
             *   "id": "q1d6vcbsqvn",
             *   "definitionId": "9UjHKq",
             *   "status": "COMPLETED",
             *   "manuallyCreated": false,
             *   "enabled": true,
             *   "completedTime": "2024-01-13T05:18:43.827Z"
             * }
             */
            Components.Schemas.WorkflowStep;
        }
    }
    namespace UploadMeterReadingPhoto {
        export type RequestBody = Components.Schemas.MeterReadingPhoto;
        namespace Responses {
            export interface $200 {
                data?: Components.Schemas.MeterReadingPhotoData;
            }
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpsertEmailTemplates {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        export type RequestBody = /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
        namespace Responses {
            export interface $200 {
                message: "Email Templates upserted successfully";
                emailTemplates: /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpsertEmailTemplatesByPortalId {
        namespace Parameters {
            export type PortalId = string;
        }
        export interface PathParameters {
            portal_id: Parameters.PortalId;
        }
        export type RequestBody = /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
        namespace Responses {
            export interface $200 {
                message: "Email Templates upserted successfully";
                emailTemplates: /* Email templates used for authentication and internal processes */ Components.Schemas.EmailTemplates;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpsertPortal {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
            export type PortalId = string;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
            portal_id?: Parameters.PortalId;
        }
        export type RequestBody = Components.Schemas.UpsertPortalConfig;
        namespace Responses {
            export type $200 = Components.Schemas.PortalConfig;
            export type $201 = Components.Schemas.PortalConfig;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpsertPortalWidget {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        export type RequestBody = Components.Schemas.UpsertPortalWidget;
        namespace Responses {
            export type $201 = Components.Schemas.UpsertPortalWidget;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UpsertPortalWidgetV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        export type RequestBody = Components.Schemas.UpsertPortalWidget;
        namespace Responses {
            export type $201 = Components.Schemas.UpsertPortalWidget;
            export type $400 = Components.Responses.InvalidRequest;
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UserExists {
        namespace Parameters {
            /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            export type Email = string;
            /**
             * Organization ID
             * example:
             * 123
             */
            export type OrgId = string;
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            email: /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            Parameters.Email;
            org_id: /**
             * Organization ID
             * example:
             * 123
             */
            Parameters.OrgId;
            origin?: Parameters.Origin;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the user exists in the portal
                 * example:
                 * true
                 */
                exists: boolean;
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace UserExistsV3 {
        namespace Parameters {
            export type Domain = string;
            /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            export type Email = string;
            /**
             * Organization ID (required if domain is not provided)
             * example:
             * 123
             */
            export type OrgId = string;
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            email: /**
             * Email Address of the portal user
             * example:
             * user@example.com
             */
            Parameters.Email;
            org_id?: /**
             * Organization ID (required if domain is not provided)
             * example:
             * 123
             */
            Parameters.OrgId;
            portal_id?: Parameters.PortalId;
            domain?: Parameters.Domain;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether the user exists in the portal
                 * example:
                 * true
                 */
                exists: boolean;
            }
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace V2PortalBillingAccounts$Id {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type Id = string; // uuid
        }
        export interface PathParameters {
            id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.Id /* uuid */;
        }
    }
    namespace V2PortalPages {
        namespace Parameters {
            /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            export type Domain = string;
        }
        export interface QueryParameters {
            domain: /**
             * The domain of the portal
             * example:
             * customer-portal.epilot.io
             */
            Parameters.Domain;
        }
    }
    namespace V2PortalPages$Id {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type Id = string; // uuid
        }
        export interface PathParameters {
            id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.Id /* uuid */;
        }
    }
    namespace V2PortalPages$IdBlocks {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type Id = string; // uuid
        }
        export interface PathParameters {
            id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.Id /* uuid */;
        }
    }
    namespace V2PortalPages$IdBlocks$BlockId {
        namespace Parameters {
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type BlockId = string; // uuid
            /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            export type Id = string; // uuid
        }
        export interface PathParameters {
            id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.Id /* uuid */;
            block_id: /**
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Parameters.BlockId /* uuid */;
        }
    }
    namespace ValidateCaaRecords {
        namespace Parameters {
            export type Origin = /* Origin of the portal */ Components.Schemas.Origin;
        }
        export interface QueryParameters {
            origin: Parameters.Origin;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether to retry the validation to continue the domain setup
                 */
                retry?: boolean;
                /**
                 * Message of the validation
                 */
                message?: string;
                /**
                 * Whether the DNS is configured from the customer side
                 */
                isDNSConfigured?: boolean;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ValidateCaaRecordsV3 {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * Whether to retry the validation to continue the domain setup
                 */
                retry?: boolean;
                /**
                 * Message of the validation
                 */
                message?: string;
                /**
                 * Whether the DNS is configured from the customer side
                 */
                isDNSConfigured?: boolean;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace ValidateCadenceEntityEditRules {
        namespace Parameters {
            export type Attribute = string;
            export type Id = /**
             * Entity ID
             * example:
             * 5da0a718-c822-403d-9f5d-20d4584e0528
             */
            Components.Schemas.EntityId /* uuid */;
            export type Slug = /**
             * URL-friendly identifier for the entity schema
             * example:
             * contact
             */
            Components.Schemas.EntitySlug;
        }
        export interface PathParameters {
            slug: Parameters.Slug;
            id: Parameters.Id;
        }
        export interface QueryParameters {
            attribute?: Parameters.Attribute;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * example:
                 * false
                 */
                isBlockedByRules?: boolean;
                failedRule?: Components.Schemas.EntityEditRule;
            }
        }
    }
    namespace ValidateToken {
        namespace Responses {
            export interface $204 {
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
    namespace VerifyDns {
        namespace Parameters {
            export type PortalId = /**
             * ID of the portal
             * example:
             * 453ad7bf-86d5-46c8-8252-bcc868df5e3c
             */
            Components.Schemas.PortalId;
        }
        export interface QueryParameters {
            portal_id: Parameters.PortalId;
        }
        namespace Responses {
            export interface $200 {
                /**
                 * The status of the custom domain verification
                 */
                domain_status?: "PENDING" | "SUCCEED";
                /**
                 * A message describing the result
                 */
                message?: string;
            }
            export type $401 = Components.Responses.Unauthorized;
            export type $403 = Components.Responses.Forbidden;
            export type $500 = Components.Responses.InternalServerError;
        }
    }
}


export interface OperationMethods {
  /**
   * upsertPortal - upsertPortal
   * 
   * Upserts the settings for a portal of an organization.
   */
  'upsertPortal'(
    parameters?: Parameters<Paths.UpsertPortal.QueryParameters> | null,
    data?: Paths.UpsertPortal.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpsertPortal.Responses.$200 | Paths.UpsertPortal.Responses.$201>
  /**
   * createUser - createUser
   * 
   * Registers a portal user
   */
  'createUser'(
    parameters?: Parameters<Paths.CreateUser.QueryParameters> | null,
    data?: Paths.CreateUser.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreateUser.Responses.$201>
  /**
   * createUserV3 - createUserV3
   * 
   * Registers a portal user.
   * Supports two identification methods:
   * 1. Using portal_id
   * 2. Using domain
   * 
   */
  'createUserV3'(
    parameters?: Parameters<Paths.CreateUserV3.QueryParameters> | null,
    data?: Paths.CreateUserV3.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreateUserV3.Responses.$201>
  /**
   * validateToken - validateToken
   * 
   * Validates Portal Token is valid. Pass the token via Authorization Header.
   */
  'validateToken'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ValidateToken.Responses.$204>
  /**
   * revokeToken - revokeToken
   * 
   * Revokes all of the access tokens for the given Refresh Token.
   */
  'revokeToken'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.RevokeToken.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.RevokeToken.Responses.$200>
  /**
   * getPortalConfigByDomain - getPortalConfigByDomain
   * 
   * Retrieves the portal configuration by domain.
   */
  'getPortalConfigByDomain'(
    parameters?: Parameters<Paths.GetPortalConfigByDomain.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalConfigByDomain.Responses.$200>
  /**
   * getPortalConfig - getPortalConfig
   * 
   * Retrieves the portal configuration.
   */
  'getPortalConfig'(
    parameters?: Parameters<Paths.GetPortalConfig.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalConfig.Responses.$200>
  /**
   * deletePortal - deletePortal
   * 
   * Deletes the portal.
   */
  'deletePortal'(
    parameters?: Parameters<Paths.DeletePortal.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeletePortal.Responses.$204>
  /**
   * getPortalExtensions - getPortalExtensions
   * 
   * Retrieves the installed portal extensions.
   */
  'getPortalExtensions'(
    parameters?: Parameters<Paths.GetPortalExtensions.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalExtensions.Responses.$200>
  /**
   * getPublicPortalExtensionDetails - getPublicPortalExtensionDetails
   * 
   * Get public extension details shown to end customers and configuring users.
   */
  'getPublicPortalExtensionDetails'(
    parameters?: Parameters<Paths.GetPublicPortalExtensionDetails.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalExtensionDetails.Responses.$200>
  /**
   * getPortalExtensionsV3 - getPortalExtensionsV3
   * 
   * Retrieves the installed portal extensions.
   */
  'getPortalExtensionsV3'(
    parameters?: Parameters<Paths.GetPortalExtensionsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalExtensionsV3.Responses.$200>
  /**
   * getPublicPortalExtensionDetailsV3 - getPublicPortalExtensionDetailsV3
   * 
   * Get public extension details shown to end customers and configuring users.
   * Supports two identification methods:
   * 1. Using org_id + portal_id
   * 2. Using domain
   * 
   */
  'getPublicPortalExtensionDetailsV3'(
    parameters?: Parameters<Paths.GetPublicPortalExtensionDetailsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalExtensionDetailsV3.Responses.$200>
  /**
   * getConsumption - Get Consumption
   * 
   * Get energy consumption data between a given time period.
   */
  'getConsumption'(
    parameters?: Parameters<Paths.GetConsumption.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetConsumption.Responses.$200>
  /**
   * prepareVisualizationExport - Prepare Visualization Export
   * 
   * 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`).
   * 
   */
  'prepareVisualizationExport'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.PrepareVisualizationExport.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.PrepareVisualizationExport.Responses.$200>
  /**
   * getVisualizationMetadata - Get Visualization Metadata
   * 
   * 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.
   * 
   */
  'getVisualizationMetadata'(
    parameters?: Parameters<Paths.GetVisualizationMetadata.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetVisualizationMetadata.Responses.$200>
  /**
   * getCosts - Get Costs
   * 
   * Get energy cost data between a given time period.
   */
  'getCosts'(
    parameters?: Parameters<Paths.GetCosts.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetCosts.Responses.$200>
  /**
   * getPrices - Get Prices
   * 
   * Get energy prices data between a given time period.
   */
  'getPrices'(
    parameters?: Parameters<Paths.GetPrices.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPrices.Responses.$200>
  /**
   * getExternalLinks - getExternalLinks
   * 
   * Retrieves the portal configuration external links.
   */
  'getExternalLinks'(
    parameters?: Parameters<Paths.GetExternalLinks.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetExternalLinks.Responses.$200>
  /**
   * getResolvedExternalLink - getResolvedExternalLink
   * 
   * Retrieves a resolved portal external link. Use /v2/portal/resolve:seamless-link/{id} instead.
   */
  'getResolvedExternalLink'(
    parameters?: Parameters<Paths.GetResolvedExternalLink.QueryParameters & Paths.GetResolvedExternalLink.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetResolvedExternalLink.Responses.$200>
  /**
   * getExternalLinksV3 - getExternalLinksV3
   * 
   * Retrieves the portal configuration external links.
   */
  'getExternalLinksV3'(
    parameters?: Parameters<Paths.GetExternalLinksV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetExternalLinksV3.Responses.$200>
  /**
   * getResolvedExternalLinkV3 - getResolvedExternalLinkV3
   * 
   * Retrieves a resolved portal external link. Use /v2/portal/resolve:seamless-link/{id} instead.
   */
  'getResolvedExternalLinkV3'(
    parameters?: Parameters<Paths.GetResolvedExternalLinkV3.QueryParameters & Paths.GetResolvedExternalLinkV3.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetResolvedExternalLinkV3.Responses.$200>
  /**
   * getResolvedSeamlessLink - getResolvedSeamlessLink
   * 
   * Retrieves a resolved seamless portal link.
   */
  'getResolvedSeamlessLink'(
    parameters?: Parameters<Paths.GetResolvedSeamlessLink.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetResolvedSeamlessLink.Responses.$200>
  /**
   * getPublicPortalConfig - getPublicPortalConfig
   * 
   * Retrieves the public portal configuration.
   */
  'getPublicPortalConfig'(
    parameters?: Parameters<Paths.GetPublicPortalConfig.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalConfig.Responses.$200>
  /**
   * getOrgPortalConfig - getOrgPortalConfig
   * 
   * Retrieves the portal configuration for the organization.
   */
  'getOrgPortalConfig'(
    parameters?: Parameters<Paths.GetOrgPortalConfig.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOrgPortalConfig.Responses.$200>
  /**
   * getPublicPortalConfigV3 - getPublicPortalConfigV3
   * 
   * Retrieves the public portal configuration.
   */
  'getPublicPortalConfigV3'(
    parameters?: Parameters<Paths.GetPublicPortalConfigV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalConfigV3.Responses.$200>
  /**
   * getOrgPortalConfigV3 - getOrgPortalConfigV3
   * 
   * Retrieves the portal configuration for the organization.
   */
  'getOrgPortalConfigV3'(
    parameters?: Parameters<Paths.GetOrgPortalConfigV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOrgPortalConfigV3.Responses.$200>
  /**
   * getAllPortalConfigs - getAllPortalConfigs
   * 
   * Retrieves all portal configurations.
   */
  'getAllPortalConfigs'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllPortalConfigs.Responses.$200>
  /**
   * getEmailTemplates - getEmailTemplates
   * 
   * Retrieves the email templates of a portal
   */
  'getEmailTemplates'(
    parameters?: Parameters<Paths.GetEmailTemplates.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetEmailTemplates.Responses.$200>
  /**
   * upsertEmailTemplates - upsertEmailTemplates
   * 
   * Upserts the email templates of a portal
   */
  'upsertEmailTemplates'(
    parameters?: Parameters<Paths.UpsertEmailTemplates.QueryParameters> | null,
    data?: Paths.UpsertEmailTemplates.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpsertEmailTemplates.Responses.$200>
  /**
   * getEmailTemplatesByPortalId - getEmailTemplatesByPortalId
   * 
   * Retrieves the email templates of a portal by portal ID
   */
  'getEmailTemplatesByPortalId'(
    parameters?: Parameters<Paths.GetEmailTemplatesByPortalId.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetEmailTemplatesByPortalId.Responses.$200>
  /**
   * upsertEmailTemplatesByPortalId - upsertEmailTemplatesByPortalId
   * 
   * Upserts the email templates of a portal by portal ID
   */
  'upsertEmailTemplatesByPortalId'(
    parameters?: Parameters<Paths.UpsertEmailTemplatesByPortalId.PathParameters> | null,
    data?: Paths.UpsertEmailTemplatesByPortalId.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpsertEmailTemplatesByPortalId.Responses.$200>
  /**
   * getPublicPortalWidgets - getPublicPortalWidgets
   * 
   * Retrieves the public widgets of a portal.
   */
  'getPublicPortalWidgets'(
    parameters?: Parameters<Paths.GetPublicPortalWidgets.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalWidgets.Responses.$200>
  /**
   * getPublicPortalWidgetsV3 - getPublicPortalWidgetsV3
   * 
   * Retrieves the public widgets of a portal.
   * Supports two identification methods:
   * 1. Using org_id + portal_id
   * 2. Using domain
   * 
   */
  'getPublicPortalWidgetsV3'(
    parameters?: Parameters<Paths.GetPublicPortalWidgetsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPortalWidgetsV3.Responses.$200>
  /**
   * getPortalWidgets - getPortalWidgets
   * 
   * Retrieves the widgets of a portal.
   */
  'getPortalWidgets'(
    parameters?: Parameters<Paths.GetPortalWidgets.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalWidgets.Responses.$200>
  /**
   * upsertPortalWidget - upsertPortalWidget
   * 
   * Upsert widget for a portal of an organization.
   */
  'upsertPortalWidget'(
    parameters?: Parameters<Paths.UpsertPortalWidget.QueryParameters> | null,
    data?: Paths.UpsertPortalWidget.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpsertPortalWidget.Responses.$201>
  /**
   * getPortalWidgetsV3 - getPortalWidgetsV3
   * 
   * Retrieves the widgets of a portal by portal_id.
   */
  'getPortalWidgetsV3'(
    parameters?: Parameters<Paths.GetPortalWidgetsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalWidgetsV3.Responses.$200>
  /**
   * upsertPortalWidgetV3 - upsertPortalWidgetV3
   * 
   * Upsert widget for a portal by portal_id.
   */
  'upsertPortalWidgetV3'(
    parameters?: Parameters<Paths.UpsertPortalWidgetV3.QueryParameters> | null,
    data?: Paths.UpsertPortalWidgetV3.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpsertPortalWidgetV3.Responses.$201>
  /**
   * savePortalFilesV3 - savePortalFilesV3
   * 
   * Add files to portal by portal_id
   */
  'savePortalFilesV3'(
    parameters?: Parameters<Paths.SavePortalFilesV3.QueryParameters> | null,
    data?: Paths.SavePortalFilesV3.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SavePortalFilesV3.Responses.$201>
  /**
   * replaceECPTemplateVariables - replaceECPTemplateVariables
   * 
   * Replaces the template variables of a portal
   */
  'replaceECPTemplateVariables'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.ReplaceECPTemplateVariables.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ReplaceECPTemplateVariables.Responses.$200>
  /**
   * getOrganizationSettings - getOrganizationSettings
   * 
   * Retrieves the organization settings. This endpoint is deprecated, use org_settings from the portal config or getOrganizationSettingsByDomain instead.
   */
  'getOrganizationSettings'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOrganizationSettings.Responses.$200>
  /**
   * getSchemas - getSchemas
   * 
   * Retrieves the schemas. Only schemas usable in the private part of the portal are returned.
   */
  'getSchemas'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetSchemas.Responses.$200>
  /**
   * getSchemasByDomain - getSchemasByDomain
   * 
   * Retrieves schemas by domain. Only schemas and attributes used on public pages are returned.
   */
  'getSchemasByDomain'(
    parameters?: Parameters<Paths.GetSchemasByDomain.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetSchemasByDomain.Responses.$200>
  /**
   * getPublicSchemasV3 - getPublicSchemasV3
   * 
   * Retrieves schemas by portal. Only schemas and attributes used on public pages are returned.
   * Supports two identification methods:
   * 1. Using org_id + portal_id
   * 2. Using domain
   * 
   */
  'getPublicSchemasV3'(
    parameters?: Parameters<Paths.GetPublicSchemasV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicSchemasV3.Responses.$200>
  /**
   * getOrganizationSettingsByDomain - getOrganizationSettingsByDomain
   * 
   * Retrieves organization settings by domain. Only public organization settings are returned.
   */
  'getOrganizationSettingsByDomain'(
    parameters?: Parameters<Paths.GetOrganizationSettingsByDomain.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOrganizationSettingsByDomain.Responses.$200>
  /**
   * extraPermissionAttributes - extraPermissionAttributes
   * 
   * Retrieves the extra permission attributes.
   */
  'extraPermissionAttributes'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ExtraPermissionAttributes.Responses.$200>
  /**
   * validateCaaRecords - validateCaaRecords
   * 
   * Validates the CAA records of a portal
   */
  'validateCaaRecords'(
    parameters?: Parameters<Paths.ValidateCaaRecords.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ValidateCaaRecords.Responses.$200>
  /**
   * validateCaaRecordsV3 - validateCaaRecordsV3
   * 
   * Validates the CAA records of a portal
   */
  'validateCaaRecordsV3'(
    parameters?: Parameters<Paths.ValidateCaaRecordsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ValidateCaaRecordsV3.Responses.$200>
  /**
   * getContact - getContact
   * 
   * Retrieves the contact of the logged in user.
   */
  'getContact'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetContact.Responses.$200>
  /**
   * updateContact - updateContact
   * 
   * Updates the contact details.
   */
  'updateContact'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.UpdateContact.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateContact.Responses.$200>
  /**
   * getECPContact - getECPContact
   * 
   * Get the Contact by id
   */
  'getECPContact'(
    parameters?: Parameters<Paths.GetECPContact.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetECPContact.Responses.$200>
  /**
   * checkContactExists - checkContactExists
   * 
   * True if contact with given identifiers exists.
   */
  'checkContactExists'(
    parameters?: Parameters<Paths.CheckContactExists.QueryParameters> | null,
    data?: Paths.CheckContactExists.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CheckContactExists.Responses.$200>
  /**
   * checkContactExistsV3 - checkContactExistsV3
   * 
   * True if contact with given identifiers exists.
   * Supports two identification methods:
   * 1. Using portal_id
   * 2. Using domain
   * 
   */
  'checkContactExistsV3'(
    parameters?: Parameters<Paths.CheckContactExistsV3.QueryParameters> | null,
    data?: Paths.CheckContactExistsV3.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CheckContactExistsV3.Responses.$200>
  /**
   * checkAccountExists - checkAccountExists
   * 
   * True if account with given identifiers exists.
   * Supports two identification methods:
   * 1. Using portal_id
   * 2. Using domain
   * 
   */
  'checkAccountExists'(
    parameters?: Parameters<Paths.CheckAccountExists.QueryParameters> | null,
    data?: Paths.CheckAccountExists.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CheckAccountExists.Responses.$200>
  /**
   * getValidSecondaryAttributes - getValidSecondaryAttributes
   * 
   * Get valid secondary attributes that are used while mapping a contact on registration
   */
  'getValidSecondaryAttributes'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetValidSecondaryAttributes.Responses.$200>
  /**
   * getPortalUser - getPortalUser
   * 
   * Get the portal user details
   */
  'getPortalUser'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalUser.Responses.$200>
  /**
   * updatePortalUser - updatePortalUser
   * 
   * Update the portal user details
   */
  'updatePortalUser'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.UpdatePortalUser.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdatePortalUser.Responses.$200>
  /**
   * deletePortalUser - deletePortalUser
   * 
   * Delete the portal user
   */
  'deletePortalUser'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeletePortalUser.Responses.$200>
  /**
   * updatePortalUserEmail - updatePortalUserEmail
   * 
   * Update portal user email
   */
  'updatePortalUserEmail'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.UpdatePortalUserEmail.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdatePortalUserEmail.Responses.$200>
  /**
   * resendConfirmationEmail - resendConfirmationEmail
   * 
   * Resend confirmation email
   */
  'resendConfirmationEmail'(
    parameters?: Parameters<Paths.ResendConfirmationEmail.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ResendConfirmationEmail.Responses.$200>
  /**
   * fetchPortalUsersByRelatedEntity - fetchPortalUsersByRelatedEntity
   * 
   * Get all users for a given entity
   */
  'fetchPortalUsersByRelatedEntity'(
    parameters?: Parameters<Paths.FetchPortalUsersByRelatedEntity.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.FetchPortalUsersByRelatedEntity.Responses.$200>
  /**
   * confirmUser - confirmUser
   * 
   * Confirm a portal user
   */
  'confirmUser'(
    parameters?: Parameters<Paths.ConfirmUser.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ConfirmUser.Responses.$200>
  /**
   * confirmUserWithUserId - confirmUserWithUserId
   * 
   * Confirm a portal user
   */
  'confirmUserWithUserId'(
    parameters?: Parameters<Paths.ConfirmUserWithUserId.QueryParameters & Paths.ConfirmUserWithUserId.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<any>
  /**
   * userExists - userExists
   * 
   * Checks whether a user exists in the portal
   */
  'userExists'(
    parameters?: Parameters<Paths.UserExists.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UserExists.Responses.$200>
  /**
   * userExistsV3 - userExistsV3
   * 
   * Checks whether a user exists in the portal.
   * Supports two identification methods:
   * 1. Using org_id + portal_id
   * 2. Using domain
   * 
   */
  'userExistsV3'(
    parameters?: Parameters<Paths.UserExistsV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UserExistsV3.Responses.$200>
  /**
   * getRecipientsToNotifyOnAutomation - getRecipientsToNotifyOnAutomation
   * 
   * Get recipients to notify on automation
   */
  'getRecipientsToNotifyOnAutomation'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.GetRecipientsToNotifyOnAutomation.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetRecipientsToNotifyOnAutomation.Responses.$200>
  /**
   * configureDistribution - configureDistribution
   * 
   * Configure the distribution for the portal's custom domain
   */
  'configureDistribution'(
    parameters?: Parameters<Paths.ConfigureDistribution.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ConfigureDistribution.Responses.$200>
  /**
   * configureDistributionV3 - configureDistributionV3
   * 
   * Configure the distribution for the portal's custom domain
   */
  'configureDistributionV3'(
    parameters?: Parameters<Paths.ConfigureDistributionV3.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ConfigureDistributionV3.Responses.$200>
  /**
   * getAllOrders - getAllOrders
   * 
   * Get all orders for the portal user. Use searchPortalUserEntities instead.
   */
  'getAllOrders'(
    parameters?: Parameters<Paths.GetAllOrders.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllOrders.Responses.$200>
  /**
   * postOrderAcceptance - postOrderAcceptance
   * 
   * Accept/decline an offer by id
   */
  'postOrderAcceptance'(
    parameters?: Parameters<Paths.PostOrderAcceptance.PathParameters> | null,
    data?: Paths.PostOrderAcceptance.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.PostOrderAcceptance.Responses.$200>
  /**
   * getOrder - getOrder
   * 
   * Get an order by id. Use getPortalUserEntity instead.
   */
  'getOrder'(
    parameters?: Parameters<Paths.GetOrder.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOrder.Responses.$200>
  /**
   * updateOrder - updateOrder
   * 
   * Update an order by id. Use getPortalUserEntity instead.
   */
  'updateOrder'(
    parameters?: Parameters<Paths.UpdateOrder.PathParameters> | null,
    data?: Paths.UpdateOrder.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateOrder.Responses.$200>
  /**
   * getAllOpportunities - getAllOpportunities
   * 
   * Get all opportunities of a portal user. Use searchPortalUserEntities instead.
   */
  'getAllOpportunities'(
    parameters?: Parameters<Paths.GetAllOpportunities.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllOpportunities.Responses.$200>
  /**
   * getSearchableAttributesForOpportunities - getSearchableAttributesForOpportunities
   * 
   * Get all opportunity searchable attributes for a portal user. Use searchPortalUserEntities instead.
   */
  'getSearchableAttributesForOpportunities'(
    parameters?: Parameters<Paths.GetSearchableAttributesForOpportunities.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetSearchableAttributesForOpportunities.Responses.$200>
  /**
   * getSearchResultsForOpportunities - getSearchResultsForOpportunities
   * 
   * Get all opportunity with the given searched attributes. Use searchPortalUserEntities instead.
   */
  'getSearchResultsForOpportunities'(
    parameters?: Parameters<Paths.GetSearchResultsForOpportunities.QueryParameters> | null,
    data?: Paths.GetSearchResultsForOpportunities.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetSearchResultsForOpportunities.Responses.$200>
  /**
   * getOpportunity - getOpportunity
   * 
   * Get an opportunity by id. Use getPortalUserEntity instead.
   */
  'getOpportunity'(
    parameters?: Parameters<Paths.GetOpportunity.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetOpportunity.Responses.$200>
  /**
   * updateOpportunity - updateOpportunity
   * 
   * Update an opportunity by id.
   */
  'updateOpportunity'(
    parameters?: Parameters<Paths.UpdateOpportunity.PathParameters> | null,
    data?: Paths.UpdateOpportunity.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateOpportunity.Responses.$200>
  /**
   * getAllRequests - getAllRequests
   * 
   * Get all opportunities & orders of a portal user. Use searchPortalUserEntities instead.
   */
  'getAllRequests'(
    parameters?: Parameters<Paths.GetAllRequests.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllRequests.Responses.$200>
  /**
   * getAllContracts - getAllContracts
   * 
   * Get all contracts for a portal user. Use searchPortalUserEntities instead.
   */
  'getAllContracts'(
    parameters?: Parameters<Paths.GetAllContracts.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllContracts.Responses.$200>
  /**
   * getContract - getContract
   * 
   * Get a contract by id. Use getPortalUserEntity instead.
   */
  'getContract'(
    parameters?: Parameters<Paths.GetContract.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetContract.Responses.$200>
  /**
   * updateContract - updateContract
   * 
   * Update a contract by id. Use getPortalUserEntity instead.
   */
  'updateContract'(
    parameters?: Parameters<Paths.UpdateContract.PathParameters> | null,
    data?: Paths.UpdateContract.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateContract.Responses.$200>
  /**
   * addContractByIdentifiers - addContractByIdentifiers
   * 
   * Self-assign contract(s) by pre-configured identifiers.
   */
  'addContractByIdentifiers'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.AddContractByIdentifiers.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.AddContractByIdentifiers.Responses.$200>
  /**
   * getEntityIdentifiers - getEntityIdentifiers
   * 
   * Retrieve a list of entity identifiers used for entity search by portal users.
   */
  'getEntityIdentifiers'(
    parameters?: Parameters<Paths.GetEntityIdentifiers.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetEntityIdentifiers.Responses.$200>
  /**
   * getEntityActivityFeed - getEntityActivityFeed
   * 
   * Get activity feed for an entity
   * 
   */
  'getEntityActivityFeed'(
    parameters?: Parameters<Paths.GetEntityActivityFeed.QueryParameters & Paths.GetEntityActivityFeed.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetEntityActivityFeed.Responses.$200>
  /**
   * validateCadenceEntityEditRules - validateCadenceEntityEditRules
   * 
   * Validate if cadence rule is valid for an entity
   * 
   */
  'validateCadenceEntityEditRules'(
    parameters?: Parameters<Paths.ValidateCadenceEntityEditRules.QueryParameters & Paths.ValidateCadenceEntityEditRules.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ValidateCadenceEntityEditRules.Responses.$200>
  /**
   * searchPaymentRelationsInEntities - searchPaymentRelationsInEntities
   * 
   * Search for entities that have the payment relation with the given payment id
   * 
   */
  'searchPaymentRelationsInEntities'(
    parameters?: Parameters<Paths.SearchPaymentRelationsInEntities.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SearchPaymentRelationsInEntities.Responses.$200>
  /**
   * createCustomEntityActivity - createCustomEntityActivity
   * 
   * Create a custom activity that can be displayed in activity feed of an entity.
   */
  'createCustomEntityActivity'(
    parameters?: Parameters<Paths.CreateCustomEntityActivity.QueryParameters> | null,
    data?: Paths.CreateCustomEntityActivity.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreateCustomEntityActivity.Responses.$201>
  /**
   * saveEntityFile - saveEntityFile
   * 
   * Add files to an entity
   */
  'saveEntityFile'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.SaveEntityFile.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SaveEntityFile.Responses.$201>
  /**
   * deleteEntityFile - deleteEntityFile
   * 
   * Delete files from an entity
   */
  'deleteEntityFile'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.DeleteEntityFile.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeleteEntityFile.Responses.$202>
  /**
   * savePortalFiles - savePortalFiles
   * 
   * Add files to portal
   */
  'savePortalFiles'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.SavePortalFiles.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SavePortalFiles.Responses.$201>
  /**
   * getRegistrationIdentifiers - getRegistrationIdentifiers
   * 
   * Get valid attributes from entities that can be used as identifier to map contact to user on registration
   */
  'getRegistrationIdentifiers'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetRegistrationIdentifiers.Responses.$200>
  /**
   * getAllFiles - getAllFiles
   * 
   * Fetch all documents under the related entities of a contact. Use searchPortalUserEntities instead.
   */
  'getAllFiles'(
    parameters?: Parameters<Paths.GetAllFiles.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllFiles.Responses.$200>
  /**
   * getFileById - getFileById
   * 
   * Fetch a document with ID. Use getPortalUserEntity instead.
   */
  'getFileById'(
    parameters?: Parameters<Paths.GetFileById.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetFileById.Responses.$200>
  /**
   * trackFileDownloaded - trackFileDownloaded
   * 
   * Track that user has downloaded a file
   */
  'trackFileDownloaded'(
    parameters?: Parameters<Paths.TrackFileDownloaded.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.TrackFileDownloaded.Responses.$200>
  /**
   * getFilesCountByEntity - getFileCountByEntity
   * 
   * Fetch file counts for all ECP user related entities
   */
  'getFilesCountByEntity'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetFilesCountByEntity.Responses.$200>
  /**
   * getBillingEvents - getBillingEvents
   * 
   * Fetch billing events for a portal user
   */
  'getBillingEvents'(
    parameters?: Parameters<Paths.GetBillingEvents.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetBillingEvents.Responses.$200>
  /**
   * getCustomerBalance - getCustomerBalance
   * 
   * Get total balance across all contracts and orders of a customer entity.
   */
  'getCustomerBalance'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetCustomerBalance.Responses.$200>
  /**
   * getBillingAccount - getBillingAccount
   * 
   * Get a billing account by id.
   */
  'getBillingAccount'(
    parameters?: Parameters<Paths.V2PortalBillingAccounts$Id.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetBillingAccount.Responses.$200>
  /**
   * loginToPortalAsUser - loginToPortalAsUser
   * 
   * Generate a token to log in to a portal impersonating a users.
   * 
   * Token is valid for 5 minutes.
   * 
   * Supports three identification methods (at least one required):
   * 1. Using portal_id (takes precedence)
   * 2. Using domain
   * 3. Using origin (legacy)
   * 
   */
  'loginToPortalAsUser'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.LoginToPortalAsUser.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.LoginToPortalAsUser.Responses.$200>
  /**
   * triggerEntityAccessEvent - triggerEntityAccessEvent
   * 
   * Trigger entity access event for a portal user
   */
  'triggerEntityAccessEvent'(
    parameters?: Parameters<Paths.TriggerEntityAccessEvent.QueryParameters & Paths.TriggerEntityAccessEvent.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.TriggerEntityAccessEvent.Responses.$200>
  /**
   * triggerEntityAccessEventV3 - triggerEntityAccessEventV3
   * 
   * Trigger entity access event for a portal user.
   * Supports two identification methods:
   * 1. Using portal_id
   * 2. Using domain
   * 
   */
  'triggerEntityAccessEventV3'(
    parameters?: Parameters<Paths.TriggerEntityAccessEventV3.QueryParameters & Paths.TriggerEntityAccessEventV3.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.TriggerEntityAccessEventV3.Responses.$200>
  /**
   * getPortalUserEntity - getPortalUserEntity
   * 
   * Get a single entity for a portal user
   */
  'getPortalUserEntity'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.GetPortalUserEntity.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalUserEntity.Responses.$200>
  /**
   * searchPortalUserEntities - searchPortalUserEntities
   * 
   * Search all entities of a portal user
   */
  'searchPortalUserEntities'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.SearchPortalUserEntities.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SearchPortalUserEntities.Responses.$200>
  /**
   * canTriggerPortalFlow - canTriggerPortalFlow
   * 
   * Returns whether the user can trigger a portal flow
   */
  'canTriggerPortalFlow'(
    parameters?: Parameters<Paths.CanTriggerPortalFlow.QueryParameters> | null,
    data?: Paths.CanTriggerPortalFlow.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CanTriggerPortalFlow.Responses.$200>
  /**
   * getAutomationContext - getAutomationContext
   * 
   * Retrieves the automation context.
   */
  'getAutomationContext'(
    parameters?: Parameters<Paths.GetAutomationContext.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAutomationContext.Responses.$200>
  /**
   * updateWorkflowStepAsDone - updateWorkflowStepAsDone
   * 
   * Update a workflow step as done
   */
  'updateWorkflowStepAsDone'(
    parameters?: Parameters<Paths.UpdateWorkflowStepAsDone.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateWorkflowStepAsDone.Responses.$200>
  /**
   * getEntityWorkflows - Get workflows for an entity
   * 
   * Get all workflows associated with an entity (requires access to the entity)
   */
  'getEntityWorkflows'(
    parameters?: Parameters<Paths.GetEntityWorkflows.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
  /**
   * uploadMeterReadingPhoto - Upload Meter Reading Photo
   * 
   * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
   */
  'uploadMeterReadingPhoto'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.UploadMeterReadingPhoto.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UploadMeterReadingPhoto.Responses.$200>
  /**
   * createMeterReading - Create Meter Reading
   * 
   * Inserts a new meter reading.
   */
  'createMeterReading'(
    parameters?: Parameters<Paths.CreateMeterReading.QueryParameters> | null,
    data?: Paths.CreateMeterReading.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreateMeterReading.Responses.$200>
  /**
   * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
   * third-party plausibility check hook using 'range' mode. This endpoint requires
   * a plausibility check hook to be configured for the portal.
   * 
   */
  'getAllowedMeterReadingRange'(
    parameters?: Parameters<Paths.GetAllowedMeterReadingRange.QueryParameters & Paths.GetAllowedMeterReadingRange.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetAllowedMeterReadingRange.Responses.$200>
  /**
   * getMeterReadings - Get meter readings with optional template resolution
   * 
   * Fetches meter readings for a counter and optionally resolves Handlebars
   * template strings against each reading object using @epilot/variables.
   * 
   */
  'getMeterReadings'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.GetMeterReadings.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetMeterReadings.Responses.$200>
  /**
   * getSSOProvider - getSSOProvider
   * 
   * Returns the public configuration of a single SSO identity provider with env var
   * placeholders (incl. secrets) already resolved against the organization's environment.
   * 
   * Use this endpoint at SSO initiation time (i.e. when the end user clicks "Sign in with X")
   * to obtain the resolved OIDC settings needed to construct the authorization URL.
   * The web `client_secret` is intentionally never returned — it is used server-side by
   * the SSO callback to exchange the authorization code for tokens.
   * 
   * Supports three identification methods:
   * 1. `org_id` + `origin`
   * 2. `org_id` + `portal_id`
   * 3. `domain`
   * 
   */
  'getSSOProvider'(
    parameters?: Parameters<Paths.GetSSOProvider.QueryParameters & Paths.GetSSOProvider.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetSSOProvider.Responses.$200>
  /**
   * ssoLogin - ssoLogin
   * 
   * Initiate login using external SSO identity.
   * 
   * Verifies the user with the issuer and matches the identity to an epilot user (or creates a new user).
   * 
   * Returns parameters to be used with CUSTOM_AUTH flow against Cognito
   * 
   */
  'ssoLogin'(
    parameters?: Parameters<Paths.SsoLogin.QueryParameters> | null,
    data?: Paths.SsoLogin.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SsoLogin.Responses.$200>
  /**
   * ssoLoginV3 - ssoLoginV3
   * 
   * Initiate login using external SSO identity.
   * 
   * Verifies the user with the issuer and matches the identity to an epilot user (or creates a new user).
   * 
   * Returns parameters to be used with CUSTOM_AUTH flow against Cognito.
   * 
   * Supports two identification methods:
   * 1. Using org_id + portal_id
   * 2. Using domain
   * 
   */
  'ssoLoginV3'(
    parameters?: Parameters<Paths.SsoLoginV3.QueryParameters> | null,
    data?: Paths.SsoLoginV3.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SsoLoginV3.Responses.$200>
  /**
   * ssoRedirect - ssoRedirect
   * 
   * Handles the redirect from the external SSO provider. Validates the authorization `code` and `state` received from the provider.
   * Redirects the user to the provided `web_uri` with the validated credentials.
   * 
   */
  'ssoRedirect'(
    parameters?: Parameters<Paths.SsoRedirect.QueryParameters> | null,
    data?: Paths.SsoRedirect.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<any>
  /**
   * ssoCallback - ssoCallback
   * 
   * Handles the callback from the external SSO provider, validates the authorization `code`
   * and generates a external provider token to be used with the CUSTOM_AUTH flow against Cognito.
   * 
   */
  'ssoCallback'(
    parameters?: Parameters<Paths.SsoCallback.QueryParameters> | null,
    data?: Paths.SsoCallback.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SsoCallback.Responses.$200>
  /**
   * getPortalPage - getPortalPage
   * 
   * Fetch a portal page by id
   */
  'getPortalPage'(
    parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalPage.Responses.$200>
  /**
   * updatePortalPage - updatePortalPage
   * 
   * Update a portal page by id
   */
  'updatePortalPage'(
    parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
    data?: Paths.UpdatePortalPage.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdatePortalPage.Responses.$200>
  /**
   * deletePortalPage - deletePortalPage
   * 
   * Delete a portal page by id
   */
  'deletePortalPage'(
    parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeletePortalPage.Responses.$204>
  /**
   * getPortalPages - getPortalPages
   * 
   * Fetch all portal pages
   */
  'getPortalPages'(
    parameters?: Parameters<Paths.GetPortalPages.QueryParameters & Paths.V2PortalPages.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalPages.Responses.$200>
  /**
   * createPortalPage - createPortalPage
   * 
   * Create a new portal page
   */
  'createPortalPage'(
    parameters?: Parameters<Paths.V2PortalPages.QueryParameters> | null,
    data?: Paths.CreatePortalPage.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreatePortalPage.Responses.$200>
  /**
   * getPublicPages - getPublicPages
   * 
   * Fetch all public portal pages
   */
  'getPublicPages'(
    parameters?: Parameters<Paths.GetPublicPages.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPublicPages.Responses.$200>
  /**
   * interpolatePortalPages - interpolatePortalPages
   * 
   * Interpolate template variables in portal pages without reading from the database. Accepts pages in the request body and returns them with templates resolved.
   */
  'interpolatePortalPages'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.InterpolatePortalPages.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.InterpolatePortalPages.Responses.$200>
  /**
   * getDefaultPages - getDefaultPages
   * 
   * Fetch all default portal pages
   */
  'getDefaultPages'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetDefaultPages.Responses.$200>
  /**
   * getPortalPageBlocks - getPortalPageBlocks
   * 
   * Fetch all portal page blocks
   */
  'getPortalPageBlocks'(
    parameters?: Parameters<Paths.V2PortalPages$IdBlocks.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalPageBlocks.Responses.$200>
  /**
   * createPortalPageBlock - createPortalPageBlock
   * 
   * Create a new portal page block
   */
  'createPortalPageBlock'(
    parameters?: Parameters<Paths.V2PortalPages$IdBlocks.PathParameters> | null,
    data?: Paths.CreatePortalPageBlock.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreatePortalPageBlock.Responses.$200>
  /**
   * getPortalPageBlock - getPortalPageBlock
   * 
   * Fetch a portal page block by id
   */
  'getPortalPageBlock'(
    parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalPageBlock.Responses.$200>
  /**
   * updatePortalPageBlock - updatePortalPageBlock
   * 
   * Update a portal page block by id
   */
  'updatePortalPageBlock'(
    parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
    data?: Paths.UpdatePortalPageBlock.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdatePortalPageBlock.Responses.$200>
  /**
   * deletePortalPageBlock - deletePortalPageBlock
   * 
   * Delete a portal page block by id
   */
  'deletePortalPageBlock'(
    parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeletePortalPageBlock.Responses.$204>
  /**
   * getUserEntryPoint - getUserEntryPoint
   * 
   * Get the entry point for the user
   */
  'getUserEntryPoint'(
    parameters?: Parameters<Paths.GetUserEntryPoint.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetUserEntryPoint.Responses.$200>
  /**
   * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
   * 
   * Updates the status of a campaign portal block for multiple recipients.
   */
  'updateCampaignPortalBlockStatus'(
    parameters?: Parameters<Paths.UpdateCampaignPortalBlockStatus.PathParameters> | null,
    data?: Paths.UpdateCampaignPortalBlockStatus.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateCampaignPortalBlockStatus.Responses.$200>
  /**
   * updateNotificationsStatus - updateNotificationsStatus
   * 
   * Updates the statuses of multiple notifications at once.
   */
  'updateNotificationsStatus'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.UpdateNotificationsStatus.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.UpdateNotificationsStatus.Responses.$200>
  /**
   * deRegisterMLoginUser - deRegisterMLoginUser
   * 
   * Deregisters a user from the M Login client
   */
  'deRegisterMLoginUser'(
    parameters?: Parameters<Paths.DeRegisterMLoginUser.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeRegisterMLoginUser.Responses.$204>
  /**
   * notifyMLoginInterestChange - notifyMLoginInterestChange
   * 
   * Notifies the interest change of a user in the M Login client
   */
  'notifyMLoginInterestChange'(
    parameters?: Parameters<Paths.NotifyMLoginInterestChange.PathParameters> | null,
    data?: Paths.NotifyMLoginInterestChange.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.NotifyMLoginInterestChange.Responses.$200>
  /**
   * createPortalConfig - createPortalConfig
   * 
   * Creates a new portal configuration.
   */
  'createPortalConfig'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.CreatePortalConfig.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.CreatePortalConfig.Responses.$201>
  /**
   * getPortalConfigV3 - getPortalConfigV3
   * 
   * Retrieves a specific portal configuration by ID.
   */
  'getPortalConfigV3'(
    parameters?: Parameters<Paths.GetPortalConfigV3.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.GetPortalConfigV3.Responses.$200>
  /**
   * putPortalConfig - putPortalConfig
   * 
   * Updates a specific portal configuration by ID.
   */
  'putPortalConfig'(
    parameters?: Parameters<Paths.PutPortalConfig.PathParameters> | null,
    data?: Paths.PutPortalConfig.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.PutPortalConfig.Responses.$200>
  /**
   * deletePortalConfig - deletePortalConfig
   * 
   * Deletes a specific portal configuration by ID.
   */
  'deletePortalConfig'(
    parameters?: Parameters<Paths.DeletePortalConfig.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DeletePortalConfig.Responses.$204>
  /**
   * listAllPortalConfigs - listAllPortalConfigs
   * 
   * Retrieves all portal configurations.
   */
  'listAllPortalConfigs'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ListAllPortalConfigs.Responses.$200>
  /**
   * swapPortalConfig - swapPortalConfig
   * 
   * Swaps the portal configuration of two portals.
   */
  'swapPortalConfig'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.SwapPortalConfig.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.SwapPortalConfig.Responses.$200>
  /**
   * clonePortalConfig - clonePortalConfig
   * 
   * Creates a new portal by cloning configuration and pages from an existing portal. The new portal gets its own domain, users, email templates, and authentication settings.
   */
  'clonePortalConfig'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.ClonePortalConfig.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ClonePortalConfig.Responses.$201>
  /**
   * invitePartner - invitePartner
   * 
   * Invites a partner to a portal
   */
  'invitePartner'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.InvitePartner.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.InvitePartner.Responses.$200>
  /**
   * listBusinessPartners - listBusinessPartners
   * 
   * Lists all business partners linked to the businessaccount
   */
  'listBusinessPartners'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ListBusinessPartners.Responses.$200>
  /**
   * resendPartnerInvitation - resendPartnerInvitation
   * 
   * Resends an invitation email to a partner
   */
  'resendPartnerInvitation'(
    parameters?: Parameters<Paths.ResendPartnerInvitation.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.ResendPartnerInvitation.Responses.$200>
  /**
   * revokePartner - revokePartner
   * 
   * Revokes a partner from a portal
   */
  'revokePartner'(
    parameters?: Parameters<Paths.RevokePartner.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.RevokePartner.Responses.$200>
  /**
   * disablePartner - disablePartner
   * 
   * Disables a partner from a portal
   */
  'disablePartner'(
    parameters?: Parameters<Paths.DisablePartner.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.DisablePartner.Responses.$200>
  /**
   * enablePartner - enablePartner
   * 
   * Enables a partner from a portal
   */
  'enablePartner'(
    parameters?: Parameters<Paths.EnablePartner.PathParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.EnablePartner.Responses.$200>
  /**
   * verifyDns - verifyDns
   * 
   * Manually triggers DNS verification for a portal's domain setup. Runs the same verification logic as the scheduled processAllPendingNetworks lambda.
   */
  'verifyDns'(
    parameters?: Parameters<Paths.VerifyDns.QueryParameters> | null,
    data?: any,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.VerifyDns.Responses.$200>
  /**
   * portalProxyExecute - portalProxyExecute
   * 
   * Execute an Integration Hub managed-call use case on behalf of a portal user.
   * Bridges PortalAuth to the Integration API by generating an internal token.
   * 
   */
  'portalProxyExecute'(
    parameters?: Parameters<UnknownParamsObject> | null,
    data?: Paths.PortalProxyExecute.RequestBody,
    config?: AxiosRequestConfig  
  ): OperationResponse<Paths.PortalProxyExecute.Responses.$200>
}

export interface PathsDictionary {
  ['/v2/portal/portal']: {
    /**
     * upsertPortal - upsertPortal
     * 
     * Upserts the settings for a portal of an organization.
     */
    'post'(
      parameters?: Parameters<Paths.UpsertPortal.QueryParameters> | null,
      data?: Paths.UpsertPortal.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpsertPortal.Responses.$200 | Paths.UpsertPortal.Responses.$201>
  }
  ['/v2/portal/public/user']: {
    /**
     * createUser - createUser
     * 
     * Registers a portal user
     */
    'post'(
      parameters?: Parameters<Paths.CreateUser.QueryParameters> | null,
      data?: Paths.CreateUser.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreateUser.Responses.$201>
  }
  ['/v3/portal/public/user']: {
    /**
     * createUserV3 - createUserV3
     * 
     * Registers a portal user.
     * Supports two identification methods:
     * 1. Using portal_id
     * 2. Using domain
     * 
     */
    'post'(
      parameters?: Parameters<Paths.CreateUserV3.QueryParameters> | null,
      data?: Paths.CreateUserV3.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreateUserV3.Responses.$201>
  }
  ['/v2/portal/token/validate']: {
    /**
     * validateToken - validateToken
     * 
     * Validates Portal Token is valid. Pass the token via Authorization Header.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ValidateToken.Responses.$204>
  }
  ['/v2/portal/token/revoke']: {
    /**
     * revokeToken - revokeToken
     * 
     * Revokes all of the access tokens for the given Refresh Token.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.RevokeToken.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.RevokeToken.Responses.$200>
  }
  ['/v2/portal/public/config']: {
    /**
     * getPortalConfigByDomain - getPortalConfigByDomain
     * 
     * Retrieves the portal configuration by domain.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalConfigByDomain.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalConfigByDomain.Responses.$200>
  }
  ['/v2/portal/config']: {
    /**
     * getPortalConfig - getPortalConfig
     * 
     * Retrieves the portal configuration.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalConfig.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalConfig.Responses.$200>
    /**
     * deletePortal - deletePortal
     * 
     * Deletes the portal.
     */
    'delete'(
      parameters?: Parameters<Paths.DeletePortal.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeletePortal.Responses.$204>
  }
  ['/v2/portal/extensions']: {
    /**
     * getPortalExtensions - getPortalExtensions
     * 
     * Retrieves the installed portal extensions.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalExtensions.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalExtensions.Responses.$200>
  }
  ['/v2/portal/public/extensions']: {
    /**
     * getPublicPortalExtensionDetails - getPublicPortalExtensionDetails
     * 
     * Get public extension details shown to end customers and configuring users.
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalExtensionDetails.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalExtensionDetails.Responses.$200>
  }
  ['/v3/portal/extensions']: {
    /**
     * getPortalExtensionsV3 - getPortalExtensionsV3
     * 
     * Retrieves the installed portal extensions.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalExtensionsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalExtensionsV3.Responses.$200>
  }
  ['/v3/portal/public/extensions']: {
    /**
     * getPublicPortalExtensionDetailsV3 - getPublicPortalExtensionDetailsV3
     * 
     * Get public extension details shown to end customers and configuring users.
     * Supports two identification methods:
     * 1. Using org_id + portal_id
     * 2. Using domain
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalExtensionDetailsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalExtensionDetailsV3.Responses.$200>
  }
  ['/v2/portal/consumption']: {
    /**
     * getConsumption - Get Consumption
     * 
     * Get energy consumption data between a given time period.
     */
    'get'(
      parameters?: Parameters<Paths.GetConsumption.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetConsumption.Responses.$200>
  }
  ['/v2/portal/visualization:export']: {
    /**
     * prepareVisualizationExport - Prepare Visualization Export
     * 
     * 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`).
     * 
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.PrepareVisualizationExport.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.PrepareVisualizationExport.Responses.$200>
  }
  ['/v2/portal/visualization/metadata']: {
    /**
     * getVisualizationMetadata - Get Visualization Metadata
     * 
     * 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.
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetVisualizationMetadata.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetVisualizationMetadata.Responses.$200>
  }
  ['/v2/portal/costs']: {
    /**
     * getCosts - Get Costs
     * 
     * Get energy cost data between a given time period.
     */
    'get'(
      parameters?: Parameters<Paths.GetCosts.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetCosts.Responses.$200>
  }
  ['/v2/portal/prices']: {
    /**
     * getPrices - Get Prices
     * 
     * Get energy prices data between a given time period.
     */
    'get'(
      parameters?: Parameters<Paths.GetPrices.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPrices.Responses.$200>
  }
  ['/v2/portal/external-links']: {
    /**
     * getExternalLinks - getExternalLinks
     * 
     * Retrieves the portal configuration external links.
     */
    'get'(
      parameters?: Parameters<Paths.GetExternalLinks.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetExternalLinks.Responses.$200>
  }
  ['/v2/portal/resolve:external-link/{id}']: {
    /**
     * getResolvedExternalLink - getResolvedExternalLink
     * 
     * Retrieves a resolved portal external link. Use /v2/portal/resolve:seamless-link/{id} instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetResolvedExternalLink.QueryParameters & Paths.GetResolvedExternalLink.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetResolvedExternalLink.Responses.$200>
  }
  ['/v3/portal/external-links']: {
    /**
     * getExternalLinksV3 - getExternalLinksV3
     * 
     * Retrieves the portal configuration external links.
     */
    'get'(
      parameters?: Parameters<Paths.GetExternalLinksV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetExternalLinksV3.Responses.$200>
  }
  ['/v3/portal/resolve:external-link/{id}']: {
    /**
     * getResolvedExternalLinkV3 - getResolvedExternalLinkV3
     * 
     * Retrieves a resolved portal external link. Use /v2/portal/resolve:seamless-link/{id} instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetResolvedExternalLinkV3.QueryParameters & Paths.GetResolvedExternalLinkV3.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetResolvedExternalLinkV3.Responses.$200>
  }
  ['/v2/portal/resolve:seamless-link']: {
    /**
     * getResolvedSeamlessLink - getResolvedSeamlessLink
     * 
     * Retrieves a resolved seamless portal link.
     */
    'get'(
      parameters?: Parameters<Paths.GetResolvedSeamlessLink.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetResolvedSeamlessLink.Responses.$200>
  }
  ['/v2/portal/public/portal/config']: {
    /**
     * getPublicPortalConfig - getPublicPortalConfig
     * 
     * Retrieves the public portal configuration.
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalConfig.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalConfig.Responses.$200>
  }
  ['/v2/portal/org/portal/config']: {
    /**
     * getOrgPortalConfig - getOrgPortalConfig
     * 
     * Retrieves the portal configuration for the organization.
     */
    'get'(
      parameters?: Parameters<Paths.GetOrgPortalConfig.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOrgPortalConfig.Responses.$200>
  }
  ['/v3/portal/public/portal/config']: {
    /**
     * getPublicPortalConfigV3 - getPublicPortalConfigV3
     * 
     * Retrieves the public portal configuration.
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalConfigV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalConfigV3.Responses.$200>
  }
  ['/v3/portal/org/portal/config']: {
    /**
     * getOrgPortalConfigV3 - getOrgPortalConfigV3
     * 
     * Retrieves the portal configuration for the organization.
     */
    'get'(
      parameters?: Parameters<Paths.GetOrgPortalConfigV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOrgPortalConfigV3.Responses.$200>
  }
  ['/v2/portal/configs']: {
    /**
     * getAllPortalConfigs - getAllPortalConfigs
     * 
     * Retrieves all portal configurations.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllPortalConfigs.Responses.$200>
  }
  ['/v2/portal/email-templates']: {
    /**
     * upsertEmailTemplates - upsertEmailTemplates
     * 
     * Upserts the email templates of a portal
     */
    'post'(
      parameters?: Parameters<Paths.UpsertEmailTemplates.QueryParameters> | null,
      data?: Paths.UpsertEmailTemplates.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpsertEmailTemplates.Responses.$200>
    /**
     * getEmailTemplates - getEmailTemplates
     * 
     * Retrieves the email templates of a portal
     */
    'get'(
      parameters?: Parameters<Paths.GetEmailTemplates.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetEmailTemplates.Responses.$200>
  }
  ['/v3/portal/email-templates/{portal_id}']: {
    /**
     * upsertEmailTemplatesByPortalId - upsertEmailTemplatesByPortalId
     * 
     * Upserts the email templates of a portal by portal ID
     */
    'post'(
      parameters?: Parameters<Paths.UpsertEmailTemplatesByPortalId.PathParameters> | null,
      data?: Paths.UpsertEmailTemplatesByPortalId.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpsertEmailTemplatesByPortalId.Responses.$200>
    /**
     * getEmailTemplatesByPortalId - getEmailTemplatesByPortalId
     * 
     * Retrieves the email templates of a portal by portal ID
     */
    'get'(
      parameters?: Parameters<Paths.GetEmailTemplatesByPortalId.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetEmailTemplatesByPortalId.Responses.$200>
  }
  ['/v2/portal/public-widgets']: {
    /**
     * getPublicPortalWidgets - getPublicPortalWidgets
     * 
     * Retrieves the public widgets of a portal.
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalWidgets.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalWidgets.Responses.$200>
  }
  ['/v3/portal/public/widgets']: {
    /**
     * getPublicPortalWidgetsV3 - getPublicPortalWidgetsV3
     * 
     * Retrieves the public widgets of a portal.
     * Supports two identification methods:
     * 1. Using org_id + portal_id
     * 2. Using domain
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPortalWidgetsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPortalWidgetsV3.Responses.$200>
  }
  ['/v2/portal/widgets']: {
    /**
     * upsertPortalWidget - upsertPortalWidget
     * 
     * Upsert widget for a portal of an organization.
     */
    'post'(
      parameters?: Parameters<Paths.UpsertPortalWidget.QueryParameters> | null,
      data?: Paths.UpsertPortalWidget.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpsertPortalWidget.Responses.$201>
    /**
     * getPortalWidgets - getPortalWidgets
     * 
     * Retrieves the widgets of a portal.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalWidgets.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalWidgets.Responses.$200>
  }
  ['/v3/portal/widgets']: {
    /**
     * getPortalWidgetsV3 - getPortalWidgetsV3
     * 
     * Retrieves the widgets of a portal by portal_id.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalWidgetsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalWidgetsV3.Responses.$200>
    /**
     * upsertPortalWidgetV3 - upsertPortalWidgetV3
     * 
     * Upsert widget for a portal by portal_id.
     */
    'post'(
      parameters?: Parameters<Paths.UpsertPortalWidgetV3.QueryParameters> | null,
      data?: Paths.UpsertPortalWidgetV3.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpsertPortalWidgetV3.Responses.$201>
  }
  ['/v3/portal/portal/files']: {
    /**
     * savePortalFilesV3 - savePortalFilesV3
     * 
     * Add files to portal by portal_id
     */
    'post'(
      parameters?: Parameters<Paths.SavePortalFilesV3.QueryParameters> | null,
      data?: Paths.SavePortalFilesV3.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SavePortalFilesV3.Responses.$201>
  }
  ['/v2/portal/replace-ecp-template-variables']: {
    /**
     * replaceECPTemplateVariables - replaceECPTemplateVariables
     * 
     * Replaces the template variables of a portal
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.ReplaceECPTemplateVariables.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ReplaceECPTemplateVariables.Responses.$200>
  }
  ['/v2/portal/org/settings']: {
    /**
     * getOrganizationSettings - getOrganizationSettings
     * 
     * Retrieves the organization settings. This endpoint is deprecated, use org_settings from the portal config or getOrganizationSettingsByDomain instead.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOrganizationSettings.Responses.$200>
  }
  ['/v2/portal/schemas']: {
    /**
     * getSchemas - getSchemas
     * 
     * Retrieves the schemas. Only schemas usable in the private part of the portal are returned.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetSchemas.Responses.$200>
  }
  ['/v2/portal/public/schemas']: {
    /**
     * getSchemasByDomain - getSchemasByDomain
     * 
     * Retrieves schemas by domain. Only schemas and attributes used on public pages are returned.
     */
    'get'(
      parameters?: Parameters<Paths.GetSchemasByDomain.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetSchemasByDomain.Responses.$200>
  }
  ['/v3/portal/public/schemas']: {
    /**
     * getPublicSchemasV3 - getPublicSchemasV3
     * 
     * Retrieves schemas by portal. Only schemas and attributes used on public pages are returned.
     * Supports two identification methods:
     * 1. Using org_id + portal_id
     * 2. Using domain
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicSchemasV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicSchemasV3.Responses.$200>
  }
  ['/v2/portal/public/org/settings']: {
    /**
     * getOrganizationSettingsByDomain - getOrganizationSettingsByDomain
     * 
     * Retrieves organization settings by domain. Only public organization settings are returned.
     */
    'get'(
      parameters?: Parameters<Paths.GetOrganizationSettingsByDomain.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOrganizationSettingsByDomain.Responses.$200>
  }
  ['/v2/portal/extra-permission-attributes']: {
    /**
     * extraPermissionAttributes - extraPermissionAttributes
     * 
     * Retrieves the extra permission attributes.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ExtraPermissionAttributes.Responses.$200>
  }
  ['/v2/portal/validate/caa-records']: {
    /**
     * validateCaaRecords - validateCaaRecords
     * 
     * Validates the CAA records of a portal
     */
    'post'(
      parameters?: Parameters<Paths.ValidateCaaRecords.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ValidateCaaRecords.Responses.$200>
  }
  ['/v3/portal/validate/caa-records']: {
    /**
     * validateCaaRecordsV3 - validateCaaRecordsV3
     * 
     * Validates the CAA records of a portal
     */
    'post'(
      parameters?: Parameters<Paths.ValidateCaaRecordsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ValidateCaaRecordsV3.Responses.$200>
  }
  ['/v2/portal/contact']: {
    /**
     * getContact - getContact
     * 
     * Retrieves the contact of the logged in user.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetContact.Responses.$200>
    /**
     * updateContact - updateContact
     * 
     * Updates the contact details.
     */
    'patch'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.UpdateContact.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateContact.Responses.$200>
  }
  ['/v2/portal/ecp/contact']: {
    /**
     * getECPContact - getECPContact
     * 
     * Get the Contact by id
     */
    'get'(
      parameters?: Parameters<Paths.GetECPContact.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetECPContact.Responses.$200>
  }
  ['/v2/portal/public/contact/exists']: {
    /**
     * checkContactExists - checkContactExists
     * 
     * True if contact with given identifiers exists.
     */
    'post'(
      parameters?: Parameters<Paths.CheckContactExists.QueryParameters> | null,
      data?: Paths.CheckContactExists.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CheckContactExists.Responses.$200>
  }
  ['/v3/portal/public/contact/exists']: {
    /**
     * checkContactExistsV3 - checkContactExistsV3
     * 
     * True if contact with given identifiers exists.
     * Supports two identification methods:
     * 1. Using portal_id
     * 2. Using domain
     * 
     */
    'post'(
      parameters?: Parameters<Paths.CheckContactExistsV3.QueryParameters> | null,
      data?: Paths.CheckContactExistsV3.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CheckContactExistsV3.Responses.$200>
  }
  ['/v3/portal/public/account/exists']: {
    /**
     * checkAccountExists - checkAccountExists
     * 
     * True if account with given identifiers exists.
     * Supports two identification methods:
     * 1. Using portal_id
     * 2. Using domain
     * 
     */
    'post'(
      parameters?: Parameters<Paths.CheckAccountExists.QueryParameters> | null,
      data?: Paths.CheckAccountExists.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CheckAccountExists.Responses.$200>
  }
  ['/v2/portal/contact/valid/secondary/attributes']: {
    /**
     * getValidSecondaryAttributes - getValidSecondaryAttributes
     * 
     * Get valid secondary attributes that are used while mapping a contact on registration
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetValidSecondaryAttributes.Responses.$200>
  }
  ['/v2/portal/user']: {
    /**
     * getPortalUser - getPortalUser
     * 
     * Get the portal user details
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalUser.Responses.$200>
    /**
     * updatePortalUser - updatePortalUser
     * 
     * Update the portal user details
     */
    'patch'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.UpdatePortalUser.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdatePortalUser.Responses.$200>
    /**
     * deletePortalUser - deletePortalUser
     * 
     * Delete the portal user
     */
    'delete'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeletePortalUser.Responses.$200>
  }
  ['/v2/portal/user/update/email']: {
    /**
     * updatePortalUserEmail - updatePortalUserEmail
     * 
     * Update portal user email
     */
    'put'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.UpdatePortalUserEmail.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdatePortalUserEmail.Responses.$200>
  }
  ['/v2/portal/user/resend/confirmation-email/{id}']: {
    /**
     * resendConfirmationEmail - resendConfirmationEmail
     * 
     * Resend confirmation email
     */
    'post'(
      parameters?: Parameters<Paths.ResendConfirmationEmail.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ResendConfirmationEmail.Responses.$200>
  }
  ['/v2/portal/users/by-related-entity']: {
    /**
     * fetchPortalUsersByRelatedEntity - fetchPortalUsersByRelatedEntity
     * 
     * Get all users for a given entity
     */
    'get'(
      parameters?: Parameters<Paths.FetchPortalUsersByRelatedEntity.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.FetchPortalUsersByRelatedEntity.Responses.$200>
  }
  ['/v2/portal/user/confirm']: {
    /**
     * confirmUser - confirmUser
     * 
     * Confirm a portal user
     */
    'get'(
      parameters?: Parameters<Paths.ConfirmUser.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ConfirmUser.Responses.$200>
  }
  ['/v2/portal/user/confirm/{id}']: {
    /**
     * confirmUserWithUserId - confirmUserWithUserId
     * 
     * Confirm a portal user
     */
    'get'(
      parameters?: Parameters<Paths.ConfirmUserWithUserId.QueryParameters & Paths.ConfirmUserWithUserId.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<any>
  }
  ['/v2/portal/public/user/exists']: {
    /**
     * userExists - userExists
     * 
     * Checks whether a user exists in the portal
     */
    'get'(
      parameters?: Parameters<Paths.UserExists.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UserExists.Responses.$200>
  }
  ['/v3/portal/public/user/exists']: {
    /**
     * userExistsV3 - userExistsV3
     * 
     * Checks whether a user exists in the portal.
     * Supports two identification methods:
     * 1. Using org_id + portal_id
     * 2. Using domain
     * 
     */
    'get'(
      parameters?: Parameters<Paths.UserExistsV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UserExistsV3.Responses.$200>
  }
  ['/v2/portal/recipients-to-notify']: {
    /**
     * getRecipientsToNotifyOnAutomation - getRecipientsToNotifyOnAutomation
     * 
     * Get recipients to notify on automation
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.GetRecipientsToNotifyOnAutomation.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetRecipientsToNotifyOnAutomation.Responses.$200>
  }
  ['/v2/portal/configure-distribution']: {
    /**
     * configureDistribution - configureDistribution
     * 
     * Configure the distribution for the portal's custom domain
     */
    'get'(
      parameters?: Parameters<Paths.ConfigureDistribution.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ConfigureDistribution.Responses.$200>
  }
  ['/v3/portal/configure-distribution']: {
    /**
     * configureDistributionV3 - configureDistributionV3
     * 
     * Configure the distribution for the portal's custom domain
     */
    'get'(
      parameters?: Parameters<Paths.ConfigureDistributionV3.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ConfigureDistributionV3.Responses.$200>
  }
  ['/v2/portal/order']: {
    /**
     * getAllOrders - getAllOrders
     * 
     * Get all orders for the portal user. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetAllOrders.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllOrders.Responses.$200>
  }
  ['/v2/portal/order/{id}/acceptance']: {
    /**
     * postOrderAcceptance - postOrderAcceptance
     * 
     * Accept/decline an offer by id
     */
    'post'(
      parameters?: Parameters<Paths.PostOrderAcceptance.PathParameters> | null,
      data?: Paths.PostOrderAcceptance.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.PostOrderAcceptance.Responses.$200>
  }
  ['/v2/portal/order/{id}']: {
    /**
     * getOrder - getOrder
     * 
     * Get an order by id. Use getPortalUserEntity instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetOrder.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOrder.Responses.$200>
    /**
     * updateOrder - updateOrder
     * 
     * Update an order by id. Use getPortalUserEntity instead.
     */
    'patch'(
      parameters?: Parameters<Paths.UpdateOrder.PathParameters> | null,
      data?: Paths.UpdateOrder.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateOrder.Responses.$200>
  }
  ['/v2/portal/opportunity']: {
    /**
     * getAllOpportunities - getAllOpportunities
     * 
     * Get all opportunities of a portal user. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetAllOpportunities.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllOpportunities.Responses.$200>
  }
  ['/v2/portal/opportunities/searchable-attributes']: {
    /**
     * getSearchableAttributesForOpportunities - getSearchableAttributesForOpportunities
     * 
     * Get all opportunity searchable attributes for a portal user. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetSearchableAttributesForOpportunities.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetSearchableAttributesForOpportunities.Responses.$200>
  }
  ['/v2/portal/opportunities/search']: {
    /**
     * getSearchResultsForOpportunities - getSearchResultsForOpportunities
     * 
     * Get all opportunity with the given searched attributes. Use searchPortalUserEntities instead.
     */
    'post'(
      parameters?: Parameters<Paths.GetSearchResultsForOpportunities.QueryParameters> | null,
      data?: Paths.GetSearchResultsForOpportunities.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetSearchResultsForOpportunities.Responses.$200>
  }
  ['/v2/portal/opportunities/{id}']: {
    /**
     * getOpportunity - getOpportunity
     * 
     * Get an opportunity by id. Use getPortalUserEntity instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetOpportunity.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetOpportunity.Responses.$200>
    /**
     * updateOpportunity - updateOpportunity
     * 
     * Update an opportunity by id.
     */
    'patch'(
      parameters?: Parameters<Paths.UpdateOpportunity.PathParameters> | null,
      data?: Paths.UpdateOpportunity.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateOpportunity.Responses.$200>
  }
  ['/v2/portal/request']: {
    /**
     * getAllRequests - getAllRequests
     * 
     * Get all opportunities & orders of a portal user. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetAllRequests.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllRequests.Responses.$200>
  }
  ['/v2/portal/contract']: {
    /**
     * getAllContracts - getAllContracts
     * 
     * Get all contracts for a portal user. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetAllContracts.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllContracts.Responses.$200>
  }
  ['/v2/portal/contract/{id}']: {
    /**
     * getContract - getContract
     * 
     * Get a contract by id. Use getPortalUserEntity instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetContract.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetContract.Responses.$200>
    /**
     * updateContract - updateContract
     * 
     * Update a contract by id. Use getPortalUserEntity instead.
     */
    'patch'(
      parameters?: Parameters<Paths.UpdateContract.PathParameters> | null,
      data?: Paths.UpdateContract.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateContract.Responses.$200>
  }
  ['/v2/portal/contract/by-identifiers']: {
    /**
     * addContractByIdentifiers - addContractByIdentifiers
     * 
     * Self-assign contract(s) by pre-configured identifiers.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.AddContractByIdentifiers.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.AddContractByIdentifiers.Responses.$200>
  }
  ['/v2/portal/entity/identifiers/{slug}']: {
    /**
     * getEntityIdentifiers - getEntityIdentifiers
     * 
     * Retrieve a list of entity identifiers used for entity search by portal users.
     */
    'get'(
      parameters?: Parameters<Paths.GetEntityIdentifiers.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetEntityIdentifiers.Responses.$200>
  }
  ['/v2/portal/entity/{slug}/{id}/activity']: {
    /**
     * getEntityActivityFeed - getEntityActivityFeed
     * 
     * Get activity feed for an entity
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetEntityActivityFeed.QueryParameters & Paths.GetEntityActivityFeed.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetEntityActivityFeed.Responses.$200>
  }
  ['/v2/portal/{slug}/{id}:validateRule']: {
    /**
     * validateCadenceEntityEditRules - validateCadenceEntityEditRules
     * 
     * Validate if cadence rule is valid for an entity
     * 
     */
    'get'(
      parameters?: Parameters<Paths.ValidateCadenceEntityEditRules.QueryParameters & Paths.ValidateCadenceEntityEditRules.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ValidateCadenceEntityEditRules.Responses.$200>
  }
  ['/v2/portal/entities-by-payment/{id}']: {
    /**
     * searchPaymentRelationsInEntities - searchPaymentRelationsInEntities
     * 
     * Search for entities that have the payment relation with the given payment id
     * 
     */
    'get'(
      parameters?: Parameters<Paths.SearchPaymentRelationsInEntities.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SearchPaymentRelationsInEntities.Responses.$200>
  }
  ['/v2/portal/entity/activity']: {
    /**
     * createCustomEntityActivity - createCustomEntityActivity
     * 
     * Create a custom activity that can be displayed in activity feed of an entity.
     */
    'put'(
      parameters?: Parameters<Paths.CreateCustomEntityActivity.QueryParameters> | null,
      data?: Paths.CreateCustomEntityActivity.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreateCustomEntityActivity.Responses.$201>
  }
  ['/v2/portal/entity/file']: {
    /**
     * saveEntityFile - saveEntityFile
     * 
     * Add files to an entity
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.SaveEntityFile.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SaveEntityFile.Responses.$201>
    /**
     * deleteEntityFile - deleteEntityFile
     * 
     * Delete files from an entity
     */
    'delete'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.DeleteEntityFile.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeleteEntityFile.Responses.$202>
  }
  ['/v2/portal/portal/files']: {
    /**
     * savePortalFiles - savePortalFiles
     * 
     * Add files to portal
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.SavePortalFiles.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SavePortalFiles.Responses.$201>
  }
  ['/v2/portal/registration/identifiers']: {
    /**
     * getRegistrationIdentifiers - getRegistrationIdentifiers
     * 
     * Get valid attributes from entities that can be used as identifier to map contact to user on registration
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetRegistrationIdentifiers.Responses.$200>
  }
  ['/v2/portal/user/files']: {
    /**
     * getAllFiles - getAllFiles
     * 
     * Fetch all documents under the related entities of a contact. Use searchPortalUserEntities instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetAllFiles.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllFiles.Responses.$200>
  }
  ['/v2/portal/user/file/{id}']: {
    /**
     * getFileById - getFileById
     * 
     * Fetch a document with ID. Use getPortalUserEntity instead.
     */
    'get'(
      parameters?: Parameters<Paths.GetFileById.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetFileById.Responses.$200>
  }
  ['/v2/portal/user/file/{id}/downloaded']: {
    /**
     * trackFileDownloaded - trackFileDownloaded
     * 
     * Track that user has downloaded a file
     */
    'post'(
      parameters?: Parameters<Paths.TrackFileDownloaded.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.TrackFileDownloaded.Responses.$200>
  }
  ['/v2/portal/user/files/count-by-entity']: {
    /**
     * getFilesCountByEntity - getFileCountByEntity
     * 
     * Fetch file counts for all ECP user related entities
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetFilesCountByEntity.Responses.$200>
  }
  ['/v2/portal/billing/events']: {
    /**
     * getBillingEvents - getBillingEvents
     * 
     * Fetch billing events for a portal user
     */
    'get'(
      parameters?: Parameters<Paths.GetBillingEvents.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetBillingEvents.Responses.$200>
  }
  ['/v2/portal/billing/customers/balance']: {
    /**
     * getCustomerBalance - getCustomerBalance
     * 
     * Get total balance across all contracts and orders of a customer entity.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetCustomerBalance.Responses.$200>
  }
  ['/v2/portal/billing/accounts/{id}']: {
    /**
     * getBillingAccount - getBillingAccount
     * 
     * Get a billing account by id.
     */
    'get'(
      parameters?: Parameters<Paths.V2PortalBillingAccounts$Id.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetBillingAccount.Responses.$200>
  }
  ['/v2/portal/admin:login-as-user']: {
    /**
     * loginToPortalAsUser - loginToPortalAsUser
     * 
     * Generate a token to log in to a portal impersonating a users.
     * 
     * Token is valid for 5 minutes.
     * 
     * Supports three identification methods (at least one required):
     * 1. Using portal_id (takes precedence)
     * 2. Using domain
     * 3. Using origin (legacy)
     * 
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.LoginToPortalAsUser.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.LoginToPortalAsUser.Responses.$200>
  }
  ['/v2/portal/entity/{schema}/access']: {
    /**
     * triggerEntityAccessEvent - triggerEntityAccessEvent
     * 
     * Trigger entity access event for a portal user
     */
    'post'(
      parameters?: Parameters<Paths.TriggerEntityAccessEvent.QueryParameters & Paths.TriggerEntityAccessEvent.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.TriggerEntityAccessEvent.Responses.$200>
  }
  ['/v3/portal/entity/{schema}/access']: {
    /**
     * triggerEntityAccessEventV3 - triggerEntityAccessEventV3
     * 
     * Trigger entity access event for a portal user.
     * Supports two identification methods:
     * 1. Using portal_id
     * 2. Using domain
     * 
     */
    'post'(
      parameters?: Parameters<Paths.TriggerEntityAccessEventV3.QueryParameters & Paths.TriggerEntityAccessEventV3.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.TriggerEntityAccessEventV3.Responses.$200>
  }
  ['/v2/portal/entity:get']: {
    /**
     * getPortalUserEntity - getPortalUserEntity
     * 
     * Get a single entity for a portal user
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.GetPortalUserEntity.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalUserEntity.Responses.$200>
  }
  ['/v2/portal/entity:search']: {
    /**
     * searchPortalUserEntities - searchPortalUserEntities
     * 
     * Search all entities of a portal user
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.SearchPortalUserEntities.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SearchPortalUserEntities.Responses.$200>
  }
  ['/v2/portal/can-trigger-portal-flow']: {
    /**
     * canTriggerPortalFlow - canTriggerPortalFlow
     * 
     * Returns whether the user can trigger a portal flow
     */
    'post'(
      parameters?: Parameters<Paths.CanTriggerPortalFlow.QueryParameters> | null,
      data?: Paths.CanTriggerPortalFlow.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CanTriggerPortalFlow.Responses.$200>
  }
  ['/v2/portal/automation-context']: {
    /**
     * getAutomationContext - getAutomationContext
     * 
     * Retrieves the automation context.
     */
    'get'(
      parameters?: Parameters<Paths.GetAutomationContext.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAutomationContext.Responses.$200>
  }
  ['/v2/portal/workflow/{workflow_id}/{step_id}:markDone']: {
    /**
     * updateWorkflowStepAsDone - updateWorkflowStepAsDone
     * 
     * Update a workflow step as done
     */
    'put'(
      parameters?: Parameters<Paths.UpdateWorkflowStepAsDone.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateWorkflowStepAsDone.Responses.$200>
  }
  ['/v2/portal/entity/{slug}/{id}/workflows']: {
    /**
     * getEntityWorkflows - Get workflows for an entity
     * 
     * Get all workflows associated with an entity (requires access to the entity)
     */
    'get'(
      parameters?: Parameters<Paths.GetEntityWorkflows.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetEntityWorkflows.Responses.$200>
  }
  ['/v2/portal/metering/reading/photo']: {
    /**
     * uploadMeterReadingPhoto - Upload Meter Reading Photo
     * 
     * Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.UploadMeterReadingPhoto.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UploadMeterReadingPhoto.Responses.$200>
  }
  ['/v2/portal/metering/reading']: {
    /**
     * createMeterReading - Create Meter Reading
     * 
     * Inserts a new meter reading.
     */
    'post'(
      parameters?: Parameters<Paths.CreateMeterReading.QueryParameters> | null,
      data?: Paths.CreateMeterReading.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreateMeterReading.Responses.$200>
  }
  ['/v2/portal/metering/reading/allowed-range/{meter_id}']: {
    /**
     * getAllowedMeterReadingRange - Get allowed reading range for all counters of a meter from the configured
     * third-party plausibility check hook using 'range' mode. This endpoint requires
     * a plausibility check hook to be configured for the portal.
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetAllowedMeterReadingRange.QueryParameters & Paths.GetAllowedMeterReadingRange.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetAllowedMeterReadingRange.Responses.$200>
  }
  ['/v2/portal/metering/readings']: {
    /**
     * getMeterReadings - Get meter readings with optional template resolution
     * 
     * Fetches meter readings for a counter and optionally resolves Handlebars
     * template strings against each reading object using @epilot/variables.
     * 
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.GetMeterReadings.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetMeterReadings.Responses.$200>
  }
  ['/v2/portal/public/sso/providers/{provider_slug}']: {
    /**
     * getSSOProvider - getSSOProvider
     * 
     * Returns the public configuration of a single SSO identity provider with env var
     * placeholders (incl. secrets) already resolved against the organization's environment.
     * 
     * Use this endpoint at SSO initiation time (i.e. when the end user clicks "Sign in with X")
     * to obtain the resolved OIDC settings needed to construct the authorization URL.
     * The web `client_secret` is intentionally never returned — it is used server-side by
     * the SSO callback to exchange the authorization code for tokens.
     * 
     * Supports three identification methods:
     * 1. `org_id` + `origin`
     * 2. `org_id` + `portal_id`
     * 3. `domain`
     * 
     */
    'get'(
      parameters?: Parameters<Paths.GetSSOProvider.QueryParameters & Paths.GetSSOProvider.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetSSOProvider.Responses.$200>
  }
  ['/v2/portal/public/sso/login']: {
    /**
     * ssoLogin - ssoLogin
     * 
     * Initiate login using external SSO identity.
     * 
     * Verifies the user with the issuer and matches the identity to an epilot user (or creates a new user).
     * 
     * Returns parameters to be used with CUSTOM_AUTH flow against Cognito
     * 
     */
    'post'(
      parameters?: Parameters<Paths.SsoLogin.QueryParameters> | null,
      data?: Paths.SsoLogin.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SsoLogin.Responses.$200>
  }
  ['/v3/portal/public/sso/login']: {
    /**
     * ssoLoginV3 - ssoLoginV3
     * 
     * Initiate login using external SSO identity.
     * 
     * Verifies the user with the issuer and matches the identity to an epilot user (or creates a new user).
     * 
     * Returns parameters to be used with CUSTOM_AUTH flow against Cognito.
     * 
     * Supports two identification methods:
     * 1. Using org_id + portal_id
     * 2. Using domain
     * 
     */
    'post'(
      parameters?: Parameters<Paths.SsoLoginV3.QueryParameters> | null,
      data?: Paths.SsoLoginV3.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SsoLoginV3.Responses.$200>
  }
  ['/v2/portal/public/sso/redirect']: {
    /**
     * ssoRedirect - ssoRedirect
     * 
     * Handles the redirect from the external SSO provider. Validates the authorization `code` and `state` received from the provider.
     * Redirects the user to the provided `web_uri` with the validated credentials.
     * 
     */
    'post'(
      parameters?: Parameters<Paths.SsoRedirect.QueryParameters> | null,
      data?: Paths.SsoRedirect.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<any>
  }
  ['/v2/portal/public/sso/callback']: {
    /**
     * ssoCallback - ssoCallback
     * 
     * Handles the callback from the external SSO provider, validates the authorization `code`
     * and generates a external provider token to be used with the CUSTOM_AUTH flow against Cognito.
     * 
     */
    'post'(
      parameters?: Parameters<Paths.SsoCallback.QueryParameters> | null,
      data?: Paths.SsoCallback.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SsoCallback.Responses.$200>
  }
  ['/v2/portal/pages/{id}']: {
    /**
     * getPortalPage - getPortalPage
     * 
     * Fetch a portal page by id
     */
    'get'(
      parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalPage.Responses.$200>
    /**
     * updatePortalPage - updatePortalPage
     * 
     * Update a portal page by id
     */
    'put'(
      parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
      data?: Paths.UpdatePortalPage.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdatePortalPage.Responses.$200>
    /**
     * deletePortalPage - deletePortalPage
     * 
     * Delete a portal page by id
     */
    'delete'(
      parameters?: Parameters<Paths.V2PortalPages$Id.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeletePortalPage.Responses.$204>
  }
  ['/v2/portal/pages']: {
    /**
     * getPortalPages - getPortalPages
     * 
     * Fetch all portal pages
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalPages.QueryParameters & Paths.V2PortalPages.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalPages.Responses.$200>
    /**
     * createPortalPage - createPortalPage
     * 
     * Create a new portal page
     */
    'post'(
      parameters?: Parameters<Paths.V2PortalPages.QueryParameters> | null,
      data?: Paths.CreatePortalPage.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreatePortalPage.Responses.$200>
  }
  ['/v2/portal/public/pages']: {
    /**
     * getPublicPages - getPublicPages
     * 
     * Fetch all public portal pages
     */
    'get'(
      parameters?: Parameters<Paths.GetPublicPages.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPublicPages.Responses.$200>
  }
  ['/v2/portal/pages/interpolate']: {
    /**
     * interpolatePortalPages - interpolatePortalPages
     * 
     * Interpolate template variables in portal pages without reading from the database. Accepts pages in the request body and returns them with templates resolved.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.InterpolatePortalPages.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.InterpolatePortalPages.Responses.$200>
  }
  ['/v2/portal/pages/default']: {
    /**
     * getDefaultPages - getDefaultPages
     * 
     * Fetch all default portal pages
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetDefaultPages.Responses.$200>
  }
  ['/v2/portal/pages/{id}/blocks']: {
    /**
     * createPortalPageBlock - createPortalPageBlock
     * 
     * Create a new portal page block
     */
    'post'(
      parameters?: Parameters<Paths.V2PortalPages$IdBlocks.PathParameters> | null,
      data?: Paths.CreatePortalPageBlock.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreatePortalPageBlock.Responses.$200>
    /**
     * getPortalPageBlocks - getPortalPageBlocks
     * 
     * Fetch all portal page blocks
     */
    'get'(
      parameters?: Parameters<Paths.V2PortalPages$IdBlocks.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalPageBlocks.Responses.$200>
  }
  ['/v2/portal/pages/{id}/blocks/{block_id}']: {
    /**
     * getPortalPageBlock - getPortalPageBlock
     * 
     * Fetch a portal page block by id
     */
    'get'(
      parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalPageBlock.Responses.$200>
    /**
     * updatePortalPageBlock - updatePortalPageBlock
     * 
     * Update a portal page block by id
     */
    'put'(
      parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
      data?: Paths.UpdatePortalPageBlock.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdatePortalPageBlock.Responses.$200>
    /**
     * deletePortalPageBlock - deletePortalPageBlock
     * 
     * Delete a portal page block by id
     */
    'delete'(
      parameters?: Parameters<Paths.V2PortalPages$IdBlocks$BlockId.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeletePortalPageBlock.Responses.$204>
  }
  ['/v2/portal/public/user/entry-point']: {
    /**
     * getUserEntryPoint - getUserEntryPoint
     * 
     * Get the entry point for the user
     */
    'get'(
      parameters?: Parameters<Paths.GetUserEntryPoint.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetUserEntryPoint.Responses.$200>
  }
  ['/v2/portal/campaign/{campaign_id}/entity:status']: {
    /**
     * updateCampaignPortalBlockStatus - Update Campaign Portal Block Status
     * 
     * Updates the status of a campaign portal block for multiple recipients.
     */
    'put'(
      parameters?: Parameters<Paths.UpdateCampaignPortalBlockStatus.PathParameters> | null,
      data?: Paths.UpdateCampaignPortalBlockStatus.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateCampaignPortalBlockStatus.Responses.$200>
  }
  ['/v2/portal/notifications/entity:status']: {
    /**
     * updateNotificationsStatus - updateNotificationsStatus
     * 
     * Updates the statuses of multiple notifications at once.
     */
    'put'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.UpdateNotificationsStatus.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.UpdateNotificationsStatus.Responses.$200>
  }
  ['/v2/portal/public/m-login/deregister/{client_id}/{user_id}']: {
    /**
     * deRegisterMLoginUser - deRegisterMLoginUser
     * 
     * Deregisters a user from the M Login client
     */
    'delete'(
      parameters?: Parameters<Paths.DeRegisterMLoginUser.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeRegisterMLoginUser.Responses.$204>
  }
  ['/v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}']: {
    /**
     * notifyMLoginInterestChange - notifyMLoginInterestChange
     * 
     * Notifies the interest change of a user in the M Login client
     */
    'post'(
      parameters?: Parameters<Paths.NotifyMLoginInterestChange.PathParameters> | null,
      data?: Paths.NotifyMLoginInterestChange.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.NotifyMLoginInterestChange.Responses.$200>
  }
  ['/v3/portal/config']: {
    /**
     * createPortalConfig - createPortalConfig
     * 
     * Creates a new portal configuration.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.CreatePortalConfig.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.CreatePortalConfig.Responses.$201>
  }
  ['/v3/portal/config/{portal_id}']: {
    /**
     * getPortalConfigV3 - getPortalConfigV3
     * 
     * Retrieves a specific portal configuration by ID.
     */
    'get'(
      parameters?: Parameters<Paths.GetPortalConfigV3.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.GetPortalConfigV3.Responses.$200>
    /**
     * putPortalConfig - putPortalConfig
     * 
     * Updates a specific portal configuration by ID.
     */
    'put'(
      parameters?: Parameters<Paths.PutPortalConfig.PathParameters> | null,
      data?: Paths.PutPortalConfig.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.PutPortalConfig.Responses.$200>
    /**
     * deletePortalConfig - deletePortalConfig
     * 
     * Deletes a specific portal configuration by ID.
     */
    'delete'(
      parameters?: Parameters<Paths.DeletePortalConfig.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DeletePortalConfig.Responses.$204>
  }
  ['/v3/portal/configs']: {
    /**
     * listAllPortalConfigs - listAllPortalConfigs
     * 
     * Retrieves all portal configurations.
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ListAllPortalConfigs.Responses.$200>
  }
  ['/v3/portal/config/swap']: {
    /**
     * swapPortalConfig - swapPortalConfig
     * 
     * Swaps the portal configuration of two portals.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.SwapPortalConfig.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.SwapPortalConfig.Responses.$200>
  }
  ['/v3/portal/config/clone']: {
    /**
     * clonePortalConfig - clonePortalConfig
     * 
     * Creates a new portal by cloning configuration and pages from an existing portal. The new portal gets its own domain, users, email templates, and authentication settings.
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.ClonePortalConfig.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ClonePortalConfig.Responses.$201>
  }
  ['/v3/portal/partner/invite']: {
    /**
     * invitePartner - invitePartner
     * 
     * Invites a partner to a portal
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.InvitePartner.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.InvitePartner.Responses.$200>
  }
  ['/v3/portal/partner/list']: {
    /**
     * listBusinessPartners - listBusinessPartners
     * 
     * Lists all business partners linked to the businessaccount
     */
    'get'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ListBusinessPartners.Responses.$200>
  }
  ['/v3/portal/partner/{partner_id}/resend-invitation']: {
    /**
     * resendPartnerInvitation - resendPartnerInvitation
     * 
     * Resends an invitation email to a partner
     */
    'post'(
      parameters?: Parameters<Paths.ResendPartnerInvitation.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.ResendPartnerInvitation.Responses.$200>
  }
  ['/v3/portal/partner/{partner_id}/revoke']: {
    /**
     * revokePartner - revokePartner
     * 
     * Revokes a partner from a portal
     */
    'delete'(
      parameters?: Parameters<Paths.RevokePartner.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.RevokePartner.Responses.$200>
  }
  ['/v3/portal/partner/{partner_id}/disable']: {
    /**
     * disablePartner - disablePartner
     * 
     * Disables a partner from a portal
     */
    'post'(
      parameters?: Parameters<Paths.DisablePartner.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.DisablePartner.Responses.$200>
  }
  ['/v3/portal/partner/{partner_id}/enable']: {
    /**
     * enablePartner - enablePartner
     * 
     * Enables a partner from a portal
     */
    'post'(
      parameters?: Parameters<Paths.EnablePartner.PathParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.EnablePartner.Responses.$200>
  }
  ['/v3/portal/verify-dns']: {
    /**
     * verifyDns - verifyDns
     * 
     * Manually triggers DNS verification for a portal's domain setup. Runs the same verification logic as the scheduled processAllPendingNetworks lambda.
     */
    'post'(
      parameters?: Parameters<Paths.VerifyDns.QueryParameters> | null,
      data?: any,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.VerifyDns.Responses.$200>
  }
  ['/v2/portal/proxy/execute']: {
    /**
     * portalProxyExecute - portalProxyExecute
     * 
     * Execute an Integration Hub managed-call use case on behalf of a portal user.
     * Bridges PortalAuth to the Integration API by generating an internal token.
     * 
     */
    'post'(
      parameters?: Parameters<UnknownParamsObject> | null,
      data?: Paths.PortalProxyExecute.RequestBody,
      config?: AxiosRequestConfig  
    ): OperationResponse<Paths.PortalProxyExecute.Responses.$200>
  }
}

export type Client = OpenAPIClient<OperationMethods, PathsDictionary>


export type AcceptanceDecision = Components.Schemas.AcceptanceDecision;
export type AccountExistsRequest = Components.Schemas.AccountExistsRequest;
export type ActionLabel = Components.Schemas.ActionLabel;
export type ActionWidget = Components.Schemas.ActionWidget;
export type Activity = Components.Schemas.Activity;
export type ActivityCallerContext = Components.Schemas.ActivityCallerContext;
export type ActivityId = Components.Schemas.ActivityId;
export type ActivityItem = Components.Schemas.ActivityItem;
export type AdminUser = Components.Schemas.AdminUser;
export type AllowedFileExtensions = Components.Schemas.AllowedFileExtensions;
export type AttributeMappingConfig = Components.Schemas.AttributeMappingConfig;
export type AuthConfig = Components.Schemas.AuthConfig;
export type Balance = Components.Schemas.Balance;
export type BaseBillingEvent = Components.Schemas.BaseBillingEvent;
export type BaseEntity = Components.Schemas.BaseEntity;
export type BillingAccount = Components.Schemas.BillingAccount;
export type BillingEvent = Components.Schemas.BillingEvent;
export type Block = Components.Schemas.Block;
export type BlockId = Components.Schemas.BlockId;
export type BlockProps = Components.Schemas.BlockProps;
export type BlockRequest = Components.Schemas.BlockRequest;
export type BlockType = Components.Schemas.BlockType;
export type BusinessPartnerItem = Components.Schemas.BusinessPartnerItem;
export type CampaignWidget = Components.Schemas.CampaignWidget;
export type CommonConfigAttributes = Components.Schemas.CommonConfigAttributes;
export type CommonConfigAttributesV3 = Components.Schemas.CommonConfigAttributesV3;
export type Contact = Components.Schemas.Contact;
export type ContactCountRequest = Components.Schemas.ContactCountRequest;
export type ContactExistsRequest = Components.Schemas.ContactExistsRequest;
export type ContentWidget = Components.Schemas.ContentWidget;
export type ContextEntities = Components.Schemas.ContextEntities;
export type ContextEntity = Components.Schemas.ContextEntity;
export type Contract = Components.Schemas.Contract;
export type ContractIdentifier = Components.Schemas.ContractIdentifier;
export type CreateUserRequest = Components.Schemas.CreateUserRequest;
export type Currency = Components.Schemas.Currency;
export type DataRetrievalItem = Components.Schemas.DataRetrievalItem;
export type DeleteEntityFile = Components.Schemas.DeleteEntityFile;
export type Direction = Components.Schemas.Direction;
export type DocumentWidget = Components.Schemas.DocumentWidget;
export type DomainSettings = Components.Schemas.DomainSettings;
export type EmailTemplates = Components.Schemas.EmailTemplates;
export type Entity = Components.Schemas.Entity;
export type EntityEditRule = Components.Schemas.EntityEditRule;
export type EntityFileCount = Components.Schemas.EntityFileCount;
export type EntityGetParams = Components.Schemas.EntityGetParams;
export type EntityId = Components.Schemas.EntityId;
export type EntityItem = Components.Schemas.EntityItem;
export type EntityMatchingConfig = Components.Schemas.EntityMatchingConfig;
export type EntityResponse = Components.Schemas.EntityResponse;
export type EntityResponseGroupedWithHits = Components.Schemas.EntityResponseGroupedWithHits;
export type EntityResponseWithHits = Components.Schemas.EntityResponseWithHits;
export type EntitySearchParams = Components.Schemas.EntitySearchParams;
export type EntitySlug = Components.Schemas.EntitySlug;
export type EntitySlugConfig = Components.Schemas.EntitySlugConfig;
export type EntityTemplates = Components.Schemas.EntityTemplates;
export type EntityWidget = Components.Schemas.EntityWidget;
export type ErrorResp = Components.Schemas.ErrorResp;
export type Exists = Components.Schemas.Exists;
export type Extension = Components.Schemas.Extension;
export type ExtensionAuthBlock = Components.Schemas.ExtensionAuthBlock;
export type ExtensionConfig = Components.Schemas.ExtensionConfig;
export type ExtensionHook = Components.Schemas.ExtensionHook;
export type ExtensionHookConsumptionDataRetrieval = Components.Schemas.ExtensionHookConsumptionDataRetrieval;
export type ExtensionHookContractIdentification = Components.Schemas.ExtensionHookContractIdentification;
export type ExtensionHookCostDataRetrieval = Components.Schemas.ExtensionHookCostDataRetrieval;
export type ExtensionHookDataExport = Components.Schemas.ExtensionHookDataExport;
export type ExtensionHookMeterReadingPlausibilityCheck = Components.Schemas.ExtensionHookMeterReadingPlausibilityCheck;
export type ExtensionHookPriceDataRetrieval = Components.Schemas.ExtensionHookPriceDataRetrieval;
export type ExtensionHookRegistrationIdentifiersCheck = Components.Schemas.ExtensionHookRegistrationIdentifiersCheck;
export type ExtensionHookSelection = Components.Schemas.ExtensionHookSelection;
export type ExtensionHookVisualizationMetadata = Components.Schemas.ExtensionHookVisualizationMetadata;
export type ExtensionSeamlessLink = Components.Schemas.ExtensionSeamlessLink;
export type ExternalLink = Components.Schemas.ExternalLink;
export type ExtraSchemaAttributes = Components.Schemas.ExtraSchemaAttributes;
export type FailedRuleErrorResp = Components.Schemas.FailedRuleErrorResp;
export type File = Components.Schemas.File;
export type FileItem = Components.Schemas.FileItem;
export type Grant = Components.Schemas.Grant;
export type IdentifierAttribute = Components.Schemas.IdentifierAttribute;
export type InstallmentEvent = Components.Schemas.InstallmentEvent;
export type JourneyActions = Components.Schemas.JourneyActions;
export type JuiceSettings = Components.Schemas.JuiceSettings;
export type Meter = Components.Schemas.Meter;
export type MeterChartWidget = Components.Schemas.MeterChartWidget;
export type MeterReading = Components.Schemas.MeterReading;
export type MeterReadingPhoto = Components.Schemas.MeterReadingPhoto;
export type MeterReadingPhotoData = Components.Schemas.MeterReadingPhotoData;
export type MeterReadingWidget = Components.Schemas.MeterReadingWidget;
export type MoblieOIDCConfig = Components.Schemas.MoblieOIDCConfig;
export type OIDCProviderConfig = Components.Schemas.OIDCProviderConfig;
export type OIDCProviderMetadata = Components.Schemas.OIDCProviderMetadata;
export type Opportunity = Components.Schemas.Opportunity;
export type Order = Components.Schemas.Order;
export type OrganizationSettings = Components.Schemas.OrganizationSettings;
export type Origin = Components.Schemas.Origin;
export type Page = Components.Schemas.Page;
export type PageRequest = Components.Schemas.PageRequest;
export type PaymentWidget = Components.Schemas.PaymentWidget;
export type PortalConfig = Components.Schemas.PortalConfig;
export type PortalConfigV3 = Components.Schemas.PortalConfigV3;
export type PortalId = Components.Schemas.PortalId;
export type PortalUser = Components.Schemas.PortalUser;
export type PortalUserRegistrationStatus = Components.Schemas.PortalUserRegistrationStatus;
export type PortalWidget = Components.Schemas.PortalWidget;
export type Product = Components.Schemas.Product;
export type ProductRecommendationsWidget = Components.Schemas.ProductRecommendationsWidget;
export type ProviderConfig = Components.Schemas.ProviderConfig;
export type ProviderDisplayName = Components.Schemas.ProviderDisplayName;
export type ProviderPublicConfig = Components.Schemas.ProviderPublicConfig;
export type ProviderSlug = Components.Schemas.ProviderSlug;
export type PublicAppDetails = Components.Schemas.PublicAppDetails;
export type PublicContractIdentificationDetails = Components.Schemas.PublicContractIdentificationDetails;
export type PublicDataRetrievalHookDetails = Components.Schemas.PublicDataRetrievalHookDetails;
export type PublicExtensionCapabilities = Components.Schemas.PublicExtensionCapabilities;
export type PublicExtensionDetails = Components.Schemas.PublicExtensionDetails;
export type PublicMeterReadingPlausibilityCheckDetails = Components.Schemas.PublicMeterReadingPlausibilityCheckDetails;
export type ReadBy = Components.Schemas.ReadBy;
export type ReadingStatus = Components.Schemas.ReadingStatus;
export type Reason = Components.Schemas.Reason;
export type RegistrationIdentifier = Components.Schemas.RegistrationIdentifier;
export type ReimbursementEvent = Components.Schemas.ReimbursementEvent;
export type Rule = Components.Schemas.Rule;
export type SAMLProviderConfig = Components.Schemas.SAMLProviderConfig;
export type SSOCallbackRequest = Components.Schemas.SSOCallbackRequest;
export type SSOCallbackResponse = Components.Schemas.SSOCallbackResponse;
export type SSOLoginToken = Components.Schemas.SSOLoginToken;
export type SaveEntityFile = Components.Schemas.SaveEntityFile;
export type SavePortalFile = Components.Schemas.SavePortalFile;
export type Schema = Components.Schemas.Schema;
export type SearchIncludes = Components.Schemas.SearchIncludes;
export type SecureProxyConfig = Components.Schemas.SecureProxyConfig;
export type Source = Components.Schemas.Source;
export type SwappableConfig = Components.Schemas.SwappableConfig;
export type TariffType = Components.Schemas.TariffType;
export type TeaserWidget = Components.Schemas.TeaserWidget;
export type TriggerPortalFlow = Components.Schemas.TriggerPortalFlow;
export type UpdateOnlyPortalConfigAttributes = Components.Schemas.UpdateOnlyPortalConfigAttributes;
export type UpsertPortalConfig = Components.Schemas.UpsertPortalConfig;
export type UpsertPortalConfigV3 = Components.Schemas.UpsertPortalConfigV3;
export type UpsertPortalWidget = Components.Schemas.UpsertPortalWidget;
export type UserRequest = Components.Schemas.UserRequest;
export type VisualizationDataRange = Components.Schemas.VisualizationDataRange;
export type VisualizationMetadata = Components.Schemas.VisualizationMetadata;
export type VisualizationTypeOption = Components.Schemas.VisualizationTypeOption;
export type WidgetAction = Components.Schemas.WidgetAction;
export type WidgetBase = Components.Schemas.WidgetBase;
export type WorfklowIdentifier = Components.Schemas.WorfklowIdentifier;
export type WorkflowExecution = Components.Schemas.WorkflowExecution;
export type WorkflowStep = Components.Schemas.WorkflowStep;
