AlbaApi

<back to all web services

AlbaClientCountryConfigReq

The following routes are available for this service:
GET/clientcountryconfig/{Country}/{Client}
GET/clientcountryconfig
POST/clientcountryconfig
namespace AlbaApi.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 AlbaClientCountryConfigReq() = 
        member val CountryCode:String = null with get,set
        member val ClientCode:String = null with get,set

F# AlbaClientCountryConfigReq DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /clientcountryconfig HTTP/1.1 
Host: hcbtas-q-albamfs-api.azurewebsites.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<AlbaClientCountryConfigReq xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaApi.ServiceModel">
  <ClientCode>String</ClientCode>
  <CountryCode>String</CountryCode>
</AlbaClientCountryConfigReq>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ClientCountryConfig xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model.Client">
  <Id xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model.Base">String</Id>
  <AsAt xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model.Base">0001-01-01T00:00:00</AsAt>
  <AgeRMax>0</AgeRMax>
  <AgeRMin>0</AgeRMin>
  <AnnuityConfig>
    <AgeRating>0</AgeRating>
    <AllowDiscountPreRet>false</AllowDiscountPreRet>
    <AmountSpent>0</AmountSpent>
    <DRStochastic>String</DRStochastic>
    <DeferralPeriod>0</DeferralPeriod>
    <Expense>0</Expense>
    <Guarantee>0</Guarantee>
    <ImpliedInflationStochasticSeries>String</ImpliedInflationStochasticSeries>
    <ImprFactorTableNames>
      <LifeTableName>
        <Gender>Female</Gender>
        <Name>String</Name>
      </LifeTableName>
    </ImprFactorTableNames>
    <IncomePurchased>0</IncomePurchased>
    <IndexationName>String</IndexationName>
    <PercBalanceSpent>0</PercBalanceSpent>
    <Price>0</Price>
    <PriceType>Calc</PriceType>
    <Reversion>0</Reversion>
    <ScaleImpr>0</ScaleImpr>
    <ScaleQx>0</ScaleQx>
    <SpouseAgeRating>0</SpouseAgeRating>
    <TableNames>
      <LifeTableName>
        <Gender>Female</Gender>
        <Name>String</Name>
      </LifeTableName>
    </TableNames>
    <TargetTpx>0</TargetTpx>
    <Timing>0</Timing>
  </AnnuityConfig>
  <AssetContNameMap xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringArrayOfKeyValueOfstringstringty7Ep6D1>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>
        <d2p1:KeyValueOfstringstring>
          <d2p1:Key>String</d2p1:Key>
          <d2p1:Value>String</d2p1:Value>
        </d2p1:KeyValueOfstringstring>
      </d2p1:Value>
    </d2p1:KeyValueOfstringArrayOfKeyValueOfstringstringty7Ep6D1>
  </AssetContNameMap>
  <AssetNameMap xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringstring>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>String</d2p1:Value>
    </d2p1:KeyValueOfstringstring>
  </AssetNameMap>
  <AssetReturnRates xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringReturnRatesnS1zg5F4>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Core">
        <d4p1:EarningRates>
          <d2p1:double>0</d2p1:double>
        </d4p1:EarningRates>
        <d4p1:TaxRates>
          <d2p1:double>0</d2p1:double>
        </d4p1:TaxRates>
      </d2p1:Value>
    </d2p1:KeyValueOfstringReturnRatesnS1zg5F4>
  </AssetReturnRates>
  <Assets>
    <AssetConfig>
      <CanEditInvestmentChoice>false</CanEditInvestmentChoice>
      <Code>String</Code>
      <Contributions xmlns:d4p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Core.Contributions">
        <d4p1:ContributionSpec>
          <d4p1:AmountType>Any</d4p1:AmountType>
          <d4p1:Ccy>String</d4p1:Ccy>
          <d4p1:Code>String</d4p1:Code>
          <d4p1:Constraints>
            <d4p1:ContributionConstraint>
              <d4p1:FromAge>0</d4p1:FromAge>
              <d4p1:Max>0</d4p1:Max>
              <d4p1:Min>0</d4p1:Min>
              <d4p1:Step>0</d4p1:Step>
              <d4p1:ToAge>0</d4p1:ToAge>
            </d4p1:ContributionConstraint>
          </d4p1:Constraints>
          <d4p1:Editable>false</d4p1:Editable>
          <d4p1:FromAge>0</d4p1:FromAge>
          <d4p1:IndexationType>String</d4p1:IndexationType>
          <d4p1:IsEmployeeCont>false</d4p1:IsEmployeeCont>
          <d4p1:IsOneOff>false</d4p1:IsOneOff>
          <d4p1:IsTaxable>false</d4p1:IsTaxable>
          <d4p1:Name>String</d4p1:Name>
          <d4p1:Order>0</d4p1:Order>
          <d4p1:RelatedRate>String</d4p1:RelatedRate>
          <d4p1:SalaryType>String</d4p1:SalaryType>
          <d4p1:Table>String</d4p1:Table>
          <d4p1:ToAge>0</d4p1:ToAge>
          <d4p1:Type>Fixed</d4p1:Type>
        </d4p1:ContributionSpec>
      </Contributions>
      <Investments xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </Investments>
      <Name>String</Name>
      <Rebalance>false</Rebalance>
      <WillSpend>false</WillSpend>
    </AssetConfig>
  </Assets>
  <ClientCode>String</ClientCode>
  <ClientName>String</ClientName>
  <ContTables xmlns:d2p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Core.Contributions">
    <d2p1:ContributionTableSpec>
      <d2p1:Code>String</d2p1:Code>
      <d2p1:KeyTemplate>age-service-rate</d2p1:KeyTemplate>
      <d2p1:RateSpecs>
        <d2p1:ContributionRateSpec>
          <d2p1:CoreRate>0</d2p1:CoreRate>
          <d2p1:DateFrom>0001-01-01T00:00:00</d2p1:DateFrom>
          <d2p1:DateTo>0001-01-01T00:00:00</d2p1:DateTo>
          <d2p1:FromAge>0</d2p1:FromAge>
          <d2p1:FromService>0</d2p1:FromService>
          <d2p1:LookupKey>String</d2p1:LookupKey>
          <d2p1:Rate>0</d2p1:Rate>
          <d2p1:SourceRate>0</d2p1:SourceRate>
          <d2p1:ToAge>0</d2p1:ToAge>
          <d2p1:ToService>0</d2p1:ToService>
          <d2p1:UpperLimit>0</d2p1:UpperLimit>
        </d2p1:ContributionRateSpec>
      </d2p1:RateSpecs>
      <d2p1:Rates xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringdouble>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>0</d4p1:Value>
        </d4p1:KeyValueOfstringdouble>
      </d2p1:Rates>
      <d2p1:Type>Fixed</d2p1:Type>
    </d2p1:ContributionTableSpec>
  </ContTables>
  <Content xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringArrayOfContentlNVkt6SI>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/TasSyd.Model">
        <d4p1:Content>
          <Id xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model.Base">String</Id>
          <d4p1:App>String</d4p1:App>
          <d4p1:Company>String</d4p1:Company>
          <d4p1:CompanyId>String</d4p1:CompanyId>
          <d4p1:Country>String</d4p1:Country>
          <d4p1:Elements>
            <d2p1:KeyValueOfstringstring>
              <d2p1:Key>String</d2p1:Key>
              <d2p1:Value>String</d2p1:Value>
            </d2p1:KeyValueOfstringstring>
          </d4p1:Elements>
          <d4p1:ItemCode>String</d4p1:ItemCode>
          <d4p1:ItemId>String</d4p1:ItemId>
          <d4p1:Lang>String</d4p1:Lang>
          <d4p1:Section>String</d4p1:Section>
        </d4p1:Content>
      </d2p1:Value>
    </d2p1:KeyValueOfstringArrayOfContentlNVkt6SI>
  </Content>
  <CountryCode>String</CountryCode>
  <CustomNumericConstraints xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringConstraintOfdecimalnS1zg5F4>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Core">
        <d4p1:Max>0</d4p1:Max>
        <d4p1:Min>0</d4p1:Min>
        <d4p1:Step>0</d4p1:Step>
      </d2p1:Value>
    </d2p1:KeyValueOfstringConstraintOfdecimalnS1zg5F4>
  </CustomNumericConstraints>
  <Environments xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringstring>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>String</d2p1:Value>
    </d2p1:KeyValueOfstringstring>
  </Environments>
  <GetAllocationsDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringArrayOfKeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1ty7Ep6D1>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>
        <d2p1:KeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1>
          <d2p1:Key>0</d2p1:Key>
          <d2p1:Value />
        </d2p1:KeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1>
      </d2p1:Value>
    </d2p1:KeyValueOfstringArrayOfKeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1ty7Ep6D1>
  </GetAllocationsDictionary>
  <GetAssetClassFundDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringboolean>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>false</d2p1:Value>
    </d2p1:KeyValueOfstringboolean>
  </GetAssetClassFundDictionary>
  <GetTermBasedFundDictionary xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringboolean>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value>true</d2p1:Value>
    </d2p1:KeyValueOfstringboolean>
  </GetTermBasedFundDictionary>
  <InvestmentPropertyRates>0</InvestmentPropertyRates>
  <Investments xmlns:d2p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Core">
    <d2p1:InvestmentProduct>
      <d2p1:AllocationsDictionary xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1>
          <d4p1:Key>0</d4p1:Key>
          <d4p1:Value />
        </d4p1:KeyValueOfintArrayOfKeyValueOfstringdoublety7Ep6D1>
      </d2p1:AllocationsDictionary>
      <d2p1:Allocs>
        <d2p1:InvestmentProductAllocationsSpec>
          <d2p1:Allocs xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringdouble>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>0</d6p1:Value>
            </d6p1:KeyValueOfstringdouble>
          </d2p1:Allocs>
          <d2p1:FromAge>0</d2p1:FromAge>
          <d2p1:Term>0</d2p1:Term>
        </d2p1:InvestmentProductAllocationsSpec>
      </d2p1:Allocs>
      <d2p1:Code>String</d2p1:Code>
      <d2p1:Group>String</d2p1:Group>
      <d2p1:IsAssetClassFund>false</d2p1:IsAssetClassFund>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:Order>0</d2p1:Order>
    </d2p1:InvestmentProduct>
  </Investments>
  <PrimarySalary>String</PrimarySalary>
  <Source xmlns:d2p1="http://schemas.datacontract.org/2004/07/TasSyd.Model.Stochastic">
    <d2p1:D>Db</d2p1:D>
    <d2p1:T>0</d2p1:T>
  </Source>
</ClientCountryConfig>