AlbaApi

<back to all web services

AlbaClientCountryConfigReq

The following routes are available for this service:
GET/clientcountryconfig/{Country}/{Client}
GET/clientcountryconfig
POST/clientcountryconfig
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using AlbaApi.ServiceModel;
using TasSyd.Model.Client;
using TasSyd.Model.Base;
using TasSyd.Model.Stochastic;
using TasSyd.Model.Enums;
using TasSyd.Model.Core.Contributions;
using TasSyd.Model.Core;

namespace AlbaApi.ServiceModel
{
    public partial class AlbaClientCountryConfigReq
    {
        public virtual string CountryCode { get; set; }
        public virtual string ClientCode { get; set; }
    }

}

namespace TasSyd.Model.Base
{
    public partial class DatedEntity
        : Entity, IDatedEntity
    {
        public virtual DateTime AsAt { get; set; }
    }

    public partial class Entity
        : IEntity
    {
        public virtual string Id { get; set; }
    }

}

namespace TasSyd.Model.Client
{
    public partial class AnnuityConfig
    {
        public AnnuityConfig()
        {
            TableNames = new List<LifeTableName>{};
            ImprFactorTableNames = new List<LifeTableName>{};
        }

        public virtual List<LifeTableName> TableNames { get; set; }
        public virtual List<LifeTableName> ImprFactorTableNames { get; set; }
        public virtual double? Reversion { get; set; }
        public virtual double? Guarantee { get; set; }
        public virtual double? Timing { get; set; }
        public virtual bool? AllowDiscountPreRet { get; set; }
        public virtual double? ScaleQx { get; set; }
        public virtual double? ScaleImpr { get; set; }
        public virtual int? AgeRating { get; set; }
        public virtual int? SpouseAgeRating { get; set; }
        public virtual double? Expense { get; set; }
        public virtual double? PercBalanceSpent { get; set; }
        public virtual double? AmountSpent { get; set; }
        public virtual double? IncomePurchased { get; set; }
        public virtual int? DeferralPeriod { get; set; }
        public virtual string IndexationName { get; set; }
        public virtual string DRStochastic { get; set; }
        public virtual string ImpliedInflationStochasticSeries { get; set; }
        public virtual double? TargetTpx { get; set; }
        public virtual AnnuityPriceType PriceType { get; set; }
        public virtual double Price { get; set; }
    }

    public partial class AssetConfig
    {
        public AssetConfig()
        {
            Investments = new List<string>{};
            Contributions = new List<ContributionSpec>{};
        }

        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual bool Rebalance { get; set; }
        public virtual bool CanEditInvestmentChoice { get; set; }
        public virtual bool WillSpend { get; set; }
        public virtual List<string> Investments { get; set; }
        public virtual List<ContributionSpec> Contributions { get; set; }
        public virtual bool IsOneOff { get; set; }
    }

    public partial class ClientCountryConfig
        : DatedEntity
    {
        public ClientCountryConfig()
        {
            Assets = new List<AssetConfig>{};
            ContTables = new List<ContributionTableSpec>{};
            Investments = new List<InvestmentProduct>{};
            Content = new Dictionary<string, List<Content>>{};
            Environments = new Dictionary<string, string>{};
            CustomNumericConstraints = new Dictionary<string, Constraint<Decimal>>{};
            AssetReturnRates = new Dictionary<string, ReturnRates>{};
            GetAssetClassFundDictionary = new Dictionary<string, bool>{};
            GetTermBasedFundDictionary = new Dictionary<string, bool>{};
            GetAllocationsDictionary = new Dictionary<string, Dictionary<Int32,Dictionary<String,Double>>>{};
            AssetNameMap = new Dictionary<string, string>{};
            AssetContNameMap = new Dictionary<string, Dictionary<String,String>>{};
        }

        public virtual string ClientCode { get; set; }
        public virtual string ClientName { get; set; }
        public virtual string CountryCode { get; set; }
        public virtual DataSourceResult Source { get; set; }
        public virtual int AgeRMin { get; set; }
        public virtual int AgeRMax { get; set; }
        public virtual string PrimarySalary { get; set; }
        public virtual AnnuityConfig AnnuityConfig { get; set; }
        public virtual List<AssetConfig> Assets { get; set; }
        public virtual List<ContributionTableSpec> ContTables { get; set; }
        public virtual List<InvestmentProduct> Investments { get; set; }
        public virtual Dictionary<string, List<Content>> Content { get; set; }
        public virtual Dictionary<string, string> Environments { get; set; }
        public virtual Dictionary<string, Constraint<Decimal>> CustomNumericConstraints { get; set; }
        public virtual Dictionary<string, ReturnRates> AssetReturnRates { get; set; }
        public virtual double InvestmentPropertyRates { get; set; }
        public virtual Dictionary<string, bool> GetAssetClassFundDictionary { get; set; }
        public virtual Dictionary<string, bool> GetTermBasedFundDictionary { get; set; }
        public virtual Dictionary<string, Dictionary<Int32,Dictionary<String,Double>>> GetAllocationsDictionary { get; set; }
        public virtual Dictionary<string, string> AssetNameMap { get; set; }
        public virtual Dictionary<string, Dictionary<String,String>> AssetContNameMap { get; set; }
        public virtual string CacheKey { get; set; }
    }

