POST | /clientcountryconfig/validate |
---|
namespace CalcEngineApi.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type Entity() =
member val Id:String = null with get,set
[<AllowNullLiteral>]
type DatedEntity() =
inherit Entity()
member val AsAt:DateTime = new DateTime() with get,set
type DataSource =
| Db = 0
| Cache = 1
| Parameter = 2
| NA = 3
[<AllowNullLiteral>]
type DataSourceResult() =
member val D:DataSource = new DataSource() with get,set
member val T:Int64 = new Int64() with get,set
type Gender =
| Female = 0
| Male = 1
| Other = 2
[<AllowNullLiteral>]
type LifeTableName() =
member val Name:String = null with get,set
member val Gender:Gender = new Gender() with get,set
type AnnuityPriceType =
| Calc = 0
| Table = 1
[<AllowNullLiteral>]
type AnnuityConfig() =
member val TableNames:ResizeArray<LifeTableName> = new ResizeArray<LifeTableName>() with get,set
member val ImprFactorTableNames:ResizeArray<LifeTableName> = new ResizeArray<LifeTableName>() with get,set
member val Reversion:Nullable<Double> = new Nullable<Double>() with get,set
member val Guarantee:Nullable<Double> = new Nullable<Double>() with get,set
member val Timing:Nullable<Double> = new Nullable<Double>() with get,set
member val AllowDiscountPreRet:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val ScaleQx:Nullable<Double> = new Nullable<Double>() with get,set
member val ScaleImpr:Nullable<Double> = new Nullable<Double>() with get,set
member val AgeRating:Nullable<Int32> = new Nullable<Int32>() with get,set
member val SpouseAgeRating:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Expense:Nullable<Double> = new Nullable<Double>() with get,set
member val PercBalanceSpent:Nullable<Double> = new Nullable<Double>() with get,set
member val AmountSpent:Nullable<Double> = new Nullable<Double>() with get,set
member val IncomePurchased:Nullable<Double> = new Nullable<Double>() with get,set
member val DeferralPeriod:Nullable<Int32> = new Nullable<Int32>() with get,set
member val IndexationName:String = null with get,set
member val DRStochastic:String = null with get,set
member val ImpliedInflationStochasticSeries:String = null with get,set
member val TargetTpx:Nullable<Double> = new Nullable<Double>() with get,set
member val PriceType:AnnuityPriceType = new AnnuityPriceType() with get,set
member val Price:Double = new Double() with get,set
type ContributionType =
| Fixed = 0
| Time = 1
| Lookup = 2
| Match = 3
[<AllowNullLiteral>]
type ContributionConstraint() =
member val FromAge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val ToAge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Min:Nullable<Double> = new Nullable<Double>() with get,set
member val Max:Nullable<Double> = new Nullable<Double>() with get,set
member val Step:Nullable<Double> = new Nullable<Double>() with get,set
type AmountType =
| Any = 0
| Amount = 1
| Rate = 2
[<AllowNullLiteral>]
type ContributionSpec() =
member val Code:String = null with get,set
member val Name:String = null with get,set
member val Type:ContributionType = new ContributionType() with get,set
member val IsEmployeeCont:Boolean = new Boolean() with get,set
member val Table:String = null with get,set
member val Ccy:String = null with get,set
member val FromAge:Int32 = new Int32() with get,set
member val ToAge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val IndexationType:String = null with get,set
member val SalaryType:String = null with get,set
member val IsTaxable:Boolean = new Boolean() with get,set
member val RelatedRate:String = null with get,set
member val Order:Int32 = new Int32() with get,set
member val Editable:Boolean = new Boolean() with get,set
member val Constraints:ResizeArray<ContributionConstraint> = new ResizeArray<ContributionConstraint>() with get,set
member val AmountType:AmountType = new AmountType() with get,set
member val IsOneOff:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type AssetConfig() =
member val Code:String = null with get,set
member val Name:String = null with get,set
member val Rebalance:Boolean = new Boolean() with get,set
member val CanEditInvestmentChoice:Boolean = new Boolean() with get,set
member val WillSpend:Boolean = new Boolean() with get,set
member val Investments:ResizeArray<String> = new ResizeArray<String>() with get,set
member val Contributions:ResizeArray<ContributionSpec> = new ResizeArray<ContributionSpec>() with get,set
member val IsOneOff:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type ContributionRateSpec() =
member val FromAge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val ToAge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val FromService:Nullable<Int32> = new Nullable<Int32>() with get,set
member val ToService:Nullable<Int32> = new Nullable<Int32>() with get,set
member val SourceRate:Nullable<Double> = new Nullable<Double>() with get,set
member val DateFrom:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val DateTo:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val UpperLimit:Nullable<Double> = new Nullable<Double>() with get,set
member val Rate:Double = new Double() with get,set
member val CoreRate:Double = new Double() with get,set
member val LookupKey:String = null with get,set
[<AllowNullLiteral>]
type ContributionTableSpec() =
member val Code:String = null with get,set
member val Type:ContributionType = new ContributionType() with get,set
member val Rates:Dictionary<String, Double> = new Dictionary<String, Double>() with get,set
member val RateSpecs:ResizeArray<ContributionRateSpec> = new ResizeArray<ContributionRateSpec>() with get,set
member val KeyTemplate:String = null with get,set
[<AllowNullLiteral>]
type InvestmentProductAllocationsSpec() =
member val FromAge:Int32 = new Int32() with get,set
member val Term:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Allocs:Dictionary<String, Double> = new Dictionary<String, Double>() with get,set
member val TotalAlloc:Double = new Double() with get,set
[<AllowNullLiteral>]
type InvestmentProduct() =
member val Code:String = null with get,set
member val Name:String = null with get,set
member val Group:String = null with get,set
member val IsAssetClassFund:Boolean = new Boolean() with get,set
member val Allocs:ResizeArray<InvestmentProductAllocationsSpec> = new ResizeArray<InvestmentProductAllocationsSpec>() with get,set
member val Order:Int32 = new Int32() with get,set
member val AllocationsDictionary:Dictionary<Int32, Dictionary<String,Double>> = new Dictionary<Int32, Dictionary<String,Double>>() with get,set
[<AllowNullLiteral>]
type ReturnRates() =
member val EarningRates:ResizeArray<Double> = new ResizeArray<Double>() with get,set
member val TaxRates:ResizeArray<Double> = new ResizeArray<Double>() with get,set
[<AllowNullLiteral>]
type ClientCountryConfig() =
inherit DatedEntity()
member val ClientCode:String = null with get,set
member val ClientName:String = null with get,set
member val CountryCode:String = null with get,set
member val Source:DataSourceResult = null with get,set
member val AgeRMin:Int32 = new Int32() with get,set
member val AgeRMax:Int32 = new Int32() with get,set
member val PrimarySalary:String = null with get,set
member val AnnuityConfig:AnnuityConfig = null with get,set
member val Assets:ResizeArray<AssetConfig> = new ResizeArray<AssetConfig>() with get,set
member val ContTables:ResizeArray<ContributionTableSpec> = new ResizeArray<ContributionTableSpec>() with get,set
member val Investments:ResizeArray<InvestmentProduct> = new ResizeArray<InvestmentProduct>() with get,set
member val Content:Dictionary<String, List<Content>> = new Dictionary<String, List<Content>>() with get,set
member val Environments:Dictionary<String, String> = new Dictionary<String, String>() with get,set
member val CustomNumericConstraints:Dictionary<String, Constraint<Decimal>> = new Dictionary<String, Constraint<Decimal>>() with get,set
member val AssetReturnRates:Dictionary<String, ReturnRates> = new Dictionary<String, ReturnRates>() with get,set
member val InvestmentPropertyRates:Double = new Double() with get,set
member val GetAssetClassFundDictionary:Dictionary<String, Boolean> = new Dictionary<String, Boolean>() with get,set
member val GetTermBasedFundDictionary:Dictionary<String, Boolean> = new Dictionary<String, Boolean>() with get,set
member val GetAllocationsDictionary:Dictionary<String, Dictionary<Int32,Dictionary<String,Double>>> = new Dictionary<String, Dictionary<Int32,Dictionary<String,Double>>>() with get,set
member val AssetNameMap:Dictionary<String, String> = new Dictionary<String, String>() with get,set
member val AssetContNameMap:Dictionary<String, Dictionary<String,String>> = new Dictionary<String, Dictionary<String,String>>() with get,set
member val CacheKey:String = null with get,set
[<AllowNullLiteral>]
type ClientCountryConfigValidateReq() =
member val Config:ClientCountryConfig = null with get,set
F# ClientCountryConfigValidateReq DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /clientcountryconfig/validate HTTP/1.1
Host: hcbtas-q-albamfs-api.azurewebsites.net
Accept: application/json
Content-Type: application/json
Content-Length: length
{"config":{"clientCode":"String","clientName":"String","countryCode":"String","source":{"d":"Db","t":0},"ageRMin":0,"ageRMax":0,"primarySalary":"String","annuityConfig":{"tableNames":[{"name":"String","gender":"Female"}],"imprFactorTableNames":[{"name":"String","gender":"Female"}],"reversion":0,"guarantee":0,"timing":0,"allowDiscountPreRet":false,"scaleQx":0,"scaleImpr":0,"ageRating":0,"spouseAgeRating":0,"expense":0,"percBalanceSpent":0,"amountSpent":0,"incomePurchased":0,"deferralPeriod":0,"indexationName":"String","drStochastic":"String","impliedInflationStochasticSeries":"String","targetTpx":0,"priceType":"Calc","price":0},"assets":[{"code":"String","name":"String","rebalance":false,"canEditInvestmentChoice":false,"willSpend":false,"investments":["String"],"contributions":[{"code":"String","name":"String","type":"Fixed","isEmployeeCont":false,"table":"String","ccy":"String","fromAge":0,"toAge":0,"indexationType":"String","salaryType":"String","isTaxable":false,"relatedRate":"String","order":0,"editable":false,"constraints":[{"fromAge":0,"toAge":0,"min":0,"max":0,"step":0}],"amountType":"Any","isOneOff":false}],"isOneOff":false}],"contTables":[{"code":"String","type":"Fixed","rates":{"String":0},"rateSpecs":[{"fromAge":0,"toAge":0,"fromService":0,"toService":0,"sourceRate":0,"dateFrom":"0001-01-01T00:00:00.0000000","dateTo":"0001-01-01T00:00:00.0000000","upperLimit":0,"rate":0,"coreRate":0,"lookupKey":"String"}],"keyTemplate":"age-service-rate"}],"investments":[{"code":"String","name":"String","group":"String","isAssetClassFund":false,"allocs":[{"fromAge":0,"term":0,"allocs":{"String":0},"totalAlloc":0}],"order":0,"allocationsDictionary":{"0":{}}}],"content":{"String":[{"section":"String","itemId":"String","itemCode":"String","country":"String","lang":"String","app":"String","companyId":"String","company":"String","elements":{"String":"String"},"id":"String"}]},"environments":{"String":"String"},"customNumericConstraints":{"String":{"min":0,"max":0,"step":0}},"assetReturnRates":{"String":{"earningRates":[0],"taxRates":[0]}},"investmentPropertyRates":0,"getAssetClassFundDictionary":{"String":false},"getTermBasedFundDictionary":{"String":true},"getAllocationsDictionary":{"String":{"0":{}}},"assetNameMap":{"String":"String"},"assetContNameMap":{"String":{"String":"String"}},"cacheKey":"ClientCountryConfig-String-String","asAt":"0001-01-01T00:00:00.0000000","id":"String"}}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"clientCode":"String","clientName":"String","countryCode":"String","source":{"d":"Db","t":0},"ageRMin":0,"ageRMax":0,"primarySalary":"String","annuityConfig":{"tableNames":[{"name":"String","gender":"Female"}],"imprFactorTableNames":[{"name":"String","gender":"Female"}],"reversion":0,"guarantee":0,"timing":0,"allowDiscountPreRet":false,"scaleQx":0,"scaleImpr":0,"ageRating":0,"spouseAgeRating":0,"expense":0,"percBalanceSpent":0,"amountSpent":0,"incomePurchased":0,"deferralPeriod":0,"indexationName":"String","drStochastic":"String","impliedInflationStochasticSeries":"String","targetTpx":0,"priceType":"Calc","price":0},"assets":[{"code":"String","name":"String","rebalance":false,"canEditInvestmentChoice":false,"willSpend":false,"investments":["String"],"contributions":[{"code":"String","name":"String","type":"Fixed","isEmployeeCont":false,"table":"String","ccy":"String","fromAge":0,"toAge":0,"indexationType":"String","salaryType":"String","isTaxable":false,"relatedRate":"String","order":0,"editable":false,"constraints":[{"fromAge":0,"toAge":0,"min":0,"max":0,"step":0}],"amountType":"Any","isOneOff":false}],"isOneOff":false}],"contTables":[{"code":"String","type":"Fixed","rates":{"String":0},"rateSpecs":[{"fromAge":0,"toAge":0,"fromService":0,"toService":0,"sourceRate":0,"dateFrom":"0001-01-01T00:00:00.0000000","dateTo":"0001-01-01T00:00:00.0000000","upperLimit":0,"rate":0,"coreRate":0,"lookupKey":"String"}],"keyTemplate":"age-service-rate"}],"investments":[{"code":"String","name":"String","group":"String","isAssetClassFund":false,"allocs":[{"fromAge":0,"term":0,"allocs":{"String":0},"totalAlloc":0}],"order":0,"allocationsDictionary":{"0":{}}}],"content":{"String":[{"section":"String","itemId":"String","itemCode":"String","country":"String","lang":"String","app":"String","companyId":"String","company":"String","elements":{"String":"String"},"id":"String"}]},"environments":{"String":"String"},"customNumericConstraints":{"String":{"min":0,"max":0,"step":0}},"assetReturnRates":{"String":{"earningRates":[0],"taxRates":[0]}},"investmentPropertyRates":0,"getAssetClassFundDictionary":{"String":false},"getTermBasedFundDictionary":{"String":true},"getAllocationsDictionary":{"String":{"0":{}}},"assetNameMap":{"String":"String"},"assetContNameMap":{"String":{"String":"String"}},"cacheKey":"ClientCountryConfig-String-String","asAt":"0001-01-01T00:00:00.0000000","id":"String"}