/* Options: Date: 2025-07-18 00:52:38 SwiftVersion: 5.0 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: SiteContextReq.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/members", "PUT") public class Member : Member, IReturn { public typealias Return = Member public var id:String? public var email:String? public var employeeGuidString:String? public var ignoreGender:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case email case employeeGuidString case ignoreGender } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(String.self, forKey: .id) email = try container.decodeIfPresent(String.self, forKey: .email) employeeGuidString = try container.decodeIfPresent(String.self, forKey: .employeeGuidString) ignoreGender = try container.decodeIfPresent(Bool.self, forKey: .ignoreGender) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } if email != nil { try container.encode(email, forKey: .email) } if employeeGuidString != nil { try container.encode(employeeGuidString, forKey: .employeeGuidString) } if ignoreGender != nil { try container.encode(ignoreGender, forKey: .ignoreGender) } } } // @Route("/sitecontext") public class SiteContextReq : IReturn, Codable { public typealias Return = SiteContext required public init(){} } public class SiteContext : Codable { public var echoUri:String? public var branding:Branding? public var modules:[String] = [] public var conditionalAccess:ConditionalAccess? public var colorScheme:ColorScheme? public var carriers:[ConfigurationVersionCarrier] = [] public var country:String? public var defaultLanguage:String? public var availableLanguages:[String] = [] public var currency:String? public var employer:Entity? public var carrier:CarrierEntity? public var consultant:Entity? public var member:Member? public var counsellingOptions:CounsellingOptions? public var dkCalculatorConfiguration:DkCalculatorConfiguration? public var dkPensionsInfoSsoTicket:SecurityToken? public var dkPensionsInfo:DkPensionsInfo? public var deCalculatorConfiguration:DeCalculatorConfiguration? public var disabilityInsurancePlan:DisabilityInsurancePlan? public var criticalIllnessInsurancePlan:CriticalIllnessInsurancePlan? public var deathInsurancePlan:DeathInsurancePlan? public var healthInsurancePlan:HealthInsurancePlan? public var accidentInsurancePlan:AccidentInsurancePlan? public var dentalInsurancePlan:DentalInsurancePlan? public var seniorCitizenConcept:SeniorCitizenConcept? public var retirementPlan:RetirementPlan? public var deRetirementPlans:DeRetirementPlans? public var preventiveTreatment:PreventiveTreatment? public var isPensionScheme:Bool? public var pathFinder:PathFinder? public var financialWellBeing:FinancialWellbeing? public var useInformalLanguage:Bool? public var usesSSO:Bool? public var authenticationMethod:AuthenticationMethod? public var cprNumberNeeded:Bool? public var activationCodeRequired:Bool? public var employerEmailDomain:String? public var version:String? public var taxPseudocodeURL:String? public var calculatorConfiguration:CalculatorData? public var configurationIds:ConfigurationIds? public var documentList:[Document] = [] public var newDocumentDaySpan:Int? public var sasTokenDurationInSeconds:Double? public var dataRetentionPeriodInYears:Int? public var periods:[Period] = [] public var groupConfig:ConfigurationVersionGroupConfig? public var memberDocumentConfig:ConfigurationVersionMemberDocumentConfig? public var pensionSightClient:PensionSightClient? public var userResultConfiguration:[UserResultConfiguration] = [] public var userSearchConfiguration:[UserSearchConfiguration] = [] public var userResultConfigurationAdminProxy:[UserResultConfigurationAdminProxy] = [] public var userSearchConfigurationAdminProxy:[UserSearchConfigurationAdminProxy] = [] public var frCompanyPlans:FrCompanyPlans? public var esRetirementPlans:EsRetirementPlans? public var frCalculatorConfiguration:FrCalculatorConfiguration? public var frFundSetups:[FrFundSetup] = [] public var frPlanSetups:[FrPlanSetup] = [] public var frPreviousPlansSetups:[FrPreviousPlansSetup] = [] public var frIndividualPlanFunds:[String] = [] public var beRetirementPlans:[BeRetirementPlans] = [] public var beContributions:BeContributions? public var privateClientProducts:[PrivateClientProduct] = [] public var contactUs:ConfigurationVersionEmailSetting? public var emailSettings:[ConfigurationVersionEmailSetting] = [] public var formTypeFieldsConfiguration:[FormTypeFieldsConfiguration] = [] public var formTypeLookupConfiguration:[FormTypeLookupConfiguration] = [] public var recommendation:ConfigurationVersionRecommendation? public var recommendationProduct:ConfigurationVersionRecommendationProduct? public var ptFundValues:[FundValue] = [] public var ptFundsSetups:[PtFund] = [] public var ptContributionData:PtContribution? public var ptInvestmentAllocations:[PtInvestmentAllocation] = [] public var ptInvestmentSetup:PtInvestmentSetup? public var ptFundLifecycleList:PtFundLifecycleList? public var ptParticipantStatusSetup:PtParticipantStatusSetup? public var ptMatchingContributionList:[PtMatchingContribution] = [] public var votingPollSetup:ConfigurationVersionVotingPollSetup? public var votingPollConfig:[ConfigurationVersionVotingPollConfig] = [] public var ptCalculatorConfiguration:PtCalculatorConfiguration? public var bookingInfo:DkBookingInfo? public var dkPublicContactUsSetup:ConfigurationVersionPublicContactUsSetup? required public init(){} } public class Entity : IEntity, Codable { public var id:String? required public init(){} } public enum AuthenticationMethodType : String, Codable { case NemId case SSO case Common case Single } public class Member : Entity, IProjectable { public var userId:String? public var systemId:String? public var schemeCode:String? public var sessionId:String? public var clientId:String? public var clientCode:String? public var isDefault:Bool? public var groupId:String? public var groupNameUpper:String? public var appName:String? public var appNameUpper:String? public var key:String? public var keyUpper:String? public var country:String? public var locale:String? public var ccy:String? public var cdy:String? public var status:String? public var statusCode:String? public var category:String? public var scheme:String? public var primarySalary:String? public var email:String? public var employer:Employer? public var roles:Roles? public var asAt:Date? public var calcDate:Date? public var nextEOFY:Date? public var periodToNextEOFY:Double? public var year:Int? public var hasPartner:Bool? public var includePartner:Bool? public var includePartnerInCalc:Bool? public var homeOwner:Bool? public var targetAge:Int? public var targetTime:Int? public var targetIncomeR:Double? public var targetIncomeRFreq:Double? public var targetIncomeRAnnual:Double? public var targetP:Double? public var includeSS:Bool? public var firstName:String? public var lastName:String? public var gender:Gender? public var dob:Date? public var salary:Double? public var people:[Person] = [] public var assets:[Asset] = [] public var includeAnnuities:Bool? public var annuities:[Annuity] = [] public var spending:Spending? public var investmentProperties:[InvestmentProperty] = [] public var incomeVectors:[String:[Double]] = [:] public var config:AssumptionsConfig? public var indexation:[RateSpec] = [] public var annuityDisc:[RateSpec] = [] public var indexationRates:[String:[Double]] = [:] public var annuityDiscRates:[String:[Double]] = [:] public var balance:Double? public var planSomeValue:String? public var flag1:Bool? public var flag2:Bool? public var isFriendly:Bool? public var financingOption:String? public var totalYears:Int? public var totalLoopYears:Int? public var age:Double? public var ageR:Double? public var intAge:Int? public var indexType:String? public var indexTypePre:String? public var indexTypePost:String? public var deflationType:String? public var custom:[String:String] = [:] public var countryCalcConfig:CountryCalculatorConfiguration? public var summary:MemberSummary? public var lastModified:Date? public var isReturningUser:Bool? public var clientCountryConfigCacheKey:String? public var personalAssets:Double? public var resultsSummary:Summary? public var totalContribution:TotalContribution? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case userId case systemId case schemeCode case sessionId case clientId case clientCode case isDefault case groupId case groupNameUpper case appName case appNameUpper case key case keyUpper case country case locale case ccy case cdy case status case statusCode case category case scheme case primarySalary case email case employer case roles case asAt case calcDate case nextEOFY case periodToNextEOFY case year case hasPartner case includePartner case includePartnerInCalc case homeOwner case targetAge case targetTime case targetIncomeR case targetIncomeRFreq case targetIncomeRAnnual case targetP case includeSS case firstName case lastName case gender case dob case salary case people case assets case includeAnnuities case annuities case spending case investmentProperties case incomeVectors case config case indexation case annuityDisc case indexationRates case annuityDiscRates case balance case planSomeValue case flag1 case flag2 case isFriendly case financingOption case totalYears case totalLoopYears case age case ageR case intAge case indexType case indexTypePre case indexTypePost case deflationType case custom case countryCalcConfig case summary case lastModified case isReturningUser case clientCountryConfigCacheKey case personalAssets case resultsSummary case totalContribution } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) userId = try container.decodeIfPresent(String.self, forKey: .userId) systemId = try container.decodeIfPresent(String.self, forKey: .systemId) schemeCode = try container.decodeIfPresent(String.self, forKey: .schemeCode) sessionId = try container.decodeIfPresent(String.self, forKey: .sessionId) clientId = try container.decodeIfPresent(String.self, forKey: .clientId) clientCode = try container.decodeIfPresent(String.self, forKey: .clientCode) isDefault = try container.decodeIfPresent(Bool.self, forKey: .isDefault) groupId = try container.decodeIfPresent(String.self, forKey: .groupId) groupNameUpper = try container.decodeIfPresent(String.self, forKey: .groupNameUpper) appName = try container.decodeIfPresent(String.self, forKey: .appName) appNameUpper = try container.decodeIfPresent(String.self, forKey: .appNameUpper) key = try container.decodeIfPresent(String.self, forKey: .key) keyUpper = try container.decodeIfPresent(String.self, forKey: .keyUpper) country = try container.decodeIfPresent(String.self, forKey: .country) locale = try container.decodeIfPresent(String.self, forKey: .locale) ccy = try container.decodeIfPresent(String.self, forKey: .ccy) cdy = try container.decodeIfPresent(String.self, forKey: .cdy) status = try container.decodeIfPresent(String.self, forKey: .status) statusCode = try container.decodeIfPresent(String.self, forKey: .statusCode) category = try container.decodeIfPresent(String.self, forKey: .category) scheme = try container.decodeIfPresent(String.self, forKey: .scheme) primarySalary = try container.decodeIfPresent(String.self, forKey: .primarySalary) email = try container.decodeIfPresent(String.self, forKey: .email) employer = try container.decodeIfPresent(Employer.self, forKey: .employer) roles = try container.decodeIfPresent(Roles.self, forKey: .roles) asAt = try container.decodeIfPresent(Date.self, forKey: .asAt) calcDate = try container.decodeIfPresent(Date.self, forKey: .calcDate) nextEOFY = try container.decodeIfPresent(Date.self, forKey: .nextEOFY) periodToNextEOFY = try container.decodeIfPresent(Double.self, forKey: .periodToNextEOFY) year = try container.decodeIfPresent(Int.self, forKey: .year) hasPartner = try container.decodeIfPresent(Bool.self, forKey: .hasPartner) includePartner = try container.decodeIfPresent(Bool.self, forKey: .includePartner) includePartnerInCalc = try container.decodeIfPresent(Bool.self, forKey: .includePartnerInCalc) homeOwner = try container.decodeIfPresent(Bool.self, forKey: .homeOwner) targetAge = try container.decodeIfPresent(Int.self, forKey: .targetAge) targetTime = try container.decodeIfPresent(Int.self, forKey: .targetTime) targetIncomeR = try container.decodeIfPresent(Double.self, forKey: .targetIncomeR) targetIncomeRFreq = try container.decodeIfPresent(Double.self, forKey: .targetIncomeRFreq) targetIncomeRAnnual = try container.decodeIfPresent(Double.self, forKey: .targetIncomeRAnnual) targetP = try container.decodeIfPresent(Double.self, forKey: .targetP) includeSS = try container.decodeIfPresent(Bool.self, forKey: .includeSS) firstName = try container.decodeIfPresent(String.self, forKey: .firstName) lastName = try container.decodeIfPresent(String.self, forKey: .lastName) gender = try container.decodeIfPresent(Gender.self, forKey: .gender) dob = try container.decodeIfPresent(Date.self, forKey: .dob) salary = try container.decodeIfPresent(Double.self, forKey: .salary) people = try container.decodeIfPresent([Person].self, forKey: .people) ?? [] assets = try container.decodeIfPresent([Asset].self, forKey: .assets) ?? [] includeAnnuities = try container.decodeIfPresent(Bool.self, forKey: .includeAnnuities) annuities = try container.decodeIfPresent([Annuity].self, forKey: .annuities) ?? [] spending = try container.decodeIfPresent(Spending.self, forKey: .spending) investmentProperties = try container.decodeIfPresent([InvestmentProperty].self, forKey: .investmentProperties) ?? [] incomeVectors = try container.decodeIfPresent([String:[Double]].self, forKey: .incomeVectors) ?? [:] config = try container.decodeIfPresent(AssumptionsConfig.self, forKey: .config) indexation = try container.decodeIfPresent([RateSpec].self, forKey: .indexation) ?? [] annuityDisc = try container.decodeIfPresent([RateSpec].self, forKey: .annuityDisc) ?? [] indexationRates = try container.decodeIfPresent([String:[Double]].self, forKey: .indexationRates) ?? [:] annuityDiscRates = try container.decodeIfPresent([String:[Double]].self, forKey: .annuityDiscRates) ?? [:] balance = try container.decodeIfPresent(Double.self, forKey: .balance) planSomeValue = try container.decodeIfPresent(String.self, forKey: .planSomeValue) flag1 = try container.decodeIfPresent(Bool.self, forKey: .flag1) flag2 = try container.decodeIfPresent(Bool.self, forKey: .flag2) isFriendly = try container.decodeIfPresent(Bool.self, forKey: .isFriendly) financingOption = try container.decodeIfPresent(String.self, forKey: .financingOption) totalYears = try container.decodeIfPresent(Int.self, forKey: .totalYears) totalLoopYears = try container.decodeIfPresent(Int.self, forKey: .totalLoopYears) age = try container.decodeIfPresent(Double.self, forKey: .age) ageR = try container.decodeIfPresent(Double.self, forKey: .ageR) intAge = try container.decodeIfPresent(Int.self, forKey: .intAge) indexType = try container.decodeIfPresent(String.self, forKey: .indexType) indexTypePre = try container.decodeIfPresent(String.self, forKey: .indexTypePre) indexTypePost = try container.decodeIfPresent(String.self, forKey: .indexTypePost) deflationType = try container.decodeIfPresent(String.self, forKey: .deflationType) custom = try container.decodeIfPresent([String:String].self, forKey: .custom) ?? [:] countryCalcConfig = try container.decodeIfPresent(CountryCalculatorConfiguration.self, forKey: .countryCalcConfig) summary = try container.decodeIfPresent(MemberSummary.self, forKey: .summary) lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified) isReturningUser = try container.decodeIfPresent(Bool.self, forKey: .isReturningUser) clientCountryConfigCacheKey = try container.decodeIfPresent(String.self, forKey: .clientCountryConfigCacheKey) personalAssets = try container.decodeIfPresent(Double.self, forKey: .personalAssets) resultsSummary = try container.decodeIfPresent(Summary.self, forKey: .resultsSummary) totalContribution = try container.decodeIfPresent(TotalContribution.self, forKey: .totalContribution) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if userId != nil { try container.encode(userId, forKey: .userId) } if systemId != nil { try container.encode(systemId, forKey: .systemId) } if schemeCode != nil { try container.encode(schemeCode, forKey: .schemeCode) } if sessionId != nil { try container.encode(sessionId, forKey: .sessionId) } if clientId != nil { try container.encode(clientId, forKey: .clientId) } if clientCode != nil { try container.encode(clientCode, forKey: .clientCode) } if isDefault != nil { try container.encode(isDefault, forKey: .isDefault) } if groupId != nil { try container.encode(groupId, forKey: .groupId) } if groupNameUpper != nil { try container.encode(groupNameUpper, forKey: .groupNameUpper) } if appName != nil { try container.encode(appName, forKey: .appName) } if appNameUpper != nil { try container.encode(appNameUpper, forKey: .appNameUpper) } if key != nil { try container.encode(key, forKey: .key) } if keyUpper != nil { try container.encode(keyUpper, forKey: .keyUpper) } if country != nil { try container.encode(country, forKey: .country) } if locale != nil { try container.encode(locale, forKey: .locale) } if ccy != nil { try container.encode(ccy, forKey: .ccy) } if cdy != nil { try container.encode(cdy, forKey: .cdy) } if status != nil { try container.encode(status, forKey: .status) } if statusCode != nil { try container.encode(statusCode, forKey: .statusCode) } if category != nil { try container.encode(category, forKey: .category) } if scheme != nil { try container.encode(scheme, forKey: .scheme) } if primarySalary != nil { try container.encode(primarySalary, forKey: .primarySalary) } if email != nil { try container.encode(email, forKey: .email) } if employer != nil { try container.encode(employer, forKey: .employer) } if roles != nil { try container.encode(roles, forKey: .roles) } if asAt != nil { try container.encode(asAt, forKey: .asAt) } if calcDate != nil { try container.encode(calcDate, forKey: .calcDate) } if nextEOFY != nil { try container.encode(nextEOFY, forKey: .nextEOFY) } if periodToNextEOFY != nil { try container.encode(periodToNextEOFY, forKey: .periodToNextEOFY) } if year != nil { try container.encode(year, forKey: .year) } if hasPartner != nil { try container.encode(hasPartner, forKey: .hasPartner) } if includePartner != nil { try container.encode(includePartner, forKey: .includePartner) } if includePartnerInCalc != nil { try container.encode(includePartnerInCalc, forKey: .includePartnerInCalc) } if homeOwner != nil { try container.encode(homeOwner, forKey: .homeOwner) } if targetAge != nil { try container.encode(targetAge, forKey: .targetAge) } if targetTime != nil { try container.encode(targetTime, forKey: .targetTime) } if targetIncomeR != nil { try container.encode(targetIncomeR, forKey: .targetIncomeR) } if targetIncomeRFreq != nil { try container.encode(targetIncomeRFreq, forKey: .targetIncomeRFreq) } if targetIncomeRAnnual != nil { try container.encode(targetIncomeRAnnual, forKey: .targetIncomeRAnnual) } if targetP != nil { try container.encode(targetP, forKey: .targetP) } if includeSS != nil { try container.encode(includeSS, forKey: .includeSS) } if firstName != nil { try container.encode(firstName, forKey: .firstName) } if lastName != nil { try container.encode(lastName, forKey: .lastName) } if gender != nil { try container.encode(gender, forKey: .gender) } if dob != nil { try container.encode(dob, forKey: .dob) } if salary != nil { try container.encode(salary, forKey: .salary) } if people.count > 0 { try container.encode(people, forKey: .people) } if assets.count > 0 { try container.encode(assets, forKey: .assets) } if includeAnnuities != nil { try container.encode(includeAnnuities, forKey: .includeAnnuities) } if annuities.count > 0 { try container.encode(annuities, forKey: .annuities) } if spending != nil { try container.encode(spending, forKey: .spending) } if investmentProperties.count > 0 { try container.encode(investmentProperties, forKey: .investmentProperties) } if incomeVectors.count > 0 { try container.encode(incomeVectors, forKey: .incomeVectors) } if config != nil { try container.encode(config, forKey: .config) } if indexation.count > 0 { try container.encode(indexation, forKey: .indexation) } if annuityDisc.count > 0 { try container.encode(annuityDisc, forKey: .annuityDisc) } if indexationRates.count > 0 { try container.encode(indexationRates, forKey: .indexationRates) } if annuityDiscRates.count > 0 { try container.encode(annuityDiscRates, forKey: .annuityDiscRates) } if balance != nil { try container.encode(balance, forKey: .balance) } if planSomeValue != nil { try container.encode(planSomeValue, forKey: .planSomeValue) } if flag1 != nil { try container.encode(flag1, forKey: .flag1) } if flag2 != nil { try container.encode(flag2, forKey: .flag2) } if isFriendly != nil { try container.encode(isFriendly, forKey: .isFriendly) } if financingOption != nil { try container.encode(financingOption, forKey: .financingOption) } if totalYears != nil { try container.encode(totalYears, forKey: .totalYears) } if totalLoopYears != nil { try container.encode(totalLoopYears, forKey: .totalLoopYears) } if age != nil { try container.encode(age, forKey: .age) } if ageR != nil { try container.encode(ageR, forKey: .ageR) } if intAge != nil { try container.encode(intAge, forKey: .intAge) } if indexType != nil { try container.encode(indexType, forKey: .indexType) } if indexTypePre != nil { try container.encode(indexTypePre, forKey: .indexTypePre) } if indexTypePost != nil { try container.encode(indexTypePost, forKey: .indexTypePost) } if deflationType != nil { try container.encode(deflationType, forKey: .deflationType) } if custom.count > 0 { try container.encode(custom, forKey: .custom) } if countryCalcConfig != nil { try container.encode(countryCalcConfig, forKey: .countryCalcConfig) } if summary != nil { try container.encode(summary, forKey: .summary) } if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) } if isReturningUser != nil { try container.encode(isReturningUser, forKey: .isReturningUser) } if clientCountryConfigCacheKey != nil { try container.encode(clientCountryConfigCacheKey, forKey: .clientCountryConfigCacheKey) } if personalAssets != nil { try container.encode(personalAssets, forKey: .personalAssets) } if resultsSummary != nil { try container.encode(resultsSummary, forKey: .resultsSummary) } if totalContribution != nil { try container.encode(totalContribution, forKey: .totalContribution) } } } public class Member : IId, ITimestamp, Codable { public var id:Int? public var employeeGuid:String? public var employeeId:String? public var clientId:Int? public var configurationId:Int? public var lastName:String? public var firstName:String? public var companyName:String? public var employeeGroup:String? public var title:String? public var birthdate:Date? public var emailAddress:String? public var maritalStatus:MaritalStatuses? public var partnerBirthDate:Date? public var gender:IsoGenders? public var militaryMonthCount:Int16? public var annualSalary:Double? public var monthlySalary:Double? public var salaryFrequency:Int? public var deFederalState:GermanFederalStates? public var deTaxClass:GermanTaxClasses? public var deChurchTax:Bool? public var dePrivNursingInsurance:Double? public var pensionFinancingOption:String? public var hasPrivHealthInsurance:Bool? public var privHealthInsurance:Double? public var childrenCount:Int16? public var child1BirthDate:Date? public var child2BirthDate:Date? public var child3BirthDate:Date? public var child4BirthDate:Date? public var child5BirthDate:Date? public var child6BirthDate:Date? public var child7BirthDate:Date? public var child8BirthDate:Date? public var child9BirthDate:Date? public var child10BirthDate:Date? public var authId:String? public var authRegistrationDate:Date? public var activationCode:String? public var activationExpiringDate:Date? public var planInfoDate:Date? public var planInfoBag:String? public var inactive:Bool? public var dateCreated:Date? public var removeRequestDate:Date? public var timestamp:[UInt8] = [] public var client:Client? public var contributionDataDate:Date? public var beneficiaryFirstName:String? public var beneficiaryLastName:String? public var beneficiaryTitle:String? public var beneficiaryDateOfBirth:Date? public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var phoneNumber:String? public var mobileNumber:String? public var dateCommencedService:Date? public var calculatorDataDate:Date? public var calculatorDataBag:String? public var periodStart:Date? public var periodEnd:Date? public var memberId:Int? public var infoBag:String? public var projectionInfoBag:String? public var companyPlanInfo:String? public var infoProviderReference:String? public var dateOfHire:Date? public var ssin:String? public var isProxy:Bool? public var isAllowedToVote:Bool? public var userId:String? public var participantStatus:String? public var investmentStrategy:String? public var isAllowedToUpdatePlan:Bool? public var pensionableSalary:Double? public var dateOfBirthSpouse:Date? public var dateOfBirthYoungestChild:Date? public var dateHiredOfPlan:Date? public var contractType:String? public var investmentRiskProfile:String? public var documents:[Document] = [] public var powensConnectionSyncs:[PowensConnectionSync] = [] public var members:[Member] = [] public var groupMembers:[GroupMember] = [] public var parent:Member? public var pensionFundManager:String? public var proxyAccesses:[ProxyAccess] = [] public var beneficiaries:[Beneficiary] = [] public var currentBalances:[CurrentBalance] = [] public var detailedBalances:[DetailedBalance] = [] public var votingPollAnswers:[VotingPollAnswer] = [] public var investmentAllocations:[InvestmentAllocation] = [] public var memberContributions:[MemberContribution] = [] public var participantStatusFormAnswers:[ParticipantStatusFormAnswer] = [] required public init(){} } public class Member : Codable { public var memberId:Int? public var employeeId:String? public var employeeGuid:String? public var email:String? public var title:String? public var firstName:String? public var companyName:String? public var employeeGroup:String? public var lastName:String? public var dateOfBirth:Date? public var gender:IsoGenders? public var maritalStatus:MaritalStatuses? public var numberOfChildren:Int? public var childrenCount:Int? public var monthlySalary:Double? public var annualSalary:Double? public var dkPensionTerms:DkPensionTerms? public var dkPrivateEmailAddress:String? public var dkEmployerName:String? public var dkContactConsent:Bool? public var dkPersonalMandate:Bool? public var deFederalState:GermanFederalStates? public var deTaxClass:GermanTaxClasses? public var deChurchTax:Bool? public var hasPrivHealthInsurance:Bool? public var privHealthInsurance:Double? public var dePrivNursingInsurance:Double? public var contributionDataDate:Date? public var beneficiaryFirstName:String? public var beneficiaryLastName:String? public var beneficiaryTitle:String? public var beneficiaryDateOfBirth:Date? public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var phoneNumber:String? public var mobileNumber:String? public var dateCommencedService:Date? public var partnerBirthDate:Date? public var militaryMonthCount:Int16? public var child1BirthDate:Date? public var child2BirthDate:Date? public var child3BirthDate:Date? public var child4BirthDate:Date? public var child5BirthDate:Date? public var child6BirthDate:Date? public var child7BirthDate:Date? public var child8BirthDate:Date? public var child9BirthDate:Date? public var child10BirthDate:Date? public var infoBag:String? public var projectionInfoBag:String? public var clientId:Int? public var companyPlanInfo:String? public var pensionFundManager:String? public var dateOfHire:Date? public var powensConnections:[PowensConnection] = [] public var isPrivateClient:Bool? public var isProxy:Bool? public var beneficiaries:[Beneficiary] = [] public var currentBalances:[CurrentBalance] = [] public var detailedBalances:[DetailedBalance] = [] public var beneficiariesLatestSubmittedDate:Date? public var userId:String? public var participantStatus:String? public var investmentStrategy:String? public var isAllowedToUpdatePlan:Bool? public var pensionableSalary:Double? public var dateOfBirthSpouse:Date? public var dateOfBirthYoungestChild:Date? public var dateHiredOfPlan:Date? public var contractType:String? public var isAllowedToVote:Bool? public var votingPollAnswer:VotingPollAnswer? required public init(){} } public class Branding : Codable { public var primaryLogo:LogoSource? public var secondaryLogo:LogoSource? public var primaryMobileMargin:String? public var primaryDesktopMargin:String? public var secondaryMobileMargin:String? public var secondaryDesktopMargin:String? required public init(){} } public class ConditionalAccess : Codable { public var healthInsuranceExcludedUrls:[String] = [] public var pensionSchemeExcludedUrls:[String] = [] public var investmentChoiceExcludedUrls:[String] = [] required public init(){} } public class ColorScheme : Codable { public var newNavigationColorScheme:String? public var primaryPalette:PrimaryPalette? public var secondaryPalette:SecondaryPalette? public var decorativeColourPalette:DecorativeColourPalette? public var decorativeGrayPalette:DecorativeGrayPalette? public var fontPalette:FontPalette? required public init(){} } public class Entity : Codable { public var logoUri:String? public var name:String? public var contactDetails:ContactDetails? required public init(){} } public class CarrierEntity : Entity { public var carrierId:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case carrierId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) carrierId = try container.decodeIfPresent(String.self, forKey: .carrierId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if carrierId != nil { try container.encode(carrierId, forKey: .carrierId) } } } public class CounsellingOptions : Codable { public var isEnabled:Bool? public var callbackOption:CounsellingOption? public var sendAnEmailOption:CounsellingOption? public var serviceLineOption:CounsellingOption? public var bookAppointment:CounsellingOption? public var seniorAdvisory:CounsellingOption? required public init(){} } public class DkCalculatorConfiguration : CalculatorConfiguration { public var folkepensionParameters:FolkepensionParameters? public var fortidspensionParameters:FortidspensionParameters? public var danishTaxParameters:DanishTaxParameters? public var danishAdvisoryParameters:DanishAdvisoryParameters? public var danishGeneralPensionParameters:DanishGeneralPensionParameters? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case folkepensionParameters case fortidspensionParameters case danishTaxParameters case danishAdvisoryParameters case danishGeneralPensionParameters } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) folkepensionParameters = try container.decodeIfPresent(FolkepensionParameters.self, forKey: .folkepensionParameters) fortidspensionParameters = try container.decodeIfPresent(FortidspensionParameters.self, forKey: .fortidspensionParameters) danishTaxParameters = try container.decodeIfPresent(DanishTaxParameters.self, forKey: .danishTaxParameters) danishAdvisoryParameters = try container.decodeIfPresent(DanishAdvisoryParameters.self, forKey: .danishAdvisoryParameters) danishGeneralPensionParameters = try container.decodeIfPresent(DanishGeneralPensionParameters.self, forKey: .danishGeneralPensionParameters) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if folkepensionParameters != nil { try container.encode(folkepensionParameters, forKey: .folkepensionParameters) } if fortidspensionParameters != nil { try container.encode(fortidspensionParameters, forKey: .fortidspensionParameters) } if danishTaxParameters != nil { try container.encode(danishTaxParameters, forKey: .danishTaxParameters) } if danishAdvisoryParameters != nil { try container.encode(danishAdvisoryParameters, forKey: .danishAdvisoryParameters) } if danishGeneralPensionParameters != nil { try container.encode(danishGeneralPensionParameters, forKey: .danishGeneralPensionParameters) } } } public class SecurityToken : Codable { public var value:String? public var expiration:Date? required public init(){} } public class DkPensionsInfo : Codable { public var date:Date? public var savings:[DkPensionsInfoSaving] = [] public var projections:[DkPensionsInfoProjection] = [] public var risks:[DkPensionsInfoRisk] = [] required public init(){} } public class DeCalculatorConfiguration : CalculatorConfiguration { public var socialSecurityParameters:DeSocialSecurityParameters? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case socialSecurityParameters } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) socialSecurityParameters = try container.decodeIfPresent(DeSocialSecurityParameters.self, forKey: .socialSecurityParameters) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if socialSecurityParameters != nil { try container.encode(socialSecurityParameters, forKey: .socialSecurityParameters) } } } public class DisabilityInsurancePlan : Codable { public var disabilityDegree:String? public var hasPremiumWaiverCover:Bool? public var disabilityCover:[DisabilityCover] = [] required public init(){} } public class CriticalIllnessInsurancePlan : Codable { public var criticalIllnessCover:[Cover] = [] public var criticalIllnessChildrenCover:[Cover] = [] required public init(){} } public class DeathInsurancePlan : Codable { public var deathCover:[DeathCover] = [] public var deathChildrenCover:[Cover] = [] required public init(){} } public class HealthInsurancePlan : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? public var coverageType:CoverageTypes? public var spouseCoverageType:CoverageTypes? public var childCoverageType:CoverageTypes? public var childCoverageMaxAge:Int? required public init(){} } public class AccidentInsurancePlan : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? public var insuranceAmount:Int? public var deathCover:Bool? public var dentalCover:Bool? required public init(){} } public class DentalInsurancePlan : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? public var coverageType:String? public var extendedCoverage:Bool? required public init(){} } public class SeniorCitizenConcept : Codable { public var solidary:Bool? public var hasSpecificPrice:Bool? public var specificPrice:Double? required public init(){} } public class RetirementPlan : Codable { public var contributionUnit:String? public var mandatoryEmployerContribution:Double? public var mandatoryEmployeeContribution:Double? public var additionalContribution:Double? public var savingOptions:[SavingOption] = [] public var defaultCarrier:CarrierEntity? public var hasDefaultSavingProduct:Bool? public var defaultSavingProduct:SavingProduct? required public init(){} } public class DeRetirementPlans : Codable { public var retirementBenefitAmountDisplayOption:RetirementBenefitAmountDisplayOptionType? public var retirementBenefitAmountDisplayOptions:[RetirementBenefitAmountDisplayOptionType] = [] public var financingVehicles:[FinancingVehicleType] = [] public var contributionTypes:[ContributionType] = [] public var retirementPlans:[DeRetirementPlan] = [] public var defaultRetirementPlans:[DeRetirementPlan] = [] required public init(){} } public class PreventiveTreatment : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? required public init(){} } public class PathFinder : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? required public init(){} } public class FinancialWellbeing : Codable { public var carrier:CarrierEntity? public var expiryAge:Double? required public init(){} } public class AuthenticationMethod : Codable { public var type:AuthenticationMethodType? public var saClientId:String? public var registrationFields:[String] = [] required public init(){} } public class CalculatorData : Codable { public var isEnabled:Bool? public var cdyPosition:String? public var amountInputPrecision:Int? public var percentInputPrecision:Int? public var locale:[String:String] = [:] public var displayPrecision:Int? public var upwardsConversionPrecision:Int? public var downwardsConversionPrecision:Int? public var useInvestmentProductsFile:Bool? public var investmentProductsFileName:String? public var member:Member? public var clientCountryConfig:ClientCountryConfig? public var colorScheme:CalculatorColorScheme? public var riskProfileMapping:[String:[String:String]] = [:] public var defaultRiskLevel:String? public var dkAnnuityPriceList:[CalculatorDkAnnuityPrice] = [] public var dkCarrierIDMapping:[String:String] = [:] public var dkDefaultCarrierID:String? public var frConfiguration:CalculatorFrConfiguration? public var rpcLevelInfo:RPCLevelInfo? public var frIncludePEROProfitSharingSavings:Bool? public var ptLifetimePensionAnnuityFactors:[CalculatorPtAnnuityFactorLP] = [] public var ptPensionDrawdownAnnuityFactors:[CalculatorPtAnnuityFactorPD] = [] public var salaryGrowthIndexMappings:[CalculatorSalaryGrowthIndexMapping] = [] required public init(){} } public class ConfigurationIds : Codable { public var configuration:[Int] = [] public var planParameters:Int? required public init(){} } public class Document : Codable { public var tags:String? public var subTag:String? public var size:Int? public var dateCreated:Date? public var isNew:Bool? public var reference:String? public var filename:String? public var languageIsoCode:String? required public init(){} } public class Period : Codable { public var start:Date? public var end:Date? public var clientName:String? public var clientCode:String? public var clientId:Int? public var authId:String? public var employeeId:String? public var infoProviderReference:String? public var status:String? required public init(){} } public class ConfigurationVersionGroupConfig : Codable { public var entityColumnFilters:[ConfigurationVersionEntityColumnFilter] = [] public var rule:String? required public init(){} } public class ConfigurationVersionMemberDocumentConfig : Codable { public var maxFileSizeMB:Int? public var allowedMIMETypes:[String] = [] required public init(){} } public class PensionSightClient : Codable { public var clientID:String? public var name:String? public var name_NL:String? public var name_FR:String? public var name_EN:String? public var text_Standard_Beneficiary_Nominations:String? public var text_Specific_Beneficiary_Nominations:String? required public init(){} } public class UserResultConfiguration : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? required public init(){} } public class UserSearchConfiguration : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? required public init(){} } public class UserResultConfigurationAdminProxy : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? required public init(){} } public class UserSearchConfigurationAdminProxy : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? required public init(){} } public class FrCompanyPlans : Codable { public var currentEmployerPlans:FrCompanyPlan? public var previousEmployerPlans:FrCompanyPlan? public var individualCompanyPlans:FrCompanyPlan? public var others:FrCompanyPlan? public var current:PlanTypeMap? public var previous:PlanTypeMap? public var individual:PlanTypeMap? required public init(){} } public class EsRetirementPlans : Codable { public var retirementPlans:[EsRetirementPlan] = [] required public init(){} } public class FrCalculatorConfiguration : CalculatorConfiguration { public var socialSecurityParameters:FrSocialSecurityParameters? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case socialSecurityParameters } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) socialSecurityParameters = try container.decodeIfPresent(FrSocialSecurityParameters.self, forKey: .socialSecurityParameters) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if socialSecurityParameters != nil { try container.encode(socialSecurityParameters, forKey: .socialSecurityParameters) } } } public class FrFundSetup : Codable { public var id:String? public var name:String? public var code:String? required public init(){} } public class FrPlanSetup : Codable { public var planType:String? public var name:String? public var funds:[String] = [] public var connectorID:Int? public var personalInformation:String? public var voluntaryContributions:String? public var investmentOptions:String? public var payoutOptions:String? public var yourBeneficiaries:String? public var retirementLiquidation:String? required public init(){} } public class FrPreviousPlansSetup : Codable { public var providerName:String? public var planType:String? public var link:String? required public init(){} } public class BeRetirementPlans : Codable { public var type:String? public var reversible:Double? public var employerRetirementPlan:BeRetirementPlan? public var employeeRetirementPlan:BeRetirementPlan? public var totalAnnuity:Double? public var totalLumpSum:Double? public var totalVestedReserves:Double? public var totalAccruedReserves:Double? public var totalLegalMinimum:Double? required public init(){} } public class BeContributions : Codable { public var balances:[Contribution] = [] required public init(){} } public class PrivateClientProduct : Codable { public var carrier:Int? public var privateProductId:Int? required public init(){} } public class ConfigurationVersionEmailSetting : Codable { public var id:String? public var subjectFormat:String? public var sendToBCC:[String] = [] public var sendToCC:[String] = [] public var sendFrom:[String] = [] public var bodyTemplate:String? required public init(){} } public class FormTypeFieldsConfiguration : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? public var validation:[String] = [] public var lookupReference:String? public var min:Int? public var max:Int? required public init(){} } public class FormTypeLookupConfiguration : Codable { public var name:String? required public init(){} } public class ConfigurationVersionRecommendation : Codable { public var products:[ProductQuestion] = [] public var riskQuestions:[RiskQuestion] = [] public var risks:[RiskRecommendation] = [] required public init(){} } public class ConfigurationVersionRecommendationProduct : Codable { public var products:[ProductData] = [] public var pieGraphData:PieGraph? public var productRiskMatrix:[ProductRiskMatrix] = [] public var barGraphData:[[String:String]] = [] public var productTypeData:[ProductTypeData] = [] public var historicalTableData:HistoricalData? required public init(){} } public class FundValue : IId, ITimestamp, Codable { public var id:Int? public var fundId:String? public var clientId:Int? public var informationDate:Date? public var investmentReturnTwelveMonths:Double? public var investmentReturnThreeYears:Double? public var investmentReturnFiveYears:Double? public var currentAnnualPensionFee:Double? public var dateCreated:Date? public var dateUpdated:Date? public var createdBy:String? public var updatedBy:String? public var timestamp:[UInt8] = [] required public init(){} } public class PtFund : Codable { public var identifier:String? public var name:String? required public init(){} } public class PtContribution : Codable { public var id:Int? public var memberId:Int? public var choiceStartDate:Date? public var choiceEndDate:Date? public var baseContributionPercent:Double? public var voluntaryContributionPercent:Double? public var incentiveContributionPercent:Double? public var totalContributionPercent:Double? public var baseContributionValue:Double? public var voluntaryContributionValue:Double? public var incentiveContributionValue:Double? public var totalContributionValue:Double? public var dateCreated:Date? public var dateUpdated:Date? required public init(){} } public class PtInvestmentAllocation : Codable { public var id:Int? public var memberId:Int? public var fundId:String? public var currentBalancePercent:Double? public var futureContributionPercent:Double? public var currentBalanceFutureContributionPercent:Double? public var dateCreated:Date? public var dateUpdated:Date? required public init(){} } public class PtInvestmentSetup : Codable { public var hasLifeCycle:Bool? public var isCurrentBalanceDisplayed:Bool? public var isFutureContributionDisplayed:Bool? public var isCurrentBalanceFutureContributionDisplayed:Bool? public var isAdditionalInfoDisplayed:Bool? public var choicePeriodStartDate:Date? public var choicePeriodEndDate:Date? public var lifeCycleAgeBasis:String? public var lifeCycleAgeBasisDate:Date? public var lifeCycleAge:Int? public var baseContributionPercent:Double? public var isBaseContributionRuleExisting:Bool? public var isTotalAllocated1To100:Bool? public var childrenCount:Int? required public init(){} } public class PtFundLifecycleList : Codable { public var investmentChoiceList:[[String:String]] = [] required public init(){} } public class PtParticipantStatusSetup : Codable { public var isNewJoinerFormEnabled:Bool? public var isLeaverFormEnabled:Bool? public var isNewJoinerDataExisting:Bool? public var isLeaverDataExisting:Bool? required public init(){} } public class PtMatchingContribution : Codable { public var voluntary:Double? public var match:Double? required public init(){} } public class ConfigurationVersionVotingPollSetup : Codable { public var code:String? public var startDate:Date? public var endDate:Date? public var defaultImage:String? public var options:[ConfigurationVersionVotingOptions] = [] required public init(){} } public class ConfigurationVersionVotingPollConfig : Codable { public var order:Int? public var label:String? public var field:String? public var type:String? required public init(){} } public class PtCalculatorConfiguration : CalculatorConfiguration { public var socialSecurityParameters:PtSocialSecurityParameters? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case socialSecurityParameters } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) socialSecurityParameters = try container.decodeIfPresent(PtSocialSecurityParameters.self, forKey: .socialSecurityParameters) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if socialSecurityParameters != nil { try container.encode(socialSecurityParameters, forKey: .socialSecurityParameters) } } } public class DkBookingInfo : Codable { public var bookingAllowed:Bool? public var bookingGroups:[BookingGroup] = [] public var hasBookingTime:Bool? public var bookingTimeLink:String? required public init(){} } public class ConfigurationVersionPublicContactUsSetup : Codable { public var lookupReference:String? public var currentProduct:String? public var productEmails:[ConfigurationVersionProductEmailSetup] = [] public var toRecipients:[String] = [] public var ccRecipients:[String] = [] public var bccRecipients:[String] = [] required public init(){} } public class Document : IId, ITimestamp, Codable { public var id:Int? public var reference:String? public var Description:String? public var tags:String? public var countryId:Int? public var clientId:Int? public var memberId:Int? public var group:String? public var subTag:String? public var languageIsoCode:String? public var benefitEffectiveDate:Date? public var bulkName:String? public var size:Int? public var dateCreated:Date? public var inactive:Bool? public var timestamp:[UInt8] = [] public var client:Client? public var country:Country? public var member:Member? public var documentGroups:[DocumentGroup] = [] public var blobName:String? public var contentType:String? public var filename:String? required public init(){} } public protocol IId { } public protocol ITimestamp { var timestamp:[UInt8] { get set } } public class Contribution : Projectable { public var code:String? public var index:Int? public var name:String? public var ccy:String? public var contTable:String? public var isEmployeeCont:Bool? public var employerFlag:Bool? public var type:ContributionType? public var linkedContIndex:Int? public var sourceRate:String? public var isTaxable:Bool? public var amount:Double? public var coreAmount:Double? public var freq:Double? public var rate:Double? public var coreRate:Double? public var fromAge:Int? public var toAge:Int? public var salary:Double? public var annualAmount:Double? public var annualCoreAmount:Double? public var isAlwaysOneOff:Bool? public var isOneOff:Bool? public var constraintType:ContributionConstraintType? public var custom:[String:String] = [:] public var memberRateLookup:[Int:Double] = [:] public var isFromSalary:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case code case index case name case ccy case contTable case isEmployeeCont case employerFlag case type case linkedContIndex case sourceRate case isTaxable case amount case coreAmount case freq case rate case coreRate case fromAge case toAge case salary case annualAmount case annualCoreAmount case isAlwaysOneOff case isOneOff case constraintType case custom case memberRateLookup case isFromSalary } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) code = try container.decodeIfPresent(String.self, forKey: .code) index = try container.decodeIfPresent(Int.self, forKey: .index) name = try container.decodeIfPresent(String.self, forKey: .name) ccy = try container.decodeIfPresent(String.self, forKey: .ccy) contTable = try container.decodeIfPresent(String.self, forKey: .contTable) isEmployeeCont = try container.decodeIfPresent(Bool.self, forKey: .isEmployeeCont) employerFlag = try container.decodeIfPresent(Bool.self, forKey: .employerFlag) type = try container.decodeIfPresent(ContributionType.self, forKey: .type) linkedContIndex = try container.decodeIfPresent(Int.self, forKey: .linkedContIndex) sourceRate = try container.decodeIfPresent(String.self, forKey: .sourceRate) isTaxable = try container.decodeIfPresent(Bool.self, forKey: .isTaxable) amount = try container.decodeIfPresent(Double.self, forKey: .amount) coreAmount = try container.decodeIfPresent(Double.self, forKey: .coreAmount) freq = try container.decodeIfPresent(Double.self, forKey: .freq) rate = try container.decodeIfPresent(Double.self, forKey: .rate) coreRate = try container.decodeIfPresent(Double.self, forKey: .coreRate) fromAge = try container.decodeIfPresent(Int.self, forKey: .fromAge) toAge = try container.decodeIfPresent(Int.self, forKey: .toAge) salary = try container.decodeIfPresent(Double.self, forKey: .salary) annualAmount = try container.decodeIfPresent(Double.self, forKey: .annualAmount) annualCoreAmount = try container.decodeIfPresent(Double.self, forKey: .annualCoreAmount) isAlwaysOneOff = try container.decodeIfPresent(Bool.self, forKey: .isAlwaysOneOff) isOneOff = try container.decodeIfPresent(Bool.self, forKey: .isOneOff) constraintType = try container.decodeIfPresent(ContributionConstraintType.self, forKey: .constraintType) custom = try container.decodeIfPresent([String:String].self, forKey: .custom) ?? [:] memberRateLookup = try container.decodeIfPresent([Int:Double].self, forKey: .memberRateLookup) ?? [:] isFromSalary = try container.decodeIfPresent(Bool.self, forKey: .isFromSalary) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if code != nil { try container.encode(code, forKey: .code) } if index != nil { try container.encode(index, forKey: .index) } if name != nil { try container.encode(name, forKey: .name) } if ccy != nil { try container.encode(ccy, forKey: .ccy) } if contTable != nil { try container.encode(contTable, forKey: .contTable) } if isEmployeeCont != nil { try container.encode(isEmployeeCont, forKey: .isEmployeeCont) } if employerFlag != nil { try container.encode(employerFlag, forKey: .employerFlag) } if type != nil { try container.encode(type, forKey: .type) } if linkedContIndex != nil { try container.encode(linkedContIndex, forKey: .linkedContIndex) } if sourceRate != nil { try container.encode(sourceRate, forKey: .sourceRate) } if isTaxable != nil { try container.encode(isTaxable, forKey: .isTaxable) } if amount != nil { try container.encode(amount, forKey: .amount) } if coreAmount != nil { try container.encode(coreAmount, forKey: .coreAmount) } if freq != nil { try container.encode(freq, forKey: .freq) } if rate != nil { try container.encode(rate, forKey: .rate) } if coreRate != nil { try container.encode(coreRate, forKey: .coreRate) } if fromAge != nil { try container.encode(fromAge, forKey: .fromAge) } if toAge != nil { try container.encode(toAge, forKey: .toAge) } if salary != nil { try container.encode(salary, forKey: .salary) } if annualAmount != nil { try container.encode(annualAmount, forKey: .annualAmount) } if annualCoreAmount != nil { try container.encode(annualCoreAmount, forKey: .annualCoreAmount) } if isAlwaysOneOff != nil { try container.encode(isAlwaysOneOff, forKey: .isAlwaysOneOff) } if isOneOff != nil { try container.encode(isOneOff, forKey: .isOneOff) } if constraintType != nil { try container.encode(constraintType, forKey: .constraintType) } if custom.count > 0 { try container.encode(custom, forKey: .custom) } if memberRateLookup.count > 0 { try container.encode(memberRateLookup, forKey: .memberRateLookup) } if isFromSalary != nil { try container.encode(isFromSalary, forKey: .isFromSalary) } } } public enum LogoSource : String, Codable { case Consultant case Employer } public class PrimaryPalette : Codable { public var primaryColour1:String? public var primaryColour2:String? public var primaryColour3:String? public var primaryColour4:String? public var primaryColour5:String? public var primaryColour6:String? public var primaryColour7:String? public var primaryColour8:String? public var primaryColour9:String? public var primaryColour10:String? public var primaryColour11:String? public var primaryColour12:String? public var primaryColour13:String? public var primaryColour14:String? public var primaryColour15:String? public var primaryColour16:String? public var primaryColour17:String? public var primaryColour18:String? public var primaryColour19:String? required public init(){} } public class SecondaryPalette : Codable { public var secondaryColour1:String? public var secondaryColour2:String? public var secondaryColour3:String? public var secondaryColour4:String? required public init(){} } public class DecorativeColourPalette : Codable { public var decorativeColour1:String? public var decorativeColour2:String? public var decorativeColour3:String? required public init(){} } public class DecorativeGrayPalette : Codable { public var decorativeColour1:String? public var decorativeColour2:String? public var decorativeColour3:String? public var decorativeColour4:String? public var decorativeColour5:String? public var decorativeColour6:String? public var decorativeColour7:String? public var decorativeColour8:String? public var decorativeColour9:String? public var decorativeColour10:String? public var decorativeColour11:String? public var decorativeColour12:String? required public init(){} } public class FontPalette : Codable { public var fontColour1:String? public var fontColour2:String? required public init(){} } public class ContactDetails : Codable { public var website:String? public var email:String? public var phoneNumber:String? public var openingHours:[String:OpeningHours] = [:] public var showInFooter:Bool? required public init(){} } public class CounsellingOption : Codable { public var isEnabled:Bool? public var startDate:Date? public var endDate:Date? public var contactDetails:ContactDetails? public var url:String? public var fee:Double? public var bookingGroups:[BookingGroup] = [] required public init(){} } public class FolkepensionParameters : Codable { public var year:Int? public var baseAmount:Double? public var pensionSupplementSingle:Double? public var pensionSupplementOther:Double? public var deductionOnBaseAmount:Double? public var deductionOnIncomeOtherPct:Double? public var deductionIncomeAfterAMB:Double? public var deductionPensionSupplementSingle:Double? public var deductionPensionSupplementOther:Double? public var reductionBaseAmount:Double? public var reductionPensionSupplement:Double? public var reductionPensionSupplementOther:Double? public var reductionPensionSupplementSpouse:Double? required public init(){} } public class FortidspensionParameters : Codable { public var year:Int? public var stateSingle:Double? public var stateOther:Double? public var deductionOnIncomeOther:Double? public var maxContributionPensioner:Double? public var maxContributionNotPensioner:Double? public var deductionSingle:Double? public var deductionOther:Double? public var reductionIncome:Double? public var reductionIncomeSpouse:Double? public var minimumSingle:Double? public var minimumOther:Double? required public init(){} } public class DanishTaxParameters : Codable { public var labourMarketContributionRate:Double? public var bottomTaxRate:Double? public var healthContributionRate:Double? public var topTaxRate:Double? public var topTaxLimit:Double? public var taxCeilingPercentage:Double? public var taxCeilingPercentagePositiveNetCapitalIncome:Double? public var personalAllowanceYoung:Double? public var personalAllowance:Double? public var maximalCapitalPensionDeduction:Double? public var baseDeductionPositiveNetCapitalIncome:Double? public var shareTaxRateBelowLimit:Double? public var shareTaxRateAboveLimit:Double? public var limitShareTax:Double? public var bottomLimitEmployeeDeduction:Double? public var employeeDeductionRate:Double? public var maximumEmploymentAllowance:Double? public var propertyValueTaxPercentageBelowLimitEVL:Double? public var propertyValueTaxPercentageAboveLimitEVL:Double? public var limitPropertyValueTax:Double? public var deductionOfPropertyValueTax6:Double? public var deductionOfPropertyValueTax7:Double? public var maximumImpactUnderEVL:Double? public var negativeNetCapitalIncome:Double? public var bottomDeductionEqualizationTax:Double? public var equalizationTax:Double? public var transferableBottomDeductionEqualizationTax:Double? public var bottomLineJobDeduction:Double? public var jobDeductionRate:Double? public var maximumJobDeduction:Double? public var countyTaxLookup:[DanishCountyTaxParameters] = [] required public init(){} } public class DanishAdvisoryParameters : Codable { public var normalRetirementAge:Int? public var planningHorizon:Int? public var retirementGreenThresholdPct:Double? public var retirementAmberThresholdPct:Double? public var incapacityGreenThresholdPct:Double? public var incapacityAmberThresholdPct:Double? public var criticalIllnessGreenThresholdPct:Double? public var criticalIllnessAmberThresholdPct:Double? public var deathSingleGreenThresholdPct:Double? public var deathSingleAmberThresholdPct:Double? public var deathMarriedGreenThresholdPct:Double? public var deathMarriedAmberThresholdPct:Double? required public init(){} } public class DanishGeneralPensionParameters : Codable { public var instalmentPensionContributionCeiling:Double? public var retirementSavingContributionCeilingLessThan5:Double? public var retirementSavingContributionCeilingMoreThan5:Double? required public init(){} } public class CalculatorConfiguration : Codable { required public init(){} } public class DkPensionsInfoSaving : Codable { public var number:Int? public var carrier:String? public var referenceNumber:String? public var annualContribution:Int? public var includeInProjection:Bool? public var statementDate:Date? public var savings:Int? public var projections:[DkPensionsInfoProjection] = [] required public init(){} } public class DkPensionsInfoProjection : Codable { public var id:Int? public var savingsNumber:Int? public var retirementAge:Int? public var taxCode:DkTaxationCode? public var includeInProjection:Bool? public var fromAge:Int? public var toAge:Int? public var amount:Int? required public init(){} } public class DkPensionsInfoRisk : Codable { public var number:Int? public var carrier:String? public var risk:PensionsInfoBenefitType? public var paymentType:PensionsInfoPaymentType? public var beneficiary:PensionsInfoBeneficiaryType? public var taxCode:DkTaxationCode? public var amount:Int? required public init(){} } public class DeSocialSecurityParameters : Codable { public var retirementInsuranceCeiling:Double? public var healthInsuranceCeiling:Double? public var currentPensionLevel:Double? public var referenceIncome:Double? public var ddrValues:FormerDdrValues? public var employerRetirementPct:Double? public var employerUnemployementPct:Double? public var employerHealthInsuranceBasePct:Double? public var employerHealthInsuranceAdditionalPct:Double? public var employerNursingCarePct:Double? public var employeeRetirementPct:Double? public var employeeUnemployementPct:Double? public var employeeHealthInsuranceBasePct:Double? public var employeeHealthInsuranceAdditionalPct:Double? public var employeeNursingCarePct:Double? public var employeeChildlessNursingCareAdditionalPct:Double? required public init(){} } public class DisabilityCover : Codable { public var basicDisabilityCover:Cover? public var basicSalaryScale:Bool? public var paragraph17:Bool? public var professionDisability:Bool? public var minimumDisabilityPeriodMonths:Int? public var jobCapacityAssessmentBenefit:Bool? required public init(){} } public class Cover : Codable { public var carrier:CarrierEntity? public var payOut:String? public var unit:String? public var expiryAge:String? public var defaultTaxCode:String? public var optionalTaxCode:String? public var scalingDown:Bool? public var hasBasic:Bool? public var hasExtra:Bool? public var basicBenefit:Double? public var basicMinimumAmount:Double? public var extraBenefit:Double? required public init(){} } public class DeathCover : Codable { public var cover:Cover? public var depositGuarantee:String? public var depositGuarenteeOptional:Bool? required public init(){} } public enum CoverageTypes : String, Codable { case None case Optional case Mandatory } public enum RetirementBenefitAmountDisplayOptionType : String, Codable { case Accumulated case Guaranteed case Projected } public enum AuthenticationMethodType : String, Codable { case NemId case SSO case Common case Single } public class CalculatorColorScheme : Codable { public var primaryColor1:String? public var primaryColor2:String? public var decorativeColor1:String? public var decorativeColor2:String? public var decorativeColor3:String? public var decorativeColor4:String? public var decorativeColor5:String? public var fontColor1:String? public var fontColor2:String? public var tableHeaderFontColor:String? public var tableEmployerMatchFontColor:String? public var chartColors:[String] = [] public var reportColors:CalculatorReportColors? required public init(){} } public class CalculatorDkAnnuityPrice : Codable { public var carrierName:String? public var riskProfile:String? public var price:Double? required public init(){} } public class CalculatorFrConfiguration : Codable { public var planConfigurations:[CalculatorFrPlanConfiguration] = [] public var contributionRules:[CalculatorFrContributionRule] = [] required public init(){} } public class RPCLevelInfo : Codable { public var level1:Double? public var level2:Double? public var level3:Double? required public init(){} } public class CalculatorPtAnnuityFactorLP : Codable { public var age:Int? public var isReversionary:Bool? public var factor:Double? required public init(){} } public class CalculatorPtAnnuityFactorPD : Codable { public var term:Int? public var investmentCode:String? public var factor:Double? required public init(){} } public class CalculatorSalaryGrowthIndexMapping : Codable { public var name:String? public var indexType:String? required public init(){} } public class FrCompanyPlan : Codable { public var accountBalanceDate:Date? public var assetAllocationDate:Date? public var plans:[FrPlanInformation] = [] public var hasDuplicate:Bool? required public init(){} } public class PlanTypeMap : Codable { public var pee:FrCompanyPlan? public var pero:FrCompanyPlan? public var percol:FrCompanyPlan? public var perin:FrCompanyPlan? public var noMatchingCategory:FrCompanyPlan? public var incorrectCategoryMapping:FrCompanyPlan? public var excessPlanMapping:FrCompanyPlan? required public init(){} } public class FrSocialSecurityParameters : Codable { public var socialSecurityContributionCeiling:Double? required public init(){} } public class BeRetirementPlan : Codable { public var retirementPlans:[RetirementPlan] = [] public var lumpSumTotalDeathCover:Double? public var lumpSumTotalNoDeathCover:Double? public var annuityTotalDeathCover:Double? public var annuityTotalNoDeathCover:Double? public var totalAccruedReserves:Double? public var totalLegalMinimum:Double? public var totalVestedReserves:Double? required public init(){} } public class Contribution : Codable { public var employerFundDate:Date? public var contributions:Double? public var `return`:Double? public var accruedValue:Double? public var legalMinimum:Double? public var vestedReserves:Double? public var currency:String? required public init(){} } public class ProductQuestion : Codable { public var question:Question? public var options:[Option] = [] required public init(){} } public class RiskQuestion : Codable { public var questionNumber:Int? public var hasQuestionReference:Bool? public var questionOptions:[QuestionOption] = [] required public init(){} } public class RiskRecommendation : Codable { public var startValue:Int? public var endValue:Int? public var riskName:String? public var riskId:String? required public init(){} } public class ProductData : Codable { public var product:String? public var formula:String? public var carrier:String? public var productTypeId:Int? public var score:Double? required public init(){} } public class PieGraph : Codable { public var questionnaireAnswer:[QuestionnaireAnswer] = [] required public init(){} } public class ProductRiskMatrix : Codable { public var carrier:String? public var productRiskMatrixName:String? public var a:String? public var b:String? public var c:String? public var d:String? required public init(){} } public class ProductTypeData : Codable { public var productTypeId:Int? public var productTypeName:String? required public init(){} } public class HistoricalData : Codable { public var data:[[String:String]] = [] public var years:[String] = [] public var worstYear:String? required public init(){} } public class PtSocialSecurityParameters : Codable { public var normalRetirementAge:Int? public var normalRetirementAgeMonths:Int? required public init(){} } public enum AccountUsage : Int, Codable { case PRIV = 1 case ORGA = 2 } public class OpeningHours : Codable { public var opening:Time? public var lunchStart:Time? public var lunchEnd:Time? public var closing:Time? required public init(){} } public enum DkTaxationCode : Int, Codable { case Free = 51 case FullTax = 52 case FullDuty = 53 case NoInfo = 54 } public enum PensionsInfoBenefitType : Int, Codable { case Death = 2 case LossOfWorkAbility = 3 case CriticalIllness = 4 case Health = 5 } public enum PensionsInfoPaymentType : Int, Codable { case Lumpsum = 1 case FixedTermAnnuity = 2 case Annuity = 3 } public enum PensionsInfoBeneficiaryType : Int, Codable { case AccountOwner = 1 case NextAkin = 3 case Children = 8 case Estate = 9 case NamedBeneficiary = 15 case Spouse = 18 } public class FormerDdrValues : Codable { public var retirementInsuranceCeiling:Double? public var healthInsuranceCeiling:Double? public var currentPensionLevel:Double? public var referenceIncome:Double? required public init(){} } public class CalculatorReportColors : Codable { public var tableColors:CalculatorReportTableColors? public var chart1Colors:[String] = [] public var chart2Colors:[String] = [] public var chart3Colors:[String] = [] required public init(){} } public class CalculatorFrPlanConfiguration : Codable { public var type:CalculatorFrPlanType? public var name:String? public var contributionFee:Double? public var aumFeeUnitLinked:Double? public var aumFeeInsurerAsset:Double? public var planLevelContributionCaps:[CalculatorFrContributionCap] = [] public var fundLevelContributionCaps:[String:[CalculatorFrContributionCap]] = [:] public var contributionRuleMapping:[String:[Int]] = [:] required public init(){} } public class CalculatorFrContributionRule : Codable { public var id:Int? public var name:String? public var contributionType:CalculatorFrContributionType? public var bracketType:CalculatorFrContributionBracketType? public var brackets:[CalculatorFrContributionBracket] = [] public var numberOfBrackets:Int? required public init(){} } public class FrPlanInformation : Codable { public var id:Int? public var planName:String? public var providerName:String? public var accountBalance:FrAccountBalance? public var assetAllocation:[Investment] = [] public var accountDetails:Account? public var powensAccountState:String? public var powensAccountType:String? public var accountInvestments:[Investment] = [] public var voluntaryContribution:String? public var mandatoryContribution:FrMandatoryContribution? public var mandatoryContributionFormula:String? public var investmentOptions:FrInvestmentOptions? public var stockTransfer:String? public var beneficiary:FrBeneficiary? public var formOfPayment:String? public var taxation:String? public var fees:FrFees? public var planInformation:String? public var type:String? public var planCategory:String? public var enabled:Bool? public var url:String? public var category:PlanCategory? public var planType:PlanType? public var dateUpdated:Date? required public init(){} } public class Contribution : Codable { public var employmentStatusPlan:String? public var balanceCurrentEmployer:Double? public var employeeContribution:Double? public var employeeContributionDate:Date? public var employerContribution:Double? public var employerContributionDate:Date? public var voluntaryContribution:Double? public var voluntaryContributionDate:Date? public var totalContribution:Double? required public init(){} } public class RetirementPlan : Codable { public var name:String? public var type:String? public var annuity:LifeInsurance? public var lumpSum:LifeInsurance? public var accruedReserves:Double? public var legalMinimum:Double? public var vestedReserves:Double? public var currency:String? public var frequency:String? required public init(){} } public class Question : Codable { public var number:Int? public var Description:String? required public init(){} } public class Option : Codable { public var value:Int? public var Description:String? required public init(){} } public class QuestionOption : Codable { public var optionNumber:Int? public var optionGradeValues:[OptionGradeValue] = [] required public init(){} } public class Currency : Codable { public var id:String? public var name:String? public var symbol:String? public var crypto:Bool? public var precision:Int? public var `prefix`:Bool? //marketcap:Object ignored. Type could not be extended in Swift public var datetime:Date? required public init(){} } public class Time : Codable { public var hours:Int? public var minutes:Int? required public init(){} } public class CalculatorReportTableColors : Codable { public var headerTableFontColor:String? public var basicTableHeaderColor:String? public var basicTableFontColor:String? public var panel1Color:String? public var panel2Color:String? public var panel3Color:String? required public init(){} } public enum CalculatorFrPlanType : String, Codable { case PEE case PERCOL case PERO case PERIN } public class CalculatorFrContributionCap : Codable { public var type:CalculatorFrContributionCapType? public var contributionType:CalculatorFrContributionType? public var value:Double? required public init(){} } public enum CalculatorFrContributionType : String, Codable { case EmployeeMandatory case EmployerMandatory case EmployerMatch } public enum CalculatorFrContributionBracketType : String, Codable { case None case MultipleOfSSCC case FixedAmount } public class CalculatorFrContributionBracket : Codable { public var threshold:Double? public var rate:Double? required public init(){} } public class FrAccountBalance : Codable { public var amount:Double? public var currency:String? required public init(){} } public class Investment : Codable { public var id:Int? public var idAccount:Int? public var idSecurity:Int? public var idType:Int? public var label:String? public var code:String? public var codeType:String? public var stockSymbol:String? public var source:String? public var Description:String? public var quantity:Double? public var unitPrice:Double? public var unitValue:Double? public var valuation:Double? public var diff:Double? public var diffPercent:Double? public var prevDiff:Double? public var prevDiffPercent:Double? public var vDate:Date? public var prevVDate:Date? public var portfolioShare:Double? public var calculated:[String] = [] public var deleted:Date? public var lastUpdate:Date? public var originalCurrency:Currency? public var originalValuation:Double? public var originalUnitValue:Double? public var originalUnitPrice:Double? public var originalDiff:Double? public var details:InvestmentDetail? //stockMarket:Object ignored. Type could not be extended in Swift //type:Object ignored. Type could not be extended in Swift public var pockets:[Object] = [] required public init(){} } public class Account : Codable { public var id:Int? public var idConnection:Int? public var idUser:Int? public var idSource:Int? public var idParent:Int? public var number:String? public var originalName:String? public var balance:Double? public var coming:Double? public var display:Bool? public var lastUpdate:Date? public var deleted:Date? public var disabled:Date? public var iban:String? public var currency:Currency? public var type:String? public var idType:Int? public var bookmarked:Int? public var name:String? public var error:String? public var usage:AccountUsage? public var ownership:AccountOwnership? public var companyName:String? public var loan:Loan? public var webId:String? //openingDate:Object ignored. Type could not be extended in Swift public var recipients:[Object] = [] //bic:Object ignored. Type could not be extended in Swift public var comingBalance:Double? public var formattedBalance:String? public var calculated:[String] = [] public var valuation:Double? public var diff:Double? public var diffPercent:Double? public var prevDiff:Double? public var prevDiffPercent:Double? public var information:Information? public var investments:[Investment] = [] public var transfers:[Object] = [] required public init(){} } public class Investment : Codable { public var id:Int? public var idAccount:Int? public var idSecurity:Int? public var idType:Int? public var label:String? public var code:String? public var codeType:String? public var stockSymbol:String? public var source:String? public var Description:String? public var quantity:Double? public var unitPrice:Double? public var unitValue:Double? public var valuation:Double? public var diff:Double? public var diffPercent:Double? public var prevDiff:Double? public var prevDiffPercent:Double? public var vDate:Date? public var prevVDate:Date? public var portfolioShare:Double? public var calculated:[String] = [] public var deleted:Date? public var lastUpdate:Date? public var originalCurrency:Currency? public var originalValuation:Double? public var originalUnitValue:Double? public var originalUnitPrice:Double? public var originalDiff:Double? public var details:InvestmentDetail? //stockMarket:Object ignored. Type could not be extended in Swift //type:Object ignored. Type could not be extended in Swift public var pockets:[Object] = [] required public init(){} } public class FrMandatoryContribution : Codable { public var employee:Int? public var employer:Int? required public init(){} } public class FrInvestmentOptions : Codable { public var options:[FrOption] = [] required public init(){} } public class FrBeneficiary : Codable { public var firstName:String? public var surName:String? required public init(){} } public class FrFees : Codable { public var contributions:Double? public var asset1:Double? public var asset2:Double? required public init(){} } public enum PlanCategory : String, Codable { case Others case Current case Previous case Individual } public enum PlanType : String, Codable { case OTHERS case PEE case PERO case PERCOL case PERIN } public class OptionGradeValue : Codable { public var questionOptionReference:String? public var gradeValue:Int? required public init(){} } public enum CalculatorFrContributionCapType : String, Codable { case None case Amount case MatchPercent case PercentOfSSCC } public class Currency : Codable { public var id:String? public var name:String? public var symbol:String? public var crypto:Bool? public var precision:Int? public var `prefix`:Bool? //marketcap:Object ignored. Type could not be extended in Swift public var datetime:Date? required public init(){} } public enum AccountOwnership : Int, Codable { case Owner = 1 case CoOwner = 2 case Attorney = 3 } public class Loan : Codable { public var totalAmount:Double? public var availableAmount:Double? public var usedAmount:Double? public var subscriptionDate:Date? public var maturityDate:Date? public var nextPaymentAmount:Double? public var nextPaymentDate:Date? public var rate:Double? public var nbPaymentsLeft:Int? public var nbPaymentsDone:Int? public var nbPaymentsTotal:Int? public var lastPaymentAmount:Double? public var lastPaymentDate:Date? public var accountLabel:String? public var insuranceLabel:String? public var insuranceAmount:Double? public var insuranceRate:Double? public var duration:Int? public var type:String? required public init(){} } public class Information : Codable { public var version:String? public var providerType:String? required public init(){} } public class FrOption : Codable { public var order:Int? public var code:String? public var name:String? public var url:String? required public init(){} } public class ClientCountryConfig : DatedEntity { public var clientCode:String? public var clientName:String? public var countryCode:String? public var source:DataSourceResult? public var ageRMin:Int? public var ageRMax:Int? public var primarySalary:String? public var annuityConfig:AnnuityConfig? public var assets:[AssetConfig] = [] public var contTables:[ContributionTableSpec] = [] public var investments:[InvestmentProduct] = [] public var content:[String:[Content]] = [:] public var environments:[String:String] = [:] public var customNumericConstraints:[String:Constraint] = [:] public var assetReturnRates:[String:ReturnRates] = [:] public var investmentPropertyRates:Double? public var getAssetClassFundDictionary:[String:Bool] = [:] public var getTermBasedFundDictionary:[String:Bool] = [:] public var getAllocationsDictionary:[String:[Int:[String:Double]]] = [:] public var assetNameMap:[String:String] = [:] public var assetContNameMap:[String:[String:String]] = [:] public var cacheKey:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case clientCode case clientName case countryCode case source case ageRMin case ageRMax case primarySalary case annuityConfig case assets case contTables case investments case content case environments case customNumericConstraints case assetReturnRates case investmentPropertyRates case getAssetClassFundDictionary case getTermBasedFundDictionary case getAllocationsDictionary case assetNameMap case assetContNameMap case cacheKey } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) clientCode = try container.decodeIfPresent(String.self, forKey: .clientCode) clientName = try container.decodeIfPresent(String.self, forKey: .clientName) countryCode = try container.decodeIfPresent(String.self, forKey: .countryCode) source = try container.decodeIfPresent(DataSourceResult.self, forKey: .source) ageRMin = try container.decodeIfPresent(Int.self, forKey: .ageRMin) ageRMax = try container.decodeIfPresent(Int.self, forKey: .ageRMax) primarySalary = try container.decodeIfPresent(String.self, forKey: .primarySalary) annuityConfig = try container.decodeIfPresent(AnnuityConfig.self, forKey: .annuityConfig) assets = try container.decodeIfPresent([AssetConfig].self, forKey: .assets) ?? [] contTables = try container.decodeIfPresent([ContributionTableSpec].self, forKey: .contTables) ?? [] investments = try container.decodeIfPresent([InvestmentProduct].self, forKey: .investments) ?? [] content = try container.decodeIfPresent([String:[Content]].self, forKey: .content) ?? [:] environments = try container.decodeIfPresent([String:String].self, forKey: .environments) ?? [:] customNumericConstraints = try container.decodeIfPresent([String:Constraint].self, forKey: .customNumericConstraints) ?? [:] assetReturnRates = try container.decodeIfPresent([String:ReturnRates].self, forKey: .assetReturnRates) ?? [:] investmentPropertyRates = try container.decodeIfPresent(Double.self, forKey: .investmentPropertyRates) getAssetClassFundDictionary = try container.decodeIfPresent([String:Bool].self, forKey: .getAssetClassFundDictionary) ?? [:] getTermBasedFundDictionary = try container.decodeIfPresent([String:Bool].self, forKey: .getTermBasedFundDictionary) ?? [:] getAllocationsDictionary = try container.decodeIfPresent([String:[Int:[String:Double]]].self, forKey: .getAllocationsDictionary) ?? [:] assetNameMap = try container.decodeIfPresent([String:String].self, forKey: .assetNameMap) ?? [:] assetContNameMap = try container.decodeIfPresent([String:[String:String]].self, forKey: .assetContNameMap) ?? [:] cacheKey = try container.decodeIfPresent(String.self, forKey: .cacheKey) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if clientCode != nil { try container.encode(clientCode, forKey: .clientCode) } if clientName != nil { try container.encode(clientName, forKey: .clientName) } if countryCode != nil { try container.encode(countryCode, forKey: .countryCode) } if source != nil { try container.encode(source, forKey: .source) } if ageRMin != nil { try container.encode(ageRMin, forKey: .ageRMin) } if ageRMax != nil { try container.encode(ageRMax, forKey: .ageRMax) } if primarySalary != nil { try container.encode(primarySalary, forKey: .primarySalary) } if annuityConfig != nil { try container.encode(annuityConfig, forKey: .annuityConfig) } if assets.count > 0 { try container.encode(assets, forKey: .assets) } if contTables.count > 0 { try container.encode(contTables, forKey: .contTables) } if investments.count > 0 { try container.encode(investments, forKey: .investments) } if content.count > 0 { try container.encode(content, forKey: .content) } if environments.count > 0 { try container.encode(environments, forKey: .environments) } if customNumericConstraints.count > 0 { try container.encode(customNumericConstraints, forKey: .customNumericConstraints) } if assetReturnRates.count > 0 { try container.encode(assetReturnRates, forKey: .assetReturnRates) } if investmentPropertyRates != nil { try container.encode(investmentPropertyRates, forKey: .investmentPropertyRates) } if getAssetClassFundDictionary.count > 0 { try container.encode(getAssetClassFundDictionary, forKey: .getAssetClassFundDictionary) } if getTermBasedFundDictionary.count > 0 { try container.encode(getTermBasedFundDictionary, forKey: .getTermBasedFundDictionary) } if getAllocationsDictionary.count > 0 { try container.encode(getAllocationsDictionary, forKey: .getAllocationsDictionary) } if assetNameMap.count > 0 { try container.encode(assetNameMap, forKey: .assetNameMap) } if assetContNameMap.count > 0 { try container.encode(assetContNameMap, forKey: .assetContNameMap) } if cacheKey != nil { try container.encode(cacheKey, forKey: .cacheKey) } } }