    public partial class LifeTableName
    {
        public virtual string Name { get; set; }
        public virtual Gender Gender { get; set; }
    }

}

namespace TasSyd.Model.Core
{
    public partial class InvestmentProduct
    {
        public InvestmentProduct()
        {
            Allocs = new List<InvestmentProductAllocationsSpec>{};
            AllocationsDictionary = new Dictionary<int, Dictionary<String,Double>>{};
        }

        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual string Group { get; set; }
        public virtual bool IsAssetClassFund { get; set; }
        public virtual List<InvestmentProductAllocationsSpec> Allocs { get; set; }
        public virtual int Order { get; set; }
        public virtual Dictionary<int, Dictionary<String,Double>> AllocationsDictionary { get; set; }
    }

    public partial class InvestmentProductAllocationsSpec
    {
        public InvestmentProductAllocationsSpec()
        {
            Allocs = new Dictionary<string, double>{};
        }

        public virtual int FromAge { get; set; }
        public virtual int? Term { get; set; }
        public virtual Dictionary<string, double> Allocs { get; set; }
        public virtual double TotalAlloc { get; set; }
    }

    public partial class ReturnRates
    {
        public ReturnRates()
        {
            EarningRates = new List<double>{};
            TaxRates = new List<double>{};
        }

        public virtual List<double> EarningRates { get; set; }
        public virtual List<double> TaxRates { get; set; }
    }

}

namespace TasSyd.Model.Core.Contributions
{
    public partial class ContributionConstraint
    {
        public virtual int? FromAge { get; set; }
        public virtual int? ToAge { get; set; }
        public virtual double? Min { get; set; }
        public virtual double? Max { get; set; }
        public virtual double? Step { get; set; }
    }

    public partial class ContributionRateSpec
    {
        public virtual int? FromAge { get; set; }
        public virtual int? ToAge { get; set; }
        public virtual int? FromService { get; set; }
        public virtual int? ToService { get; set; }
        public virtual double? SourceRate { get; set; }
        public virtual DateTime? DateFrom { get; set; }
        public virtual DateTime? DateTo { get; set; }
        public virtual double? UpperLimit { get; set; }
        public virtual double Rate { get; set; }
        public virtual double CoreRate { get; set; }
        public virtual string LookupKey { get; set; }
    }

    public partial class ContributionSpec
    {
        public ContributionSpec()
        {
            Constraints = new List<ContributionConstraint>{};
        }

        public virtual string Code { get; set; }
        public virtual string Name { get; set; }
        public virtual ContributionType Type { get; set; }
        public virtual bool IsEmployeeCont { get; set; }
        public virtual string Table { get; set; }
        public virtual string Ccy { get; set; }
        public virtual int FromAge { get; set; }
        public virtual int? ToAge { get; set; }
        public virtual string IndexationType { get; set; }
        public virtual string SalaryType { get; set; }
        public virtual bool IsTaxable { get; set; }
        public virtual string RelatedRate { get; set; }
        public virtual int Order { get; set; }
        public virtual bool Editable { get; set; }
        public virtual List<ContributionConstraint> Constraints { get; set; }
        public virtual AmountType AmountType { get; set; }
        public virtual bool IsOneOff { get; set; }
    }

    public partial class ContributionTableSpec
    {
        public ContributionTableSpec()
        {
            Rates = new Dictionary<string, double>{};
            RateSpecs = new List<ContributionRateSpec>{};
        }

        public virtual string Code { get; set; }
        public virtual ContributionType Type { get; set; }
        public virtual Dictionary<string, double> Rates { get; set; }
        public virtual List<ContributionRateSpec> RateSpecs { get; set; }
        public virtual string KeyTemplate { get; set; }
    }

}

namespace TasSyd.Model.Enums
{
    public enum AmountType
    {
        Any,
        Amount,
        Rate,
    }

    public enum AnnuityPriceType
    {
        Calc,
        Table,
    }

    public enum ContributionType
    {
        Fixed,
        Time,
        Lookup,
        Match,
    }

    public enum DataSource
    {
        Db,
        Cache,
        Parameter,
        NA,
    }

    public enum Gender
    {
        Female,
        Male,
        Other,
    }

}

namespace TasSyd.Model.Stochastic
{
    public partial class DataSourceResult
    {
        public virtual DataSource D { get; set; }
        public virtual long T { get; set; }
    }

}

C# 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>