/* Options: Date: 2025-07-17 23:20:42 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ClientCountryConfigValidateReq.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class Entity implements IEntity { public id: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IEntity { id: string; } export enum Gender { Female = 'Female', Male = 'Male', Other = 'Other', } export class Entity { public logoUri: string; public name: string; public contactDetails: ContactDetails; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum DataSource { Db = 'Db', Cache = 'Cache', Parameter = 'Parameter', NA = 'NA', } export class DataSourceResult { public d: DataSource; public t: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class LifeTableName { public name: string; public gender: Gender; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AnnuityPriceType { Calc = 'Calc', Table = 'Table', } export class AnnuityConfig { public tableNames: LifeTableName[]; public imprFactorTableNames: LifeTableName[]; public reversion?: number; public guarantee?: number; public timing?: number; public allowDiscountPreRet?: boolean; public scaleQx?: number; public scaleImpr?: number; public ageRating?: number; public spouseAgeRating?: number; public expense?: number; public percBalanceSpent?: number; public amountSpent?: number; public incomePurchased?: number; public deferralPeriod?: number; public indexationName: string; public drStochastic: string; public impliedInflationStochasticSeries: string; public targetTpx?: number; public priceType: AnnuityPriceType; public price: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ContributionType { Fixed = 'Fixed', Time = 'Time', Lookup = 'Lookup', Match = 'Match', } export class ContributionConstraint { public fromAge?: number; public toAge?: number; public min?: number; public max?: number; public step?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AmountType { Any = 'Any', Amount = 'Amount', Rate = 'Rate', } export class ContributionSpec { public code: string; public name: string; public type: ContributionType; public isEmployeeCont: boolean; public table: string; public ccy: string; public fromAge: number; public toAge?: number; public indexationType: string; public salaryType: string; public isTaxable: boolean; public relatedRate: string; public order: number; public editable: boolean; public constraints: ContributionConstraint[]; public amountType: AmountType; public isOneOff: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssetConfig { public code: string; public name: string; public rebalance: boolean; public canEditInvestmentChoice: boolean; public willSpend: boolean; public investments: string[]; public contributions: ContributionSpec[]; public isOneOff: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ContributionRateSpec { public fromAge?: number; public toAge?: number; public fromService?: number; public toService?: number; public sourceRate?: number; public dateFrom?: string; public dateTo?: string; public upperLimit?: number; public rate: number; public coreRate: number; public lookupKey: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ContributionTableSpec { public code: string; public type: ContributionType; public rates: { [index: string]: number; }; public rateSpecs: ContributionRateSpec[]; public keyTemplate: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvestmentProduct { public code: string; public name: string; public group: string; public isAssetClassFund: boolean; public allocs: InvestmentProductAllocationsSpec[]; public order: number; public allocationsDictionary: { [index: number]: { [index:string]: number; }; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ReturnRates { public earningRates: number[]; public taxRates: number[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DatedEntity extends Entity implements IDatedEntity { public asAt: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export interface IDatedEntity extends IEntity { asAt: string; } export enum ContributionType { Employer = 'Employer', Employee = 'Employee', EmployerMatching = 'EmployerMatching', } export class InvestmentProduct { public riskId: string; public riskName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ClientCountryConfig extends DatedEntity { public clientCode: string; public clientName: string; public countryCode: string; public source: DataSourceResult; public ageRMin: number; public ageRMax: number; public primarySalary: string; public annuityConfig: AnnuityConfig; public assets: AssetConfig[]; public contTables: ContributionTableSpec[]; public investments: InvestmentProduct[]; public content: { [index: string]: Content[]; }; public environments: { [index: string]: string; }; public customNumericConstraints: { [index: string]: Constraint; }; public assetReturnRates: { [index: string]: ReturnRates; }; public investmentPropertyRates: number; public getAssetClassFundDictionary: { [index: string]: boolean; }; public getTermBasedFundDictionary: { [index: string]: boolean; }; public getAllocationsDictionary: { [index: string]: { [index:number]: { [index:string]: number; }; }; }; public assetNameMap: { [index: string]: string; }; public assetContNameMap: { [index: string]: { [index:string]: string; }; }; public cacheKey: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @Route("/clientcountryconfig/validate", "POST") export class ClientCountryConfigValidateReq implements IReturn { public config: ClientCountryConfig; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'ClientCountryConfigValidateReq'; } public getMethod() { return 'POST'; } public createResponse() { return new ClientCountryConfig(); } }