""" Options: Date: 2025-07-18 00:01:01 Version: 6.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: CountryClientSiteContextReq.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Time: hours: int = 0 minutes: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class OpeningHours: opening: Optional[Time] = None lunch_start: Optional[Time] = None lunch_end: Optional[Time] = None closing: Optional[Time] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactDetails: website: Optional[str] = None email: Optional[str] = None phone_number: Optional[str] = None opening_hours: Optional[Dict[str, OpeningHours]] = None show_in_footer: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Entity(IEntity): id: Optional[str] = None class AuthenticationMethodType(str, Enum): NEM_ID = 'NemId' SSO = 'SSO' COMMON = 'Common' SINGLE = 'Single' # @Route("/members", "PUT") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(Member, IReturn["Member"]): id: Optional[str] = None email: Optional[str] = None employee_guid_string: Optional[str] = None ignore_gender: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Document(IId, ITimestamp): id: int = 0 reference: Optional[str] = None description: Optional[str] = None tags: Optional[str] = None country_id: Optional[int] = None client_id: Optional[int] = None member_id: Optional[int] = None group: Optional[str] = None sub_tag: Optional[str] = None language_iso_code: Optional[str] = None benefit_effective_date: Optional[datetime.datetime] = None bulk_name: Optional[str] = None size: Optional[int] = None date_created: datetime.datetime = datetime.datetime(1, 1, 1) inactive: bool = False timestamp: Optional[bytes] = None client: Optional[Client] = None country: Optional[Country] = None member: Optional[Member] = None document_groups: Optional[List[DocumentGroup]] = None blob_name: Optional[str] = None content_type: Optional[str] = None filename: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(Entity, IProjectable): user_id: Optional[str] = None system_id: Optional[str] = None scheme_code: Optional[str] = None session_id: Optional[str] = None client_id: Optional[str] = None client_code: Optional[str] = None is_default: bool = False group_id: Optional[str] = None group_name_upper: Optional[str] = None app_name: Optional[str] = None app_name_upper: Optional[str] = None key: Optional[str] = None key_upper: Optional[str] = None country: Optional[str] = None locale: Optional[str] = None ccy: Optional[str] = None cdy: Optional[str] = None status: Optional[str] = None status_code: Optional[str] = None category: Optional[str] = None scheme: Optional[str] = None primary_salary: Optional[str] = None email: Optional[str] = None employer: Optional[Employer] = None roles: Optional[Roles] = None as_at: datetime.datetime = datetime.datetime(1, 1, 1) calc_date: datetime.datetime = datetime.datetime(1, 1, 1) next_e_o_f_y: datetime.datetime = datetime.datetime(1, 1, 1) period_to_next_e_o_f_y: float = 0.0 year: int = 0 has_partner: bool = False include_partner: bool = False include_partner_in_calc: bool = False home_owner: bool = False target_age: int = 0 target_time: int = 0 target_income_r: float = 0.0 target_income_r_freq: float = 0.0 target_income_r_annual: float = 0.0 target_p: float = 0.0 include_s_s: bool = False first_name: Optional[str] = None last_name: Optional[str] = None gender: Optional[Gender] = None dob: datetime.datetime = datetime.datetime(1, 1, 1) salary: float = 0.0 people: Optional[List[Person]] = None assets: Optional[List[Asset]] = None include_annuities: bool = False annuities: Optional[List[Annuity]] = None spending: Optional[Spending] = None investment_properties: Optional[List[InvestmentProperty]] = None income_vectors: Optional[Dict[str, List[float]]] = None config: Optional[AssumptionsConfig] = None indexation: Optional[List[RateSpec]] = None annuity_disc: Optional[List[RateSpec]] = None indexation_rates: Optional[Dict[str, List[float]]] = None annuity_disc_rates: Optional[Dict[str, List[float]]] = None balance: float = 0.0 plan_some_value: Optional[str] = None flag1: bool = False flag2: bool = False is_friendly: bool = False financing_option: Optional[str] = None total_years: int = 0 total_loop_years: int = 0 age: float = 0.0 age_r: float = 0.0 int_age: int = 0 index_type: Optional[str] = None index_type_pre: Optional[str] = None index_type_post: Optional[str] = None deflation_type: Optional[str] = None custom: Optional[Dict[str, str]] = None country_calc_config: Optional[CountryCalculatorConfiguration] = None summary: Optional[MemberSummary] = None last_modified: datetime.datetime = datetime.datetime(1, 1, 1) is_returning_user: bool = False client_country_config_cache_key: Optional[str] = None personal_assets: float = 0.0 results_summary: Optional[Summary] = None total_contribution: Optional[TotalContribution] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(IId, ITimestamp): id: int = 0 employee_guid: Optional[str] = None employee_id: Optional[str] = None client_id: Optional[int] = None configuration_id: Optional[int] = None last_name: Optional[str] = None first_name: Optional[str] = None company_name: Optional[str] = None employee_group: Optional[str] = None title: Optional[str] = None birthdate: datetime.datetime = datetime.datetime(1, 1, 1) email_address: Optional[str] = None marital_status: Optional[MaritalStatuses] = None partner_birth_date: Optional[datetime.datetime] = None gender: Optional[IsoGenders] = None military_month_count: Optional[int] = None annual_salary: Optional[Decimal] = None monthly_salary: Optional[Decimal] = None salary_frequency: Optional[int] = None de_federal_state: Optional[GermanFederalStates] = None de_tax_class: Optional[GermanTaxClasses] = None de_church_tax: Optional[bool] = None de_priv_nursing_insurance: Optional[Decimal] = None pension_financing_option: Optional[str] = None has_priv_health_insurance: Optional[bool] = None priv_health_insurance: Optional[Decimal] = None children_count: Optional[int] = None child1_birth_date: Optional[datetime.datetime] = None child2_birth_date: Optional[datetime.datetime] = None child3_birth_date: Optional[datetime.datetime] = None child4_birth_date: Optional[datetime.datetime] = None child5_birth_date: Optional[datetime.datetime] = None child6_birth_date: Optional[datetime.datetime] = None child7_birth_date: Optional[datetime.datetime] = None child8_birth_date: Optional[datetime.datetime] = None child9_birth_date: Optional[datetime.datetime] = None child10_birth_date: Optional[datetime.datetime] = None auth_id: Optional[str] = None auth_registration_date: Optional[datetime.datetime] = None activation_code: Optional[str] = None activation_expiring_date: Optional[datetime.datetime] = None plan_info_date: Optional[datetime.datetime] = None plan_info_bag: Optional[str] = None inactive: bool = False date_created: datetime.datetime = datetime.datetime(1, 1, 1) remove_request_date: Optional[datetime.datetime] = None timestamp: Optional[bytes] = None client: Optional[Client] = None contribution_data_date: Optional[datetime.datetime] = None beneficiary_first_name: Optional[str] = None beneficiary_last_name: Optional[str] = None beneficiary_title: Optional[str] = None beneficiary_date_of_birth: Optional[datetime.datetime] = None address_line1: Optional[str] = None address_line2: Optional[str] = None address_line3: Optional[str] = None phone_number: Optional[str] = None mobile_number: Optional[str] = None date_commenced_service: Optional[datetime.datetime] = None calculator_data_date: Optional[datetime.datetime] = None calculator_data_bag: Optional[str] = None period_start: Optional[datetime.datetime] = None period_end: Optional[datetime.datetime] = None member_id: Optional[int] = None info_bag: Optional[str] = None projection_info_bag: Optional[str] = None company_plan_info: Optional[str] = None info_provider_reference: Optional[str] = None date_of_hire: Optional[datetime.datetime] = None ssin: Optional[str] = None is_proxy: Optional[bool] = None is_allowed_to_vote: Optional[bool] = None user_id: Optional[str] = None participant_status: Optional[str] = None investment_strategy: Optional[str] = None is_allowed_to_update_plan: Optional[bool] = None pensionable_salary: Optional[Decimal] = None date_of_birth_spouse: Optional[datetime.datetime] = None date_of_birth_youngest_child: Optional[datetime.datetime] = None date_hired_of_plan: Optional[datetime.datetime] = None contract_type: Optional[str] = None investment_risk_profile: Optional[str] = None documents: Optional[List[Document]] = None powens_connection_syncs: Optional[List[PowensConnectionSync]] = None members: Optional[List[Member]] = None group_members: Optional[List[GroupMember]] = None parent: Optional[Member] = None pension_fund_manager: Optional[str] = None proxy_accesses: Optional[List[ProxyAccess]] = None beneficiaries: Optional[List[Beneficiary]] = None current_balances: Optional[List[CurrentBalance]] = None detailed_balances: Optional[List[DetailedBalance]] = None voting_poll_answers: Optional[List[VotingPollAnswer]] = None investment_allocations: Optional[List[InvestmentAllocation]] = None member_contributions: Optional[List[MemberContribution]] = None participant_status_form_answers: Optional[List[ParticipantStatusFormAnswer]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member: member_id: int = 0 employee_id: Optional[str] = None employee_guid: Optional[str] = None email: Optional[str] = None title: Optional[str] = None first_name: Optional[str] = None company_name: Optional[str] = None employee_group: Optional[str] = None last_name: Optional[str] = None date_of_birth: datetime.datetime = datetime.datetime(1, 1, 1) gender: Optional[IsoGenders] = None marital_status: Optional[MaritalStatuses] = None number_of_children: int = 0 children_count: Optional[int] = None monthly_salary: Optional[Decimal] = None annual_salary: Optional[Decimal] = None dk_pension_terms: Optional[DkPensionTerms] = None dk_private_email_address: Optional[str] = None dk_employer_name: Optional[str] = None dk_contact_consent: bool = False dk_personal_mandate: bool = False de_federal_state: Optional[GermanFederalStates] = None de_tax_class: Optional[GermanTaxClasses] = None de_church_tax: Optional[bool] = None has_priv_health_insurance: Optional[bool] = None priv_health_insurance: Optional[Decimal] = None de_priv_nursing_insurance: Optional[Decimal] = None contribution_data_date: Optional[datetime.datetime] = None beneficiary_first_name: Optional[str] = None beneficiary_last_name: Optional[str] = None beneficiary_title: Optional[str] = None beneficiary_date_of_birth: Optional[datetime.datetime] = None address_line1: Optional[str] = None address_line2: Optional[str] = None address_line3: Optional[str] = None phone_number: Optional[str] = None mobile_number: Optional[str] = None date_commenced_service: Optional[datetime.datetime] = None partner_birth_date: Optional[datetime.datetime] = None military_month_count: Optional[int] = None child1_birth_date: Optional[datetime.datetime] = None child2_birth_date: Optional[datetime.datetime] = None child3_birth_date: Optional[datetime.datetime] = None child4_birth_date: Optional[datetime.datetime] = None child5_birth_date: Optional[datetime.datetime] = None child6_birth_date: Optional[datetime.datetime] = None child7_birth_date: Optional[datetime.datetime] = None child8_birth_date: Optional[datetime.datetime] = None child9_birth_date: Optional[datetime.datetime] = None child10_birth_date: Optional[datetime.datetime] = None info_bag: Optional[str] = None projection_info_bag: Optional[str] = None client_id: Optional[int] = None company_plan_info: Optional[str] = None pension_fund_manager: Optional[str] = None date_of_hire: Optional[datetime.datetime] = None powens_connections: Optional[List[PowensConnection]] = None is_private_client: bool = False is_proxy: bool = False beneficiaries: Optional[List[Beneficiary]] = None current_balances: Optional[List[CurrentBalance]] = None detailed_balances: Optional[List[DetailedBalance]] = None beneficiaries_latest_submitted_date: Optional[datetime.datetime] = None user_id: Optional[str] = None participant_status: Optional[str] = None investment_strategy: Optional[str] = None is_allowed_to_update_plan: Optional[bool] = None pensionable_salary: Optional[Decimal] = None date_of_birth_spouse: Optional[datetime.datetime] = None date_of_birth_youngest_child: Optional[datetime.datetime] = None date_hired_of_plan: Optional[datetime.datetime] = None contract_type: Optional[str] = None is_allowed_to_vote: Optional[bool] = None voting_poll_answer: Optional[VotingPollAnswer] = None class LogoSource(str, Enum): CONSULTANT = 'Consultant' EMPLOYER = 'Employer' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Branding: primary_logo: Optional[LogoSource] = None secondary_logo: Optional[LogoSource] = None primary_mobile_margin: Optional[str] = None primary_desktop_margin: Optional[str] = None secondary_mobile_margin: Optional[str] = None secondary_desktop_margin: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConditionalAccess: health_insurance_excluded_urls: Optional[List[str]] = None pension_scheme_excluded_urls: Optional[List[str]] = None investment_choice_excluded_urls: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PrimaryPalette: primary_colour1: Optional[str] = None primary_colour2: Optional[str] = None primary_colour3: Optional[str] = None primary_colour4: Optional[str] = None primary_colour5: Optional[str] = None primary_colour6: Optional[str] = None primary_colour7: Optional[str] = None primary_colour8: Optional[str] = None primary_colour9: Optional[str] = None primary_colour10: Optional[str] = None primary_colour11: Optional[str] = None primary_colour12: Optional[str] = None primary_colour13: Optional[str] = None primary_colour14: Optional[str] = None primary_colour15: Optional[str] = None primary_colour16: Optional[str] = None primary_colour17: Optional[str] = None primary_colour18: Optional[str] = None primary_colour19: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SecondaryPalette: secondary_colour1: Optional[str] = None secondary_colour2: Optional[str] = None secondary_colour3: Optional[str] = None secondary_colour4: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DecorativeColourPalette: decorative_colour1: Optional[str] = None decorative_colour2: Optional[str] = None decorative_colour3: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DecorativeGrayPalette: decorative_colour1: Optional[str] = None decorative_colour2: Optional[str] = None decorative_colour3: Optional[str] = None decorative_colour4: Optional[str] = None decorative_colour5: Optional[str] = None decorative_colour6: Optional[str] = None decorative_colour7: Optional[str] = None decorative_colour8: Optional[str] = None decorative_colour9: Optional[str] = None decorative_colour10: Optional[str] = None decorative_colour11: Optional[str] = None decorative_colour12: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FontPalette: font_colour1: Optional[str] = None font_colour2: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ColorScheme: new_navigation_color_scheme: Optional[str] = None primary_palette: Optional[PrimaryPalette] = None secondary_palette: Optional[SecondaryPalette] = None decorative_colour_palette: Optional[DecorativeColourPalette] = None decorative_gray_palette: Optional[DecorativeGrayPalette] = None font_palette: Optional[FontPalette] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Entity: logo_uri: Optional[str] = None name: Optional[str] = None contact_details: Optional[ContactDetails] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CarrierEntity(Entity): carrier_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CounsellingOption: is_enabled: bool = False start_date: Optional[datetime.datetime] = None end_date: Optional[datetime.datetime] = None contact_details: Optional[ContactDetails] = None url: Optional[str] = None fee: Optional[Decimal] = None booking_groups: Optional[List[BookingGroup]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CounsellingOptions: is_enabled: bool = False callback_option: Optional[CounsellingOption] = None send_an_email_option: Optional[CounsellingOption] = None service_line_option: Optional[CounsellingOption] = None book_appointment: Optional[CounsellingOption] = None senior_advisory: Optional[CounsellingOption] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorConfiguration: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FolkepensionParameters: year: int = 0 base_amount: Decimal = decimal.Decimal(0) pension_supplement_single: Decimal = decimal.Decimal(0) pension_supplement_other: Decimal = decimal.Decimal(0) deduction_on_base_amount: Decimal = decimal.Decimal(0) deduction_on_income_other_pct: Decimal = decimal.Decimal(0) deduction_income_after_a_m_b: Decimal = decimal.Decimal(0) deduction_pension_supplement_single: Decimal = decimal.Decimal(0) deduction_pension_supplement_other: Decimal = decimal.Decimal(0) reduction_base_amount: Decimal = decimal.Decimal(0) reduction_pension_supplement: Decimal = decimal.Decimal(0) reduction_pension_supplement_other: Decimal = decimal.Decimal(0) reduction_pension_supplement_spouse: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FortidspensionParameters: year: int = 0 state_single: Decimal = decimal.Decimal(0) state_other: Decimal = decimal.Decimal(0) deduction_on_income_other: Decimal = decimal.Decimal(0) max_contribution_pensioner: Decimal = decimal.Decimal(0) max_contribution_not_pensioner: Decimal = decimal.Decimal(0) deduction_single: Decimal = decimal.Decimal(0) deduction_other: Decimal = decimal.Decimal(0) reduction_income: Decimal = decimal.Decimal(0) reduction_income_spouse: Decimal = decimal.Decimal(0) minimum_single: Decimal = decimal.Decimal(0) minimum_other: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DanishTaxParameters: labour_market_contribution_rate: Decimal = decimal.Decimal(0) bottom_tax_rate: Decimal = decimal.Decimal(0) health_contribution_rate: Decimal = decimal.Decimal(0) top_tax_rate: Decimal = decimal.Decimal(0) top_tax_limit: Decimal = decimal.Decimal(0) tax_ceiling_percentage: Decimal = decimal.Decimal(0) tax_ceiling_percentage_positive_net_capital_income: Decimal = decimal.Decimal(0) personal_allowance_young: Decimal = decimal.Decimal(0) personal_allowance: Decimal = decimal.Decimal(0) maximal_capital_pension_deduction: Decimal = decimal.Decimal(0) base_deduction_positive_net_capital_income: Decimal = decimal.Decimal(0) share_tax_rate_below_limit: Decimal = decimal.Decimal(0) share_tax_rate_above_limit: Decimal = decimal.Decimal(0) limit_share_tax: Decimal = decimal.Decimal(0) bottom_limit_employee_deduction: Decimal = decimal.Decimal(0) employee_deduction_rate: Decimal = decimal.Decimal(0) maximum_employment_allowance: Decimal = decimal.Decimal(0) property_value_tax_percentage_below_limit_e_v_l: Decimal = decimal.Decimal(0) property_value_tax_percentage_above_limit_e_v_l: Decimal = decimal.Decimal(0) limit_property_value_tax: Decimal = decimal.Decimal(0) deduction_of_property_value_tax6: Decimal = decimal.Decimal(0) deduction_of_property_value_tax7: Decimal = decimal.Decimal(0) maximum_impact_under_e_v_l: Decimal = decimal.Decimal(0) negative_net_capital_income: Decimal = decimal.Decimal(0) bottom_deduction_equalization_tax: Decimal = decimal.Decimal(0) equalization_tax: Decimal = decimal.Decimal(0) transferable_bottom_deduction_equalization_tax: Decimal = decimal.Decimal(0) bottom_line_job_deduction: Decimal = decimal.Decimal(0) job_deduction_rate: Decimal = decimal.Decimal(0) maximum_job_deduction: Decimal = decimal.Decimal(0) county_tax_lookup: Optional[List[DanishCountyTaxParameters]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DanishAdvisoryParameters: normal_retirement_age: int = 0 planning_horizon: int = 0 retirement_green_threshold_pct: Decimal = decimal.Decimal(0) retirement_amber_threshold_pct: Decimal = decimal.Decimal(0) incapacity_green_threshold_pct: Decimal = decimal.Decimal(0) incapacity_amber_threshold_pct: Decimal = decimal.Decimal(0) critical_illness_green_threshold_pct: Decimal = decimal.Decimal(0) critical_illness_amber_threshold_pct: Decimal = decimal.Decimal(0) death_single_green_threshold_pct: Decimal = decimal.Decimal(0) death_single_amber_threshold_pct: Decimal = decimal.Decimal(0) death_married_green_threshold_pct: Decimal = decimal.Decimal(0) death_married_amber_threshold_pct: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DanishGeneralPensionParameters: instalment_pension_contribution_ceiling: Decimal = decimal.Decimal(0) retirement_saving_contribution_ceiling_less_than5: Decimal = decimal.Decimal(0) retirement_saving_contribution_ceiling_more_than5: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkCalculatorConfiguration(CalculatorConfiguration): folkepension_parameters: Optional[FolkepensionParameters] = None fortidspension_parameters: Optional[FortidspensionParameters] = None danish_tax_parameters: Optional[DanishTaxParameters] = None danish_advisory_parameters: Optional[DanishAdvisoryParameters] = None danish_general_pension_parameters: Optional[DanishGeneralPensionParameters] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SecurityToken: value: Optional[str] = None expiration: datetime.datetime = datetime.datetime(1, 1, 1) class DkTaxationCode(IntEnum): FREE = 51 FULL_TAX = 52 FULL_DUTY = 53 NO_INFO = 54 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkPensionsInfoProjection: id: int = 0 savings_number: int = 0 retirement_age: int = 0 tax_code: Optional[DkTaxationCode] = None include_in_projection: bool = False from_age: int = 0 to_age: int = 0 amount: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkPensionsInfoSaving: number: int = 0 carrier: Optional[str] = None reference_number: Optional[str] = None annual_contribution: Optional[int] = None include_in_projection: bool = False statement_date: Optional[datetime.datetime] = None savings: Optional[int] = None projections: Optional[List[DkPensionsInfoProjection]] = None class PensionsInfoBenefitType(IntEnum): DEATH = 2 LOSS_OF_WORK_ABILITY = 3 CRITICAL_ILLNESS = 4 HEALTH = 5 class PensionsInfoPaymentType(IntEnum): LUMPSUM = 1 FIXED_TERM_ANNUITY = 2 ANNUITY = 3 class PensionsInfoBeneficiaryType(IntEnum): ACCOUNT_OWNER = 1 NEXT_AKIN = 3 CHILDREN = 8 ESTATE = 9 NAMED_BENEFICIARY = 15 SPOUSE = 18 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkPensionsInfoRisk: number: int = 0 carrier: Optional[str] = None risk: Optional[PensionsInfoBenefitType] = None payment_type: Optional[PensionsInfoPaymentType] = None beneficiary: Optional[PensionsInfoBeneficiaryType] = None tax_code: Optional[DkTaxationCode] = None amount: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkPensionsInfo: date: datetime.datetime = datetime.datetime(1, 1, 1) savings: Optional[List[DkPensionsInfoSaving]] = None projections: Optional[List[DkPensionsInfoProjection]] = None risks: Optional[List[DkPensionsInfoRisk]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FormerDdrValues: retirement_insurance_ceiling: Decimal = decimal.Decimal(0) health_insurance_ceiling: Decimal = decimal.Decimal(0) current_pension_level: Decimal = decimal.Decimal(0) reference_income: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeSocialSecurityParameters: retirement_insurance_ceiling: Decimal = decimal.Decimal(0) health_insurance_ceiling: Decimal = decimal.Decimal(0) current_pension_level: Decimal = decimal.Decimal(0) reference_income: Decimal = decimal.Decimal(0) ddr_values: Optional[FormerDdrValues] = None employer_retirement_pct: Decimal = decimal.Decimal(0) employer_unemployement_pct: Decimal = decimal.Decimal(0) employer_health_insurance_base_pct: Decimal = decimal.Decimal(0) employer_health_insurance_additional_pct: Decimal = decimal.Decimal(0) employer_nursing_care_pct: Decimal = decimal.Decimal(0) employee_retirement_pct: Decimal = decimal.Decimal(0) employee_unemployement_pct: Decimal = decimal.Decimal(0) employee_health_insurance_base_pct: Decimal = decimal.Decimal(0) employee_health_insurance_additional_pct: Decimal = decimal.Decimal(0) employee_nursing_care_pct: Decimal = decimal.Decimal(0) employee_childless_nursing_care_additional_pct: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeCalculatorConfiguration(CalculatorConfiguration): social_security_parameters: Optional[DeSocialSecurityParameters] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Cover: carrier: Optional[CarrierEntity] = None pay_out: Optional[str] = None unit: Optional[str] = None expiry_age: Optional[str] = None default_tax_code: Optional[str] = None optional_tax_code: Optional[str] = None scaling_down: bool = False has_basic: bool = False has_extra: bool = False basic_benefit: Optional[Decimal] = None basic_minimum_amount: Optional[Decimal] = None extra_benefit: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DisabilityCover: basic_disability_cover: Optional[Cover] = None basic_salary_scale: Optional[bool] = None paragraph17: bool = False profession_disability: bool = False minimum_disability_period_months: Optional[int] = None job_capacity_assessment_benefit: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DisabilityInsurancePlan: disability_degree: Optional[str] = None has_premium_waiver_cover: bool = False disability_cover: Optional[List[DisabilityCover]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CriticalIllnessInsurancePlan: critical_illness_cover: Optional[List[Cover]] = None critical_illness_children_cover: Optional[List[Cover]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeathCover: cover: Optional[Cover] = None deposit_guarantee: Optional[str] = None deposit_guarentee_optional: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeathInsurancePlan: death_cover: Optional[List[DeathCover]] = None death_children_cover: Optional[List[Cover]] = None class CoverageTypes(str, Enum): NONE = 'None' OPTIONAL = 'Optional' MANDATORY = 'Mandatory' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HealthInsurancePlan: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None coverage_type: Optional[CoverageTypes] = None spouse_coverage_type: Optional[CoverageTypes] = None child_coverage_type: Optional[CoverageTypes] = None child_coverage_max_age: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AccidentInsurancePlan: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None insurance_amount: int = 0 death_cover: bool = False dental_cover: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DentalInsurancePlan: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None coverage_type: Optional[str] = None extended_coverage: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SeniorCitizenConcept: solidary: Optional[bool] = None has_specific_price: Optional[bool] = None specific_price: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RetirementPlan: contribution_unit: Optional[str] = None mandatory_employer_contribution: Decimal = decimal.Decimal(0) mandatory_employee_contribution: Decimal = decimal.Decimal(0) additional_contribution: Decimal = decimal.Decimal(0) saving_options: Optional[List[SavingOption]] = None default_carrier: Optional[CarrierEntity] = None has_default_saving_product: bool = False default_saving_product: Optional[SavingProduct] = None class RetirementBenefitAmountDisplayOptionType(str, Enum): ACCUMULATED = 'Accumulated' GUARANTEED = 'Guaranteed' PROJECTED = 'Projected' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeRetirementPlans: retirement_benefit_amount_display_option: Optional[RetirementBenefitAmountDisplayOptionType] = None retirement_benefit_amount_display_options: Optional[List[RetirementBenefitAmountDisplayOptionType]] = None financing_vehicles: Optional[List[FinancingVehicleType]] = None contribution_types: Optional[List[ContributionType]] = None retirement_plans: Optional[List[DeRetirementPlan]] = None default_retirement_plans: Optional[List[DeRetirementPlan]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PreventiveTreatment: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PathFinder: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FinancialWellbeing: carrier: Optional[CarrierEntity] = None expiry_age: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AuthenticationMethod: type: Optional[AuthenticationMethodType] = None sa_client_id: Optional[str] = None registration_fields: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ClientCountryConfig(DatedEntity): client_code: Optional[str] = None client_name: Optional[str] = None country_code: Optional[str] = None source: Optional[DataSourceResult] = None age_r_min: int = 0 age_r_max: int = 0 primary_salary: Optional[str] = None annuity_config: Optional[AnnuityConfig] = None assets: Optional[List[AssetConfig]] = None cont_tables: Optional[List[ContributionTableSpec]] = None investments: Optional[List[InvestmentProduct]] = None content: Optional[Dict[str, List[Content]]] = None environments: Optional[Dict[str, str]] = None custom_numeric_constraints: Optional[Dict[str, Constraint[Decimal]]] = None asset_return_rates: Optional[Dict[str, ReturnRates]] = None investment_property_rates: float = 0.0 get_asset_class_fund_dictionary: Optional[Dict[str, bool]] = None get_term_based_fund_dictionary: Optional[Dict[str, bool]] = None get_allocations_dictionary: Optional[Dict[str, Dict[int, Dict[str, float]]]] = None asset_name_map: Optional[Dict[str, str]] = None asset_cont_name_map: Optional[Dict[str, Dict[str, str]]] = None cache_key: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorReportTableColors: header_table_font_color: Optional[str] = None basic_table_header_color: Optional[str] = None basic_table_font_color: Optional[str] = None panel1_color: Optional[str] = None panel2_color: Optional[str] = None panel3_color: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorReportColors: table_colors: Optional[CalculatorReportTableColors] = None chart1_colors: Optional[List[str]] = None chart2_colors: Optional[List[str]] = None chart3_colors: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorColorScheme: primary_color1: Optional[str] = None primary_color2: Optional[str] = None decorative_color1: Optional[str] = None decorative_color2: Optional[str] = None decorative_color3: Optional[str] = None decorative_color4: Optional[str] = None decorative_color5: Optional[str] = None font_color1: Optional[str] = None font_color2: Optional[str] = None table_header_font_color: Optional[str] = None table_employer_match_font_color: Optional[str] = None chart_colors: Optional[List[str]] = None report_colors: Optional[CalculatorReportColors] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorDkAnnuityPrice: carrier_name: Optional[str] = None risk_profile: Optional[str] = None price: float = 0.0 class CalculatorFrPlanType(str, Enum): PEE = 'PEE' PERCOL = 'PERCOL' PERO = 'PERO' PERIN = 'PERIN' class CalculatorFrContributionCapType(str, Enum): NONE = 'None' AMOUNT = 'Amount' MATCH_PERCENT = 'MatchPercent' PERCENT_OF_S_S_C_C = 'PercentOfSSCC' class CalculatorFrContributionType(str, Enum): EMPLOYEE_MANDATORY = 'EmployeeMandatory' EMPLOYER_MANDATORY = 'EmployerMandatory' EMPLOYER_MATCH = 'EmployerMatch' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorFrContributionCap: type: Optional[CalculatorFrContributionCapType] = None contribution_type: Optional[CalculatorFrContributionType] = None value: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorFrPlanConfiguration: type: Optional[CalculatorFrPlanType] = None name: Optional[str] = None contribution_fee: float = 0.0 aum_fee_unit_linked: float = 0.0 aum_fee_insurer_asset: float = 0.0 plan_level_contribution_caps: Optional[List[CalculatorFrContributionCap]] = None fund_level_contribution_caps: Optional[Dict[str, List[CalculatorFrContributionCap]]] = None contribution_rule_mapping: Optional[Dict[str, List[int]]] = None class CalculatorFrContributionBracketType(str, Enum): NONE = 'None' MULTIPLE_OF_S_S_C_C = 'MultipleOfSSCC' FIXED_AMOUNT = 'FixedAmount' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorFrContributionBracket: threshold: float = 0.0 rate: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorFrContributionRule: id: int = 0 name: Optional[str] = None contribution_type: Optional[CalculatorFrContributionType] = None bracket_type: Optional[CalculatorFrContributionBracketType] = None brackets: Optional[List[CalculatorFrContributionBracket]] = None number_of_brackets: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorFrConfiguration: plan_configurations: Optional[List[CalculatorFrPlanConfiguration]] = None contribution_rules: Optional[List[CalculatorFrContributionRule]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RPCLevelInfo: level1: float = 0.0 level2: float = 0.0 level3: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorPtAnnuityFactorLP: age: int = 0 is_reversionary: bool = False factor: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorPtAnnuityFactorPD: term: int = 0 investment_code: Optional[str] = None factor: float = 0.0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorSalaryGrowthIndexMapping: name: Optional[str] = None index_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalculatorData: is_enabled: bool = False cdy_position: Optional[str] = None amount_input_precision: int = 0 percent_input_precision: int = 0 locale: Optional[Dict[str, str]] = None display_precision: int = 0 upwards_conversion_precision: int = 0 downwards_conversion_precision: int = 0 use_investment_products_file: bool = False investment_products_file_name: Optional[str] = None member: Optional[Member] = None client_country_config: Optional[ClientCountryConfig] = None color_scheme: Optional[CalculatorColorScheme] = None risk_profile_mapping: Optional[Dict[str, Dict[str, str]]] = None default_risk_level: Optional[str] = None dk_annuity_price_list: Optional[List[CalculatorDkAnnuityPrice]] = None dk_carrier_i_d_mapping: Optional[Dict[str, str]] = None dk_default_carrier_i_d: Optional[str] = None fr_configuration: Optional[CalculatorFrConfiguration] = None rpc_level_info: Optional[RPCLevelInfo] = None fr_include_p_e_r_o_profit_sharing_savings: bool = False pt_lifetime_pension_annuity_factors: Optional[List[CalculatorPtAnnuityFactorLP]] = None pt_pension_drawdown_annuity_factors: Optional[List[CalculatorPtAnnuityFactorPD]] = None salary_growth_index_mappings: Optional[List[CalculatorSalaryGrowthIndexMapping]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationIds: configuration: Optional[List[int]] = None plan_parameters: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Document: tags: Optional[str] = None sub_tag: Optional[str] = None size: int = 0 date_created: datetime.datetime = datetime.datetime(1, 1, 1) is_new: bool = False reference: Optional[str] = None filename: Optional[str] = None language_iso_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Period: start: Optional[datetime.datetime] = None end: Optional[datetime.datetime] = None client_name: Optional[str] = None client_code: Optional[str] = None client_id: Optional[int] = None auth_id: Optional[str] = None employee_id: Optional[str] = None info_provider_reference: Optional[str] = None status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionGroupConfig: entity_column_filters: Optional[List[ConfigurationVersionEntityColumnFilter]] = None rule: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionMemberDocumentConfig: max_file_size_m_b: int = 0 allowed_m_i_m_e_types: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PensionSightClient: client_i_d: Optional[str] = None name: Optional[str] = None name__n_l: Optional[str] = None name__f_r: Optional[str] = None name__e_n: Optional[str] = None text__standard__beneficiary__nominations: Optional[str] = None text__specific__beneficiary__nominations: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserResultConfiguration: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserSearchConfiguration: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserResultConfigurationAdminProxy: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserSearchConfigurationAdminProxy: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrAccountBalance: amount: Decimal = decimal.Decimal(0) currency: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Currency: id: Optional[str] = None name: Optional[str] = None symbol: Optional[str] = None crypto: bool = False precision: int = 0 prefix: bool = False marketcap: Optional[Object] = None datetime: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Investment: id: int = 0 id_account: int = 0 id_security: int = 0 id_type: Optional[int] = None label: Optional[str] = None code: Optional[str] = None code_type: Optional[str] = None stock_symbol: Optional[str] = None source: Optional[str] = None description: Optional[str] = None quantity: Optional[Decimal] = None unit_price: Optional[Decimal] = None unit_value: Optional[Decimal] = None valuation: Optional[Decimal] = None diff: Optional[Decimal] = None diff_percent: Optional[Decimal] = None prev_diff: Optional[Decimal] = None prev_diff_percent: Optional[Decimal] = None v_date: datetime.datetime = datetime.datetime(1, 1, 1) prev_v_date: Optional[datetime.datetime] = None portfolio_share: Decimal = decimal.Decimal(0) calculated: Optional[List[str]] = None deleted: Optional[datetime.datetime] = None last_update: Optional[datetime.datetime] = None original_currency: Optional[Currency] = None original_valuation: Optional[Decimal] = None original_unit_value: Optional[Decimal] = None original_unit_price: Optional[Decimal] = None original_diff: Optional[Decimal] = None details: Optional[InvestmentDetail] = None stock_market: Optional[Object] = None type: Optional[Object] = None pockets: Optional[List[Object]] = None class AccountUsage(IntEnum): PRIV = 1 ORGA = 2 class AccountOwnership(IntEnum): OWNER = 'owner' CO_OWNER = 'co-owner' ATTORNEY = 'attorney' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Loan: total_amount: Optional[Decimal] = None available_amount: Optional[Decimal] = None used_amount: Optional[Decimal] = None subscription_date: Optional[datetime.datetime] = None maturity_date: Optional[datetime.datetime] = None next_payment_amount: Optional[Decimal] = None next_payment_date: Optional[datetime.datetime] = None rate: Optional[Decimal] = None nb_payments_left: Optional[int] = None nb_payments_done: Optional[int] = None nb_payments_total: Optional[int] = None last_payment_amount: Optional[Decimal] = None last_payment_date: Optional[datetime.datetime] = None account_label: Optional[str] = None insurance_label: Optional[str] = None insurance_amount: Optional[Decimal] = None insurance_rate: Optional[Decimal] = None duration: Optional[int] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Information: version: Optional[str] = None provider_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Account: id: int = 0 id_connection: Optional[int] = None id_user: Optional[int] = None id_source: Optional[int] = None id_parent: Optional[int] = None number: Optional[str] = None original_name: Optional[str] = None balance: Optional[Decimal] = None coming: Optional[Decimal] = None display: bool = False last_update: Optional[datetime.datetime] = None deleted: Optional[datetime.datetime] = None disabled: Optional[datetime.datetime] = None iban: Optional[str] = None currency: Optional[Currency] = None type: Optional[str] = None id_type: int = 0 bookmarked: int = 0 name: Optional[str] = None error: Optional[str] = None usage: Optional[AccountUsage] = None ownership: Optional[AccountOwnership] = None company_name: Optional[str] = None loan: Optional[Loan] = None web_id: Optional[str] = None opening_date: Optional[Object] = None recipients: Optional[List[Object]] = None bic: Optional[Object] = None coming_balance: float = 0.0 formatted_balance: Optional[str] = None calculated: Optional[List[str]] = None valuation: float = 0.0 diff: float = 0.0 diff_percent: float = 0.0 prev_diff: float = 0.0 prev_diff_percent: float = 0.0 information: Optional[Information] = None investments: Optional[List[Investment]] = None transfers: Optional[List[Object]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrMandatoryContribution: employee: int = 0 employer: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrOption: order: int = 0 code: Optional[str] = None name: Optional[str] = None url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrInvestmentOptions: options: Optional[List[FrOption]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrBeneficiary: first_name: Optional[str] = None sur_name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrFees: contributions: Decimal = decimal.Decimal(0) asset1: Decimal = decimal.Decimal(0) asset2: Decimal = decimal.Decimal(0) class PlanCategory(str, Enum): OTHERS = 'Others' CURRENT = 'Current' PREVIOUS = 'Previous' INDIVIDUAL = 'Individual' class PlanType(str, Enum): OTHERS = 'OTHERS' PEE = 'PEE' PERO = 'PERO' PERCOL = 'PERCOL' PERIN = 'PERIN' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrPlanInformation: id: int = 0 plan_name: Optional[str] = None provider_name: Optional[str] = None account_balance: Optional[FrAccountBalance] = None asset_allocation: Optional[List[Investment]] = None account_details: Optional[Account] = None powens_account_state: Optional[str] = None powens_account_type: Optional[str] = None account_investments: Optional[List[Investment]] = None voluntary_contribution: Optional[str] = None mandatory_contribution: Optional[FrMandatoryContribution] = None mandatory_contribution_formula: Optional[str] = None investment_options: Optional[FrInvestmentOptions] = None stock_transfer: Optional[str] = None beneficiary: Optional[FrBeneficiary] = None form_of_payment: Optional[str] = None taxation: Optional[str] = None fees: Optional[FrFees] = None plan_information: Optional[str] = None type: Optional[str] = None plan_category: Optional[str] = None enabled: bool = False url: Optional[str] = None category: Optional[PlanCategory] = None plan_type: Optional[PlanType] = None date_updated: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrCompanyPlan: account_balance_date: datetime.datetime = datetime.datetime(1, 1, 1) asset_allocation_date: datetime.datetime = datetime.datetime(1, 1, 1) plans: Optional[List[FrPlanInformation]] = None has_duplicate: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PlanTypeMap: pee: Optional[FrCompanyPlan] = None pero: Optional[FrCompanyPlan] = None percol: Optional[FrCompanyPlan] = None perin: Optional[FrCompanyPlan] = None no_matching_category: Optional[FrCompanyPlan] = None incorrect_category_mapping: Optional[FrCompanyPlan] = None excess_plan_mapping: Optional[FrCompanyPlan] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrCompanyPlans: current_employer_plans: Optional[FrCompanyPlan] = None previous_employer_plans: Optional[FrCompanyPlan] = None individual_company_plans: Optional[FrCompanyPlan] = None others: Optional[FrCompanyPlan] = None current: Optional[PlanTypeMap] = None previous: Optional[PlanTypeMap] = None individual: Optional[PlanTypeMap] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EsRetirementPlans: retirement_plans: Optional[List[EsRetirementPlan]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrSocialSecurityParameters: social_security_contribution_ceiling: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrCalculatorConfiguration(CalculatorConfiguration): social_security_parameters: Optional[FrSocialSecurityParameters] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrFundSetup: id: Optional[str] = None name: Optional[str] = None code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrPlanSetup: plan_type: Optional[str] = None name: Optional[str] = None funds: Optional[List[str]] = None connector_i_d: int = 0 personal_information: Optional[str] = None voluntary_contributions: Optional[str] = None investment_options: Optional[str] = None payout_options: Optional[str] = None your_beneficiaries: Optional[str] = None retirement_liquidation: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FrPreviousPlansSetup: provider_name: Optional[str] = None plan_type: Optional[str] = None link: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BeRetirementPlan: retirement_plans: Optional[List[RetirementPlan]] = None lump_sum_total_death_cover: Optional[Decimal] = None lump_sum_total_no_death_cover: Optional[Decimal] = None annuity_total_death_cover: Optional[Decimal] = None annuity_total_no_death_cover: Optional[Decimal] = None total_accrued_reserves: Optional[Decimal] = None total_legal_minimum: Optional[Decimal] = None total_vested_reserves: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BeRetirementPlans: type: Optional[str] = None reversible: Optional[float] = None employer_retirement_plan: Optional[BeRetirementPlan] = None employee_retirement_plan: Optional[BeRetirementPlan] = None total_annuity: Optional[Decimal] = None total_lump_sum: Optional[Decimal] = None total_vested_reserves: Optional[Decimal] = None total_accrued_reserves: Optional[Decimal] = None total_legal_minimum: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Contribution: employment_status_plan: Optional[str] = None balance_current_employer: Optional[Decimal] = None employee_contribution: Optional[Decimal] = None employee_contribution_date: Optional[datetime.datetime] = None employer_contribution: Optional[Decimal] = None employer_contribution_date: Optional[datetime.datetime] = None voluntary_contribution: Optional[Decimal] = None voluntary_contribution_date: Optional[datetime.datetime] = None total_contribution: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BeContributions: balances: Optional[List[Contribution]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PrivateClientProduct: carrier: int = 0 private_product_id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionEmailSetting: id: Optional[str] = None subject_format: Optional[str] = None send_to_b_c_c: Optional[List[str]] = None send_to_c_c: Optional[List[str]] = None send_from: Optional[List[str]] = None body_template: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FormTypeFieldsConfiguration: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None validation: Optional[List[str]] = None lookup_reference: Optional[str] = None min: Optional[int] = None max: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FormTypeLookupConfiguration: name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Question: number: int = 0 description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Option: value: int = 0 description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProductQuestion: question: Optional[Question] = None options: Optional[List[Option]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class OptionGradeValue: question_option_reference: Optional[str] = None grade_value: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QuestionOption: option_number: int = 0 option_grade_values: Optional[List[OptionGradeValue]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RiskQuestion: question_number: int = 0 has_question_reference: bool = False question_options: Optional[List[QuestionOption]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RiskRecommendation: start_value: int = 0 end_value: int = 0 risk_name: Optional[str] = None risk_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionRecommendation: products: Optional[List[ProductQuestion]] = None risk_questions: Optional[List[RiskQuestion]] = None risks: Optional[List[RiskRecommendation]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProductData: product: Optional[str] = None formula: Optional[str] = None carrier: Optional[str] = None product_type_id: int = 0 score: Optional[float] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PieGraph: questionnaire_answer: Optional[List[QuestionnaireAnswer]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProductRiskMatrix: carrier: Optional[str] = None product_risk_matrix_name: Optional[str] = None a: Optional[str] = None b: Optional[str] = None c: Optional[str] = None d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProductTypeData: product_type_id: Optional[int] = None product_type_name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HistoricalData: data: Optional[List[Dict[str, str]]] = None years: Optional[List[str]] = None worst_year: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionRecommendationProduct: products: Optional[List[ProductData]] = None pie_graph_data: Optional[PieGraph] = None product_risk_matrix: Optional[List[ProductRiskMatrix]] = None bar_graph_data: Optional[List[Dict[str, str]]] = None product_type_data: Optional[List[ProductTypeData]] = None historical_table_data: Optional[HistoricalData] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FundValue(IId, ITimestamp): id: int = 0 fund_id: Optional[str] = None client_id: int = 0 information_date: datetime.datetime = datetime.datetime(1, 1, 1) investment_return_twelve_months: Optional[Decimal] = None investment_return_three_years: Optional[Decimal] = None investment_return_five_years: Optional[Decimal] = None current_annual_pension_fee: Optional[Decimal] = None date_created: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: Optional[datetime.datetime] = None created_by: Optional[str] = None updated_by: Optional[str] = None timestamp: Optional[bytes] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtFund: identifier: Optional[str] = None name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtContribution: id: int = 0 member_id: int = 0 choice_start_date: Optional[datetime.datetime] = None choice_end_date: Optional[datetime.datetime] = None base_contribution_percent: Optional[Decimal] = None voluntary_contribution_percent: Optional[Decimal] = None incentive_contribution_percent: Optional[Decimal] = None total_contribution_percent: Optional[Decimal] = None base_contribution_value: Optional[Decimal] = None voluntary_contribution_value: Optional[Decimal] = None incentive_contribution_value: Optional[Decimal] = None total_contribution_value: Optional[Decimal] = None date_created: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtInvestmentAllocation: id: int = 0 member_id: int = 0 fund_id: Optional[str] = None current_balance_percent: Optional[Decimal] = None future_contribution_percent: Optional[Decimal] = None current_balance_future_contribution_percent: Optional[Decimal] = None date_created: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtInvestmentSetup: has_life_cycle: bool = False is_current_balance_displayed: bool = False is_future_contribution_displayed: bool = False is_current_balance_future_contribution_displayed: bool = False is_additional_info_displayed: bool = False choice_period_start_date: Optional[datetime.datetime] = None choice_period_end_date: Optional[datetime.datetime] = None life_cycle_age_basis: Optional[str] = None life_cycle_age_basis_date: datetime.datetime = datetime.datetime(1, 1, 1) life_cycle_age: int = 0 base_contribution_percent: Optional[Decimal] = None is_base_contribution_rule_existing: Optional[bool] = None is_total_allocated1_to100: Optional[bool] = None children_count: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtFundLifecycleList: investment_choice_list: Optional[List[Dict[str, str]]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtParticipantStatusSetup: is_new_joiner_form_enabled: bool = False is_leaver_form_enabled: bool = False is_new_joiner_data_existing: bool = False is_leaver_data_existing: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtMatchingContribution: voluntary: float = 0.0 match: Optional[float] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionVotingPollSetup: code: Optional[str] = None start_date: Optional[datetime.datetime] = None end_date: Optional[datetime.datetime] = None default_image: Optional[str] = None options: Optional[List[ConfigurationVersionVotingOptions]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionVotingPollConfig: order: int = 0 label: Optional[str] = None field: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtSocialSecurityParameters: normal_retirement_age: int = 0 normal_retirement_age_months: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PtCalculatorConfiguration(CalculatorConfiguration): social_security_parameters: Optional[PtSocialSecurityParameters] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DkBookingInfo: booking_allowed: bool = False booking_groups: Optional[List[BookingGroup]] = None has_booking_time: bool = False booking_time_link: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionPublicContactUsSetup: lookup_reference: Optional[str] = None current_product: Optional[str] = None product_emails: Optional[List[ConfigurationVersionProductEmailSetup]] = None to_recipients: Optional[List[str]] = None cc_recipients: Optional[List[str]] = None bcc_recipients: Optional[List[str]] = None class IId: pass class ITimestamp: timestamp: Optional[bytes] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Contribution(Projectable): code: Optional[str] = None index: int = 0 name: Optional[str] = None ccy: Optional[str] = None cont_table: Optional[str] = None is_employee_cont: bool = False employer_flag: bool = False type: Optional[ContributionType] = None linked_cont_index: int = 0 source_rate: Optional[str] = None is_taxable: bool = False amount: float = 0.0 core_amount: float = 0.0 freq: float = 0.0 rate: float = 0.0 core_rate: float = 0.0 from_age: int = 0 to_age: Optional[int] = None salary: float = 0.0 annual_amount: float = 0.0 annual_core_amount: float = 0.0 is_always_one_off: bool = False is_one_off: bool = False constraint_type: Optional[ContributionConstraintType] = None custom: Optional[Dict[str, str]] = None member_rate_lookup: Optional[Dict[int, float]] = None is_from_salary: bool = False class AuthenticationMethodType(str, Enum): NEM_ID = 'NemId' SSO = 'SSO' COMMON = 'Common' SINGLE = 'Single' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Contribution: employer_fund_date: datetime.datetime = datetime.datetime(1, 1, 1) contributions: Decimal = decimal.Decimal(0) return_: Decimal = field(metadata=config(field_name='return'), default=decimal.Decimal(0)) accrued_value: Decimal = decimal.Decimal(0) legal_minimum: Decimal = decimal.Decimal(0) vested_reserves: Decimal = decimal.Decimal(0) currency: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RetirementPlan: name: Optional[str] = None type: Optional[str] = None annuity: Optional[LifeInsurance] = None lump_sum: Optional[LifeInsurance] = None accrued_reserves: Optional[Decimal] = None legal_minimum: Optional[Decimal] = None vested_reserves: Optional[Decimal] = None currency: Optional[str] = None frequency: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Currency: id: Optional[str] = None name: Optional[str] = None symbol: Optional[str] = None crypto: bool = False precision: int = 0 prefix: bool = False marketcap: Optional[Object] = None datetime: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Investment: id: int = 0 id_account: int = 0 id_security: int = 0 id_type: Optional[int] = None label: Optional[str] = None code: Optional[str] = None code_type: Optional[str] = None stock_symbol: Optional[str] = None source: Optional[str] = None description: Optional[str] = None quantity: Decimal = decimal.Decimal(0) unit_price: Decimal = decimal.Decimal(0) unit_value: Decimal = decimal.Decimal(0) valuation: Decimal = decimal.Decimal(0) diff: Decimal = decimal.Decimal(0) diff_percent: Decimal = decimal.Decimal(0) prev_diff: Optional[Decimal] = None prev_diff_percent: Optional[Decimal] = None v_date: datetime.datetime = datetime.datetime(1, 1, 1) prev_v_date: Optional[datetime.datetime] = None portfolio_share: Decimal = decimal.Decimal(0) calculated: Optional[List[str]] = None deleted: Optional[datetime.datetime] = None last_update: datetime.datetime = datetime.datetime(1, 1, 1) original_currency: Optional[Currency] = None original_valuation: Optional[Decimal] = None original_unit_value: Optional[Decimal] = None original_unit_price: Optional[Decimal] = None original_diff: Optional[Decimal] = None details: Optional[InvestmentDetail] = None stock_market: Optional[Object] = None type: Optional[Object] = None pockets: Optional[List[Object]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SiteContext: echo_uri: Optional[str] = None branding: Optional[Branding] = None modules: Optional[List[str]] = None conditional_access: Optional[ConditionalAccess] = None color_scheme: Optional[ColorScheme] = None carriers: Optional[List[ConfigurationVersionCarrier]] = None country: Optional[str] = None default_language: Optional[str] = None available_languages: Optional[List[str]] = None currency: Optional[str] = None employer: Optional[Entity] = None carrier: Optional[CarrierEntity] = None consultant: Optional[Entity] = None member: Optional[Member] = None counselling_options: Optional[CounsellingOptions] = None dk_calculator_configuration: Optional[DkCalculatorConfiguration] = None dk_pensions_info_sso_ticket: Optional[SecurityToken] = None dk_pensions_info: Optional[DkPensionsInfo] = None de_calculator_configuration: Optional[DeCalculatorConfiguration] = None disability_insurance_plan: Optional[DisabilityInsurancePlan] = None critical_illness_insurance_plan: Optional[CriticalIllnessInsurancePlan] = None death_insurance_plan: Optional[DeathInsurancePlan] = None health_insurance_plan: Optional[HealthInsurancePlan] = None accident_insurance_plan: Optional[AccidentInsurancePlan] = None dental_insurance_plan: Optional[DentalInsurancePlan] = None senior_citizen_concept: Optional[SeniorCitizenConcept] = None retirement_plan: Optional[RetirementPlan] = None de_retirement_plans: Optional[DeRetirementPlans] = None preventive_treatment: Optional[PreventiveTreatment] = None is_pension_scheme: bool = False path_finder: Optional[PathFinder] = None financial_well_being: Optional[FinancialWellbeing] = None use_informal_language: Optional[bool] = None uses_s_s_o: Optional[bool] = None authentication_method: Optional[AuthenticationMethod] = None cpr_number_needed: bool = False activation_code_required: bool = False employer_email_domain: Optional[str] = None version: Optional[str] = None tax_pseudocode_u_r_l: Optional[str] = None calculator_configuration: Optional[CalculatorData] = None configuration_ids: Optional[ConfigurationIds] = None document_list: Optional[List[Document]] = None new_document_day_span: Optional[int] = None sas_token_duration_in_seconds: Optional[float] = None data_retention_period_in_years: Optional[int] = None periods: Optional[List[Period]] = None group_config: Optional[ConfigurationVersionGroupConfig] = None member_document_config: Optional[ConfigurationVersionMemberDocumentConfig] = None pension_sight_client: Optional[PensionSightClient] = None user_result_configuration: Optional[List[UserResultConfiguration]] = None user_search_configuration: Optional[List[UserSearchConfiguration]] = None user_result_configuration_admin_proxy: Optional[List[UserResultConfigurationAdminProxy]] = None user_search_configuration_admin_proxy: Optional[List[UserSearchConfigurationAdminProxy]] = None fr_company_plans: Optional[FrCompanyPlans] = None es_retirement_plans: Optional[EsRetirementPlans] = None fr_calculator_configuration: Optional[FrCalculatorConfiguration] = None fr_fund_setups: Optional[List[FrFundSetup]] = None fr_plan_setups: Optional[List[FrPlanSetup]] = None fr_previous_plans_setups: Optional[List[FrPreviousPlansSetup]] = None fr_individual_plan_funds: Optional[List[str]] = None be_retirement_plans: Optional[List[BeRetirementPlans]] = None be_contributions: Optional[BeContributions] = None private_client_products: Optional[List[PrivateClientProduct]] = None contact_us: Optional[ConfigurationVersionEmailSetting] = None email_settings: Optional[List[ConfigurationVersionEmailSetting]] = None form_type_fields_configuration: Optional[List[FormTypeFieldsConfiguration]] = None form_type_lookup_configuration: Optional[List[FormTypeLookupConfiguration]] = None recommendation: Optional[ConfigurationVersionRecommendation] = None recommendation_product: Optional[ConfigurationVersionRecommendationProduct] = None pt_fund_values: Optional[List[FundValue]] = None pt_funds_setups: Optional[List[PtFund]] = None pt_contribution_data: Optional[PtContribution] = None pt_investment_allocations: Optional[List[PtInvestmentAllocation]] = None pt_investment_setup: Optional[PtInvestmentSetup] = None pt_fund_lifecycle_list: Optional[PtFundLifecycleList] = None pt_participant_status_setup: Optional[PtParticipantStatusSetup] = None pt_matching_contribution_list: Optional[List[PtMatchingContribution]] = None voting_poll_setup: Optional[ConfigurationVersionVotingPollSetup] = None voting_poll_config: Optional[List[ConfigurationVersionVotingPollConfig]] = None pt_calculator_configuration: Optional[PtCalculatorConfiguration] = None booking_info: Optional[DkBookingInfo] = None dk_public_contact_us_setup: Optional[ConfigurationVersionPublicContactUsSetup] = None # @Route("/sitecontext/{Country}/{Client}", "GET") # @Route("/sitecontext/{Country}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CountryClientSiteContextReq(IReturn[SiteContext]): country: Optional[str] = None client: Optional[str] = None