/* Options: Date: 2025-07-18 00:14:46 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ProjectionReq.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* @Route(Path="/members", Verbs="PUT") open class Member : Member(), IReturn { var id:String? = null var email:String? = null var employeeGuidString:String? = null var ignoreGender:Boolean? = null companion object { private val responseType = Member::class.java } override fun getResponseType(): Any? = Member.responseType } @Route("/projection") open class ProjectionReq : IReturn { var context:SiteContext? = null var member:Member? = null companion object { private val responseType = AlbaProjection::class.java } override fun getResponseType(): Any? = ProjectionReq.responseType } open class AlbaProjection { var stochastic:StochasticProjectionDto? = null var deterministic:MemberProjectionDto? = null var member:Member? = null var diagnostics:AlbaDiagnostics? = null var parameterBag:HashMap = HashMap() } enum class Gender { Female, Male, Other, } open class Member : Entity(), IProjectable { var userId:String? = null var systemId:String? = null var schemeCode:String? = null var sessionId:String? = null var clientId:String? = null var clientCode:String? = null var isDefault:Boolean? = null var groupId:String? = null var groupNameUpper:String? = null var appName:String? = null var appNameUpper:String? = null var key:String? = null var keyUpper:String? = null var country:String? = null var locale:String? = null var ccy:String? = null var cdy:String? = null var status:String? = null var statusCode:String? = null var category:String? = null var scheme:String? = null var primarySalary:String? = null var email:String? = null var employer:Employer? = null var roles:Roles? = null var asAt:Date? = null var calcDate:Date? = null var nextEOFY:Date? = null var periodToNextEOFY:Double? = null var year:Int? = null var hasPartner:Boolean? = null var includePartner:Boolean? = null var includePartnerInCalc:Boolean? = null var homeOwner:Boolean? = null var targetAge:Int? = null var targetTime:Int? = null var targetIncomeR:Double? = null var targetIncomeRFreq:Double? = null var targetIncomeRAnnual:Double? = null var targetP:Double? = null var includeSS:Boolean? = null var firstName:String? = null var lastName:String? = null var gender:Gender? = null var dob:Date? = null var salary:Double? = null var people:ArrayList = ArrayList() var assets:ArrayList = ArrayList() var includeAnnuities:Boolean? = null var annuities:ArrayList = ArrayList() var spending:Spending? = null var investmentProperties:ArrayList = ArrayList() var incomeVectors:HashMap> = HashMap>() var config:AssumptionsConfig? = null var indexation:ArrayList = ArrayList() var annuityDisc:ArrayList = ArrayList() var indexationRates:HashMap> = HashMap>() var annuityDiscRates:HashMap> = HashMap>() var balance:Double? = null var planSomeValue:String? = null var flag1:Boolean? = null var flag2:Boolean? = null var isFriendly:Boolean? = null var financingOption:String? = null var totalYears:Int? = null var totalLoopYears:Int? = null var age:Double? = null var ageR:Double? = null var intAge:Int? = null var indexType:String? = null var indexTypePre:String? = null var indexTypePost:String? = null var deflationType:String? = null var custom:HashMap = HashMap() var countryCalcConfig:CountryCalculatorConfiguration? = null var summary:MemberSummary? = null var lastModified:Date? = null var isReturningUser:Boolean? = null var clientCountryConfigCacheKey:String? = null var personalAssets:Double? = null var resultsSummary:Summary? = null var totalContribution:TotalContribution? = null } open class Member : IId, ITimestamp { var id:Long? = null var employeeGuid:UUID? = null var employeeId:String? = null var clientId:Int? = null var configurationId:Int? = null var lastName:String? = null var firstName:String? = null var companyName:String? = null var employeeGroup:String? = null var title:String? = null var birthdate:Date? = null var emailAddress:String? = null var maritalStatus:MaritalStatuses? = null var partnerBirthDate:Date? = null var gender:IsoGenders? = null var militaryMonthCount:Short? = null var annualSalary:BigDecimal? = null var monthlySalary:BigDecimal? = null var salaryFrequency:Int? = null var deFederalState:GermanFederalStates? = null var deTaxClass:GermanTaxClasses? = null var deChurchTax:Boolean? = null var dePrivNursingInsurance:BigDecimal? = null var pensionFinancingOption:String? = null var hasPrivHealthInsurance:Boolean? = null var privHealthInsurance:BigDecimal? = null var childrenCount:Short? = null var child1BirthDate:Date? = null var child2BirthDate:Date? = null var child3BirthDate:Date? = null var child4BirthDate:Date? = null var child5BirthDate:Date? = null var child6BirthDate:Date? = null var child7BirthDate:Date? = null var child8BirthDate:Date? = null var child9BirthDate:Date? = null var child10BirthDate:Date? = null var authId:String? = null var authRegistrationDate:Date? = null var activationCode:String? = null var activationExpiringDate:Date? = null var planInfoDate:Date? = null var planInfoBag:String? = null var inactive:Boolean? = null var dateCreated:Date? = null var removeRequestDate:Date? = null var timestamp:ByteArray? = null var client:Client? = null var contributionDataDate:Date? = null var beneficiaryFirstName:String? = null var beneficiaryLastName:String? = null var beneficiaryTitle:String? = null var beneficiaryDateOfBirth:Date? = null var addressLine1:String? = null var addressLine2:String? = null var addressLine3:String? = null var phoneNumber:String? = null var mobileNumber:String? = null var dateCommencedService:Date? = null var calculatorDataDate:Date? = null var calculatorDataBag:String? = null var periodStart:Date? = null var periodEnd:Date? = null var memberId:Long? = null var infoBag:String? = null var projectionInfoBag:String? = null var companyPlanInfo:String? = null var infoProviderReference:String? = null var dateOfHire:Date? = null var ssin:String? = null var isProxy:Boolean? = null var isAllowedToVote:Boolean? = null var userId:String? = null var participantStatus:String? = null var investmentStrategy:String? = null var isAllowedToUpdatePlan:Boolean? = null var pensionableSalary:BigDecimal? = null var dateOfBirthSpouse:Date? = null var dateOfBirthYoungestChild:Date? = null var dateHiredOfPlan:Date? = null var contractType:String? = null var investmentRiskProfile:String? = null var documents:ArrayList = ArrayList() var powensConnectionSyncs:ArrayList = ArrayList() var members:ArrayList = ArrayList() var groupMembers:ArrayList = ArrayList() var parent:Member? = null var pensionFundManager:String? = null var proxyAccesses:ArrayList = ArrayList() var beneficiaries:ArrayList = ArrayList() var currentBalances:ArrayList = ArrayList() var detailedBalances:ArrayList = ArrayList() var votingPollAnswers:ArrayList = ArrayList() var investmentAllocations:ArrayList = ArrayList() var memberContributions:ArrayList = ArrayList() var participantStatusFormAnswers:ArrayList = ArrayList() } open class Member { var memberId:Long? = null var employeeId:String? = null var employeeGuid:UUID? = null var email:String? = null var title:String? = null var firstName:String? = null var companyName:String? = null var employeeGroup:String? = null var lastName:String? = null var dateOfBirth:Date? = null var gender:IsoGenders? = null var maritalStatus:MaritalStatuses? = null var numberOfChildren:Int? = null var childrenCount:Int? = null var monthlySalary:BigDecimal? = null var annualSalary:BigDecimal? = null var dkPensionTerms:DkPensionTerms? = null var dkPrivateEmailAddress:String? = null var dkEmployerName:String? = null var dkContactConsent:Boolean? = null var dkPersonalMandate:Boolean? = null var deFederalState:GermanFederalStates? = null var deTaxClass:GermanTaxClasses? = null var deChurchTax:Boolean? = null var hasPrivHealthInsurance:Boolean? = null var privHealthInsurance:BigDecimal? = null var dePrivNursingInsurance:BigDecimal? = null var contributionDataDate:Date? = null var beneficiaryFirstName:String? = null var beneficiaryLastName:String? = null var beneficiaryTitle:String? = null var beneficiaryDateOfBirth:Date? = null var addressLine1:String? = null var addressLine2:String? = null var addressLine3:String? = null var phoneNumber:String? = null var mobileNumber:String? = null var dateCommencedService:Date? = null var partnerBirthDate:Date? = null var militaryMonthCount:Short? = null var child1BirthDate:Date? = null var child2BirthDate:Date? = null var child3BirthDate:Date? = null var child4BirthDate:Date? = null var child5BirthDate:Date? = null var child6BirthDate:Date? = null var child7BirthDate:Date? = null var child8BirthDate:Date? = null var child9BirthDate:Date? = null var child10BirthDate:Date? = null var infoBag:String? = null var projectionInfoBag:String? = null var clientId:Int? = null var companyPlanInfo:String? = null var pensionFundManager:String? = null var dateOfHire:Date? = null var powensConnections:ArrayList = ArrayList() var isPrivateClient:Boolean? = null var isProxy:Boolean? = null var beneficiaries:ArrayList = ArrayList() var currentBalances:ArrayList = ArrayList() var detailedBalances:ArrayList = ArrayList() var beneficiariesLatestSubmittedDate:Date? = null var userId:String? = null var participantStatus:String? = null var investmentStrategy:String? = null var isAllowedToUpdatePlan:Boolean? = null var pensionableSalary:BigDecimal? = null var dateOfBirthSpouse:Date? = null var dateOfBirthYoungestChild:Date? = null var dateHiredOfPlan:Date? = null var contractType:String? = null var isAllowedToVote:Boolean? = null var votingPollAnswer:VotingPollAnswer? = null } open class DataSourceResult { var d:DataSource? = null var t:Long? = null } open class StochasticProjectionDto { var member:Member? = null var userId:String? = null var key:String? = null var invOption:String? = null var invOptionR:String? = null var stochasticDataKey:String? = null var assumeSteadyIncome:Boolean? = null var solveTarget:SolveTarget? = null var targetAge:Int? = null var targetIncome:Double? = null var targetP:Double? = null var netIncome:Double? = null var bal:Double? = null var contributionsOutOfPocket:Double? = null var pTarget:Double? = null var countTarget:Double? = null var incomeR:Double? = null var avgIncomeRBreakdown:HashMap = HashMap() var avgLumpSumSpend:Double? = null var avgTaxableLumpSum:Double? = null var avgLumpSumTax:Double? = null var avgLumpSumNet:Double? = null var ageR:Int? = null var runOutAge:Int? = null var savings:Double? = null var balR:Double? = null var residualBal:Double? = null var balRFV:Double? = null var solverCount:Int? = null var solved:Boolean? = null var solvePath:ArrayList = ArrayList() var incomeRBreakdown:HashMap = HashMap() var firstBalanceZeroAge:Int? = null var simulationResults:ArrayList = ArrayList() var balRs:ArrayList = ArrayList() var projections:HashMap> = HashMap>() var diagnostics:StochasticProjectionDiagnostics? = null var avgAnnuityPurchaseAmount:Double? = null var yearsInRetirement:Double? = null } open class MemberProjectionDto { var count:Int? = null var projection:ArrayList = ArrayList() var people:ArrayList = ArrayList() var assets:ArrayList = ArrayList() var annuities:ArrayList = ArrayList() var spending:ArrayList = ArrayList() var investmentProperties:ArrayList = ArrayList() var summary:SummaryProjectionDto? = null var incomeR:Double? = null var incomeRBreakdown:HashMap = HashMap() var balR:Double? = null var balRFV:Double? = null var balanceRunOutAge:Int? = null var incomeGapFlag:Boolean? = null var residualBalance:Boolean? = null var lumpSumRet:Double? = null var incomeVectors:HashMap> = HashMap>() var projections:HashMap> = HashMap>() var inheritance:Double? = null var inheritanceGoal:Double? = null var balanceRunOutTime:Int? = null var timeBothRetired:Int? = null var yearsInRetirement:Int? = null var annuityPurchaseAmount:Double? = null var costToYou:Double? = null var taxRelief:Double? = null var employerMatch:Double? = null var extraAmount:Double? = null var youPay:Double? = null var totalInvested:Double? = null var solvePath:ArrayList = ArrayList() var solverCount:Int? = null } open class AlbaDiagnostics { var setupDuration:Long? = null var stochDuration:Long? = null var detDuration:Long? = null var memberSaveDuration:Long? = null var webApiDuration:Long? = null var preProjectionPipeDuration:Long? = null var postProjectionPipeDuration:Long? = null var preProjectionStepsDuration:HashMap = HashMap() var postProjectionStepsDuration:HashMap = HashMap() } enum class PersonType { Primary, Partner, } enum class AssetType { FinAsset, AuSuper, Auabp, } enum class MinSpendRule { NoMinimum, FullValue, AuAbpMin, } enum class MaxSpendRule { NoMaximum, AuSuper, } enum class SocialSecurityTreatment { Exempt, Deemed, Actual, } enum class RatesSource { Db, Member, MemberRates, ClientRates, } enum class AnnuityPriceType { Calc, Table, } enum class AnnuityType { Deferred, Immediate, TheOtherType, } enum class AnnuityPurchaseType { Perc, Income, Amount, } enum class CallType { Sync, Async, } enum class SolveTarget { Na, RunOutAge, Income, AgeR, Contributions, } enum class ContributionType { Employer, Employee, EmployerMatching, } enum class DataSource { Db, Cache, Parameter, Na, } enum class ContributionType { Fixed, Time, Lookup, Match, } open class SolvePathEntry { var v:Double? = null var p:Double? = null var r:Double? = null } open class SimulationResultDto { var id:Int? = null var targetIncome:Double? = null var targetAge:Int? = null var netIncome:Double? = null var contributionsOutOfPocket:Double? = null var incomeR:Double? = null var incomeRBreakdown:HashMap = HashMap() var runOutAge:Int? = null var firstBalanceZeroAge:Int? = null var ageR:Double? = null var balR:Double? = null var inheritanceGoal:Double? = null var inheritance:Double? = null var residualBal:Double? = null var year1Pension:Double? = null var projection:MemberProjectionDto? = null } open class StochasticProjectionDiagnostics { var dataSources:HashMap = HashMap() var runTime:Date? = null var runDuration:Long? = null var projectionSvcDuration:Long? = null var remoteProjectionSvcDuration:Long? = null var webApiDuration:Long? = null var remoteStochProjCallType:CallType? = null var clientStochProjCallType:CallType? = null var simCount:Int? = null } open class MemberPointDto : ProjectionPointDto() { var period:Double? = null var bothAreRetired:Boolean? = null } open class PersonProjectionDto { var item:PersonDto? = null var count:Int? = null var projection:ArrayList = ArrayList() var otherIncomeProjections:ArrayList = ArrayList() var socialSecurityProjection:SocialSecurityProjectionDto? = null var dob:Date? = null } open class AssetProjectionDto { var item:AssetDto? = null var projection:ArrayList = ArrayList() var dob:Date? = null var assetIndex:Int? = null var feeProjections:ArrayList = ArrayList() var feeCapProjections:ArrayList = ArrayList() var totalContributionProjection:TotalContributionProjectionDto? = null } open class AnnuitiesProjectionDto { var item:AnnuityDto? = null var count:Int? = null var projection:ArrayList = ArrayList() } open class SpendingGoalProjectionDto { var item:SpendingGoalDto? = null var count:Int? = null var projection:ArrayList = ArrayList() } open class InvestmentPropertyProjectionDto { var item:InvestmentPropertyDto? = null var projection:ArrayList = ArrayList() } open class SummaryProjectionDto { var item:SummaryDto? = null var count:Int? = null var projection:ArrayList = ArrayList() } enum class OtherIncomeType { Pension, Investments, Income, } open class ProjectionPointDto { var t:Int? = null var globalPeriod:Double? = null var year:Int? = null var age:Double? = null var intAge:Int? = null var indexation:Double? = null var avgGrowthIndexation:Double? = null var priceInflation:Double? = null } open class PersonDto : ProjectableDto() { @SerializedName("type") var Type:PersonType? = null var index:Int? = null var firstName:String? = null var lastName:String? = null var gender:Gender? = null var isAgeInput:Boolean? = null var dob:Date? = null var ageAtLast30June:Int? = null var privateHealthInsurance:Boolean? = null var serviceDate:Date? = null var service:Double? = null var intService:Int? = null var ageR:Int? = null var ageRMonths:Int? = null var email:String? = null var salaries:HashMap = HashMap() var salaryChangeSeries:ArrayList? = null var hasOtherIncome:Boolean? = null var otherIncome:ArrayList = ArrayList() var socialSecurity:SocialSecurityDto? = null var taxableDeductions:Double? = null var nonTaxableDeductions:Double? = null var careerChanges:CareerBreaksDto? = null var custom:HashMap = HashMap() var salaryKey:String? = null var annualProjectibleSalary:Double? = null var projectionBreakdownCode:String? = null var salary:Double? = null var salaryFreq:Double? = null } open class PersonPointDto : ProjectionPointDto() { var isRetired:Boolean? = null var service:Double? = null var contPeriod:Double? = null var annualProjectibleSalary:Double? = null var salaryPV:Double? = null var salary:Double? = null var salaryMOY:Double? = null var preTaxDeductions:Double? = null var otherTaxableIncome:Double? = null var totalOtherTaxableIncome:Double? = null var taxableIncome:Double? = null var taxableIncomeWithConts:Double? = null var taxableIncomeNoConts:Double? = null var totalIncomeTax:Double? = null var incomeTaxWithConts:Double? = null var incomeTaxNoConts:Double? = null var afterTaxEarnings:Double? = null var afterTaxEarningsWithConts:Double? = null var afterTaxEarningsNoConts:Double? = null var postTaxDeductions:Double? = null var totalAfterTaxDrawdown:Double? = null var otherTaxFreeIncome:Double? = null var afterTaxDeductions:Double? = null var afterTaxDeductionsWithConts:Double? = null var afterTaxDeductionsNoConts:Double? = null var drawdowns:Double? = null var totalAfterTax:Double? = null var totalAfterTaxWithConts:Double? = null var totalAfterTaxNoConts:Double? = null var netIncome:Double? = null var taxRatio:Double? = null var pvFactorBOY:Double? = null } open class IncomeStreamProjectionDto { var item:IncomeStreamDto? = null var count:Int? = null var projection:ArrayList = ArrayList() } open class SocialSecurityProjectionDto { var item:SocialSecurityDto? = null var projection:ArrayList = ArrayList() } open class AssetDto : ProjectableDto() { @SerializedName("type") var Type:AssetType? = null var owner:PersonType? = null var code:String? = null var name:String? = null var ccy:String? = null var value:Double? = null var change:Double? = null var transferTo:Int? = null var transferAge:Int? = null var willSpend:Boolean? = null var minRule:MinSpendRule? = null var maxRule:MaxSpendRule? = null var ssTreatment:SocialSecurityTreatment? = null var spendOnAnnuity:Boolean? = null var contTaxRate:Double? = null var totalConts:Double? = null var totalContsFreq:Double? = null var totalLumpSumConts:Double? = null var rebalance:Boolean? = null var retLumpSum:Boolean? = null var contributions:ArrayList = ArrayList() var fees:ArrayList = ArrayList() var feeCapArrangements:ArrayList = ArrayList() var alloc:ArrayList = ArrayList() var ratesSource:RatesSource? = null var custom:HashMap = HashMap() } open class AssetPointDto : ProjectionPointDto() { var period:Double? = null var assetSwitchFlag:Boolean? = null var contReturn:Double? = null var balCashFlowReturn:Double? = null var balBOY:Double? = null var balBOYPV:Double? = null var balBOYPostTransfers:Double? = null var balBOYPostTransfersPV:Double? = null var balBOYPostTransfersSimple:Double? = null var balBOYPostTransfersWOLS:Double? = null var transfersOut:Double? = null var transfersOutWithLS:Double? = null var lumpSumAtRet:Double? = null var drawdownEligibility:Double? = null var minDrawdown:Double? = null var intermediateMinDrawdown:Double? = null var drawdownReturns:Double? = null var contReturnPow:Double? = null var balCashFlowReturnPow:Double? = null var balPreDrawdown:Double? = null var proportionOfAsset:Double? = null var additionalDrawdown:Double? = null var totalIntermediateDrawdown:Double? = null var totalDrawdowns:Double? = null var totalDrawdownsPV:Double? = null var totalTaxableFees:Double? = null var totalNonTaxableFees:Double? = null var returnsForFees:Double? = null var balanceForFees:Double? = null var taxDeductions:Double? = null var returns:Double? = null var balEOY:Double? = null var assetBalPurchase:Double? = null var balBOYPostAnnuityPurchase:Double? = null var balBOYPostAnnuityPurchasePerson:Double? = null var ssBalBOYPostAnnuityPurchase:Double? = null var totalCashflowBOY:Double? = null var totalCashflowMOY:Double? = null var totalContributionsMOY:Double? = null var remainingDrawdownRequired:Double? = null var totalDrawdownRequired:Double? = null } open class FeeProjectionDto { var item:FeeDto? = null var projection:ArrayList = ArrayList() } open class FeeCapProjectionDto { var item:FeeCapArrangementDto? = null var count:Int? = null var projection:ArrayList = ArrayList() } open class TotalContributionProjectionDto { var item:TotalContributionDto? = null var projection:ArrayList = ArrayList() var contributionProjections:ArrayList = ArrayList() } open class AnnuityDto : ProjectableDto() { var priceType:AnnuityPriceType? = null var price:Double? = null var owner:PersonType? = null var gender:Gender? = null var ownerAge:Int? = null var spouseAge:Int? = null @SerializedName("type") var Type:AnnuityType? = null var purchaseType:AnnuityPurchaseType? = null var purchaseAmount:Double? = null var percBalanceSpent:Double? = null var amountSpent:Double? = null var incomePurchased:Double? = null var purchaseAge:Int? = null var deferralPeriod:Int? = null var indexationName:String? = null var drStochastic:String? = null var impliedInflationStochasticSeries:String? = null var reversion:Double? = null var guarantee:Double? = null var timing:Double? = null var scaleQx:Double? = null var scaleImpr:Double? = null var ageRating:Int? = null var spouseAgeRating:Int? = null var custom:HashMap = HashMap() var tableName:String? = null var imprFactorTableName:String? = null var spouseAgeAtPurchase:Int? = null var expense:Double? = null var cacheKey:String? = null var targetTpx:Double? = null var paymentTerm:Double? = null } open class AnnuitiesPointDto : ProjectionPointDto() { var purchaseYear:Int? = null var discountRate:Double? = null var stochAnnuityRateIndex:Int? = null var inflation:Double? = null var purchase:Boolean? = null var pensionPaymentPeriod:Boolean? = null var assetBalPurchaseTotal:Double? = null var annuityIndexation:Double? = null var purchasePrice:Double? = null var purchaseAmount:Double? = null var purchaseAmountPV:Double? = null var annuityIncome:Double? = null var annuityIncomePeriod:Double? = null var annuityIncomePV:Double? = null var annuityAssessableAsset:Double? = null var annuityAssessableIncome:Double? = null } open class SpendingGoalDto : ProjectableDto() { var name:String? = null var amount:Double? = null var freq:Double? = null var effectiveFreq:Double? = null var excludeFromProjection:Boolean? = null var fromAge:Int? = null var toAge:Int? = null var selectedPersonalised:String? = null var tag:String? = null var custom:HashMap = HashMap() } open class SpendingGoalPointDto : ProjectionPointDto() { var freq:Double? = null var yearsSinceFromAge:Double? = null var period:Double? = null var amount:Double? = null var amountPV:Double? = null } open class InvestmentPropertyDto : ProjectableDto() { var owner:PersonType? = null var value:Double? = null var rentYield:Double? = null var expense:Double? = null var downsize:Double? = null var downsizeAge:Double? = null var downsizeToAsset:Int? = null var rates:Double? = null } open class InvestmentPropertyPointDto : ProjectionPointDto() { var capitalGrowthRate:Double? = null var valueBeforeDownsize:Double? = null var downsize:Double? = null var valueAfterDownsize:Double? = null var rent:Double? = null var expenses:Double? = null var valueBeforeDownsizePV:Double? = null var income:Double? = null var netRent:Double? = null } open class SummaryDto : ProjectableDto() { } open class SummaryPointDto : ProjectionPointDto() { var period:Double? = null var deflatorBOY:Double? = null var deflatorMOY:Double? = null var incomeNeeds:Double? = null var incomeYou:Double? = null var incomePartner:Double? = null var socialSecurity:Double? = null var incomeAssets:Double? = null var totalIncome:Double? = null var gap:Double? = null var balanceAssets:Double? = null var balanceProperty:Double? = null var incomeAnnuities:Double? = null var incomeProperty:Double? = null var lumpSumSpend:Double? = null var retPeriod:Double? = null } open class SalaryDto { @SerializedName("type") var Type:SalaryType? = null var ccy:String? = null var amount:Double? = null var freq:Double? = null var annualAmount:Double? = null var indexType:String? = null var salaryChanges:ArrayList = ArrayList() } open class IncomeStreamDto { var name:String? = null var indexType:String? = null @SerializedName("type") var Type:OtherIncomeType? = null var amount:Double? = null var fromAge:Int? = null var toAge:Int? = null var isTaxable:Boolean? = null var custom:HashMap = HashMap() } open class SocialSecurityDto : ProjectableDto() { var owner:PersonType? = null var includeSS:Boolean? = null var isMarried:Boolean? = null var homeOwner:Boolean? = null var personalAssets:Double? = null var numPeople:Int? = null var dob:Date? = null } open class CareerBreaksDto { var willTake:Boolean? = null var breaks:ArrayList = ArrayList() } open class ProjectableDto { var asAt:Date? = null var age:Double? = null var intAge:Int? = null var year:Int? = null var periodToNextEOFY:Double? = null var indexType:String? = null } open class IncomeStreamPointDto : ProjectionPointDto() { var incomePV:Double? = null var income:Double? = null var taxableAmount:Double? = null var nonTaxableAmount:Double? = null var taxableAmountPV:Double? = null var nonTaxableAmountPV:Double? = null var netIncome:Double? = null } open class SocialSecurityPointDto : ProjectionPointDto() { var personalAssets:Double? = null var assessableAssets:Double? = null var fullPensionPP:Double? = null var assetThreshold:Double? = null var minPension:Double? = null var assetMeansTest:Double? = null var deemedIncomeThreshold:Double? = null var deemedReturn:Double? = null var actualIncome:Double? = null var totalIncome:Double? = null var incomeThreshold:Double? = null var incomeTest:Double? = null var totalSocialSecurity:Double? = null var income:Double? = null var fullPensionIndexation:Double? = null var minPensionIndexation:Double? = null var assetThresholdIndexation:Double? = null var incomeThresholdIndexation:Double? = null var deemedIncomeThresholdIndexation:Double? = null var personalAssetsIndexation:Double? = null } open class ContributionDto : ProjectableDto() { var code:String? = null var index:Int? = null var name:String? = null var ccy:String? = null var contTable:String? = null var lookupKey:String? = null var isEmployeeCont:Boolean? = null var employerFlag:Boolean? = null @SerializedName("type") var Type:ContributionType? = null var sourceRate:String? = null var isTaxable:Boolean? = null var amount:Double? = null var coreAmount:Double? = null var freq:Double? = null var rate:Double? = null var coreRate:Double? = null var fromAge:Int? = null var toAge:Int? = null var salary:Double? = null var annualAmount:Double? = null var annualCoreAmount:Double? = null var isAlwaysOneOff:Boolean? = null var isOneOff:Boolean? = null var custom:HashMap = HashMap() var memberRateLookup:HashMap = HashMap() var isFromSalary:Boolean? = null } open class FeeDto : ProjectableDto() { var name:String? = null var ccy:String? = null var amount:Double? = null var freq:Double? = null var annualAmount:Double? = null var rate:Double? = null var isTaxable:Boolean? = null var fromAge:Int? = null var toAge:Int? = null var custom:HashMap = HashMap() } open class FeeCapArrangementDto : ProjectableDto() { var name:String? = null var amount:Double? = null var indexationRateSeries:Int? = null var rate:Double? = null var feesIncluded:ArrayList = ArrayList() var fromTime:Int? = null var toTime:Int? = null var custom:HashMap = HashMap() } open class ProductAllocationDto { var name:String? = null var fromAge:Int? = null var optAlloc:ProductAllocationMappingDto? = null var totalAlloc:Double? = null } open class FeePointDto : ProjectionPointDto() { var yearsSinceFromAge:Double? = null var period:Double? = null var amount:Double? = null var rateAmount:Double? = null var totalTaxDeductible:Double? = null var totalNonTaxDeductible:Double? = null } open class FeeCapPointDto : ProjectionPointDto() { var period:Double? = null var totalFeeCap:Double? = null var taxDeductibleFees:Double? = null var nonTaxDeductibleFees:Double? = null var offsetTaxDeductible:Double? = null var offsetNonTaxDeductible:Double? = null } open class TotalContributionDto : ProjectableDto() { } open class TotalContributionPointDto : ProjectionPointDto() { var contIndexation:Double? = null var totalMemberNonTaxableSalaryCont:Double? = null var totalMemberNonTaxableNonSalaryCont:Double? = null var threshold:Double? = null var coContAmt:Double? = null var contCapsTotalEmployer:Double? = null var transferBalanceCap:Double? = null var contCapsTotalMemberTaxable:Double? = null var contCapsTotalMemberNonTaxableSalary:Double? = null var contCapsTotalMemberNonTaxableNonSalary:Double? = null var cappedContTotalEmployer:Double? = null var cappedContTotalMemberTaxable:Double? = null var cappedContTotalMemberNonTaxableSalaryCont:Double? = null var cappedContTotalMemberNonTaxableNonSalaryCont:Double? = null var auLowIncomeSuperTaxOffset:Double? = null var contTax:Double? = null } open class ContributionProjectionDto { var item:ContributionDto? = null var projection:ArrayList = ArrayList() } enum class SalaryType { Gross, Net, } open class SalaryChangeDto { var fromAge:Int? = null var amount:Double? = null } open class CareerBreakDto { var fromAge:Int? = null var toAge:Int? = null var workingRate:Double? = null } open class ProductAllocationMappingDto { var current:HashMap = HashMap() var future:HashMap = HashMap() } open class ContributionPointDto : ProjectionPointDto() { var period:Double? = null var salary:Double? = null var rateLookupValue:String? = null var linkedContRate:Double? = null var rate:Double? = null var amount:Double? = null var rateAmount:Double? = null var contAmount:Double? = null var totalMemberTaxable:Double? = null var totalMemberNonTaxable:Double? = null var totalMemberNonTaxableSalary:Double? = null var totalMemberNonTaxableNonSalary:Double? = null var totalEmployer:Double? = null } open class SiteContext { var echoUri:String? = null var branding:Branding? = null var modules:ArrayList = ArrayList() var conditionalAccess:ConditionalAccess? = null var colorScheme:ColorScheme? = null var carriers:ArrayList? = null var country:String? = null var defaultLanguage:String? = null var availableLanguages:ArrayList = ArrayList() var currency:String? = null var employer:Entity? = null var carrier:CarrierEntity? = null var consultant:Entity? = null var member:Member? = null var counsellingOptions:CounsellingOptions? = null var dkCalculatorConfiguration:DkCalculatorConfiguration? = null var dkPensionsInfoSsoTicket:SecurityToken? = null var dkPensionsInfo:DkPensionsInfo? = null var deCalculatorConfiguration:DeCalculatorConfiguration? = null var disabilityInsurancePlan:DisabilityInsurancePlan? = null var criticalIllnessInsurancePlan:CriticalIllnessInsurancePlan? = null var deathInsurancePlan:DeathInsurancePlan? = null var healthInsurancePlan:HealthInsurancePlan? = null var accidentInsurancePlan:AccidentInsurancePlan? = null var dentalInsurancePlan:DentalInsurancePlan? = null var seniorCitizenConcept:SeniorCitizenConcept? = null var retirementPlan:RetirementPlan? = null var deRetirementPlans:DeRetirementPlans? = null var preventiveTreatment:PreventiveTreatment? = null var isPensionScheme:Boolean? = null var pathFinder:PathFinder? = null var financialWellBeing:FinancialWellbeing? = null var useInformalLanguage:Boolean? = null var usesSSO:Boolean? = null var authenticationMethod:AuthenticationMethod? = null var cprNumberNeeded:Boolean? = null var activationCodeRequired:Boolean? = null var employerEmailDomain:String? = null var version:String? = null var taxPseudocodeURL:String? = null var calculatorConfiguration:CalculatorData? = null var configurationIds:ConfigurationIds? = null var documentList:ArrayList = ArrayList() var newDocumentDaySpan:Int? = null var sasTokenDurationInSeconds:Double? = null var dataRetentionPeriodInYears:Int? = null var periods:ArrayList = ArrayList() var groupConfig:ConfigurationVersionGroupConfig? = null var memberDocumentConfig:ConfigurationVersionMemberDocumentConfig? = null var pensionSightClient:PensionSightClient? = null var userResultConfiguration:ArrayList = ArrayList() var userSearchConfiguration:ArrayList = ArrayList() var userResultConfigurationAdminProxy:ArrayList = ArrayList() var userSearchConfigurationAdminProxy:ArrayList = ArrayList() var frCompanyPlans:FrCompanyPlans? = null var esRetirementPlans:EsRetirementPlans? = null var frCalculatorConfiguration:FrCalculatorConfiguration? = null var frFundSetups:ArrayList = ArrayList() var frPlanSetups:ArrayList = ArrayList() var frPreviousPlansSetups:ArrayList = ArrayList() var frIndividualPlanFunds:ArrayList = ArrayList() var beRetirementPlans:ArrayList = ArrayList() var beContributions:BeContributions? = null var privateClientProducts:ArrayList = ArrayList() var contactUs:ConfigurationVersionEmailSetting? = null var emailSettings:ArrayList = ArrayList() var formTypeFieldsConfiguration:ArrayList = ArrayList() var formTypeLookupConfiguration:ArrayList = ArrayList() var recommendation:ConfigurationVersionRecommendation? = null var recommendationProduct:ConfigurationVersionRecommendationProduct? = null var ptFundValues:ArrayList = ArrayList() var ptFundsSetups:ArrayList = ArrayList() var ptContributionData:PtContribution? = null var ptInvestmentAllocations:ArrayList = ArrayList() var ptInvestmentSetup:PtInvestmentSetup? = null var ptFundLifecycleList:PtFundLifecycleList? = null var ptParticipantStatusSetup:PtParticipantStatusSetup? = null var ptMatchingContributionList:ArrayList = ArrayList() var votingPollSetup:ConfigurationVersionVotingPollSetup? = null var votingPollConfig:ArrayList = ArrayList() var ptCalculatorConfiguration:PtCalculatorConfiguration? = null var bookingInfo:DkBookingInfo? = null var dkPublicContactUsSetup:ConfigurationVersionPublicContactUsSetup? = null }