""" Options: Date: 2025-07-17 23:22:19 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: AdminAppReq.* #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 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 class WorkflowStatuses(IntEnum): CREATED = 0 SUBMITTED = 1 REJECTED = 8 APPROVED = 9 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersionReference(IId, ITimestamp): id: int = 0 property_bag: Optional[str] = None reference_key: Optional[str] = None configuration_version_i_d: int = 0 timestamp: Optional[bytes] = None date_uploaded: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationVersion(IId, ITimestamp): id: int = 0 configuration_id: int = 0 configuration_bag: Optional[str] = None date_effective: datetime.datetime = datetime.datetime(1, 1, 1) author_id: int = 0 approver_id: Optional[int] = None status: Optional[WorkflowStatuses] = None inactive: bool = False timestamp: Optional[bytes] = None configuration_version_references: Optional[List[ConfigurationVersionReference]] = None configuration: Optional[Configuration] = None author: Optional[User] = None approver: Optional[User] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class User(IId, ITimestamp): id: int = 0 upn: Optional[str] = None name: Optional[str] = None email: Optional[str] = None inactive: bool = False timestamp: Optional[bytes] = None permissions_granter: Optional[List[Permission]] = None permissions_user: Optional[List[Permission]] = None plan_parameters_approver: Optional[List[PlanParameters]] = None plan_parameters_author: Optional[List[PlanParameters]] = None configuration_versions_approver: Optional[List[ConfigurationVersion]] = None configuration_versions_author: Optional[List[ConfigurationVersion]] = None proxy_accesses: Optional[List[ProxyAccess]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProxyAccess(IId, ITimestamp): id: int = 0 member_id: int = 0 client_id: int = 0 date_created: datetime.datetime = datetime.datetime(1, 1, 1) created_by: int = 0 date_updated: Optional[datetime.datetime] = None updated_by: Optional[int] = None timestamp: Optional[bytes] = None member: Optional[Member] = None client: Optional[Client] = None created_by_user: Optional[User] = None # @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 class JobTypes(str, Enum): IMPORT_MEMBERS = 'ImportMembers' IMPORT_ADMINS = 'ImportAdmins' EXPORT_ACTIVATION_CODES = 'ExportActivationCodes' DOCUMENT_BULK_INDEXING = 'DocumentBulkIndexing' class JobStatuses(str, Enum): STARTED = 'Started' FAILED = 'Failed' SUCCEEDED = 'Succeeded' COMPLETED = 'Completed' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ImportJob(IId, ITimestamp): id: int = 0 type: Optional[JobTypes] = None client_id: Optional[int] = None country_id: Optional[int] = None user: Optional[str] = None filename: Optional[str] = None start_date_time: datetime.datetime = datetime.datetime(1, 1, 1) status: Optional[JobStatuses] = None created: int = 0 updated: int = 0 deleted: int = 0 log: Optional[str] = None timestamp: Optional[bytes] = None client: Optional[Client] = None country: Optional[Country] = 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 Client(IId, ITimestamp): id: int = 0 code: Optional[str] = None name: Optional[str] = None country_id: int = 0 configuration_id: Optional[int] = None uri: Optional[str] = None language_default: Optional[str] = None email_domains: Optional[str] = None dk_kapp_code: Optional[str] = None offboarding_u_r_l: Optional[str] = None date_marked_for_offboarding: Optional[datetime.datetime] = None data_retention_period_in_years: Optional[int] = None retention_end_date: Optional[datetime.datetime] = None sa_client_id: Optional[str] = None inactive: bool = False timestamp: Optional[bytes] = None country: Optional[Country] = None configuration: Optional[Configuration] = None members: Optional[List[Member]] = None import_jobs: Optional[List[ImportJob]] = None documents: Optional[List[Document]] = None proxy_accesses: Optional[List[ProxyAccess]] = None fund_values: Optional[List[FundValue]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Country(IId, ITimestamp): id: int = 0 name: Optional[str] = None iso_code: Optional[str] = None configuration_id: Optional[int] = None culture_infos: Optional[str] = None excel_template_id: Optional[str] = None sa_client_id: Optional[str] = None inactive: bool = False timestamp: Optional[bytes] = None configuration: Optional[Configuration] = None clients: Optional[List[Client]] = None plans: Optional[List[Plan]] = None documents: Optional[List[Document]] = None import_jobs: Optional[List[ImportJob]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Configuration(IId, ITimestamp): id: int = 0 guid: Optional[str] = None system: bool = False timestamp: Optional[bytes] = None country: Optional[Country] = None client: Optional[Client] = None configuration_versions: Optional[List[ConfigurationVersion]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Country: name: Optional[str] = None languages: Optional[Dict[str, str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SiteSection: route: Optional[str] = None public: bool = False parent: Optional[str] = None roles: int = 0 hide_from: Optional[List[str]] = None order: int = 0 @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 User: roles: Optional[Roles] = 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 @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 ProxyAccess: wtw_username: Optional[str] = None cpr: Optional[str] = None access_granted: bool = False message: Optional[str] = None time_stamp: Optional[datetime.datetime] = None class IId: pass class ITimestamp: timestamp: Optional[bytes] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ScriptTracker(Entity): sprint: Optional[str] = None country: Optional[str] = None language: Optional[str] = None section: Optional[str] = None item_code: Optional[str] = None element: Optional[str] = None value: Optional[str] = None is_from_merge: bool = False # @Route("/faq", "POST,PUT,DELETE") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ListItem(Entity, IReturn["ListItem"]): list_id: Optional[str] = None country: Optional[str] = None related_id: Optional[str] = None code: Optional[str] = None custom: Optional[str] = None # @Route("/content", "POST,PUT") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Content(Entity, IReturn["Content"]): section: Optional[str] = None item_id: Optional[str] = None item_code: Optional[str] = None country: Optional[str] = None lang: Optional[str] = None app: Optional[str] = None company_id: Optional[str] = None company: Optional[str] = None elements: Optional[Dict[str, str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AdminAppData: site_structure: Optional[Dict[str, SiteSection]] = None section_elements: Optional[Dict[str, List[str]]] = None list_relationships: Optional[Dict[str, str]] = None list_items: Optional[List[ListItem]] = None countries: Optional[Dict[str, Country]] = None content: Optional[List[Content]] = None user: Optional[User] = None script_tracker_records: Optional[List[ScriptTracker]] = None configurations: Optional[List[Configuration]] = None # @Route("/admin/app") # @Route("/admin/app/{Country}") # @Route("/admin/app/{Country}/{Lang}") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AdminAppReq(IReturn[AdminAppData]): country: Optional[str] = None lang: Optional[str] = None