AlbaApi

<back to all web services

InvestmentRiskProfileSaveRequest

The following routes are available for this service:
POST/members/{EmployeeGuid}/investmentprofile
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecommendedRisk:
    risk_name: Optional[str] = None
    risk_value: Optional[int] = None
    risk_id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RiskModel:
    recommended_risk: Optional[RecommendedRisk] = None
    chosen_risk: Optional[RecommendedRisk] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvestmentProductAllocationsSpec:
    from_age: Optional[int] = None
    term: Optional[int] = None
    allocs: Optional[Dict[str, float]] = None
    total_alloc: Optional[float] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvestmentProduct:
    code: Optional[str] = None
    name: Optional[str] = None
    group: Optional[str] = None
    is_asset_class_fund: Optional[bool] = None
    allocs: Optional[List[InvestmentProductAllocationsSpec]] = None
    order: Optional[int] = None
    allocations_dictionary: Optional[Dict[int, Dict[str, float]]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecommendedProductType:
    product: Optional[str] = None
    investment_product: Optional[str] = None
    score: Optional[float] = None
    product_type: Optional[int] = None
    investment_products: Optional[List[InvestmentProduct]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecommendedProducts:
    recommended_product: Optional[RecommendedProductType] = None
    chosen_product: Optional[RecommendedProductType] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MatrixNoRisk:
    minimum_allocation_in_stocks: Optional[str] = None
    maximum_allocationin_stocks: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecommendedProductGraph:
    bar_graph_data: Optional[List[Dict[str, str]]] = None
    pie_graph_info: Optional[MatrixNoRisk] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvestmentRiskProfileSaveResponse:
    risk: Optional[RiskModel] = None
    product: Optional[RecommendedProducts] = None
    recommended_product_graph: Optional[RecommendedProductGraph] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvestmentRiskProfileSaveRequest:
    employee_guid: Optional[str] = None
    answers: Optional[List[QuestionnaireAnswers]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QuestionnaireAnswers:
    question_number: Optional[int] = None
    option_number: Optional[int] = None

Python InvestmentRiskProfileSaveRequest 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 /members/{EmployeeGuid}/investmentprofile HTTP/1.1 
Host: hcbtas-q-albamfs-api.azurewebsites.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<InvestmentRiskProfileSaveRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaApi.ServiceModel">
  <Answers xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaApi.Model">
    <d2p1:QuestionnaireAnswers>
      <d2p1:OptionNumber>0</d2p1:OptionNumber>
      <d2p1:QuestionNumber>0</d2p1:QuestionNumber>
    </d2p1:QuestionnaireAnswers>
  </Answers>
  <EmployeeGuid>00000000-0000-0000-0000-000000000000</EmployeeGuid>
</InvestmentRiskProfileSaveRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<InvestmentRiskProfileSaveResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaApi.Model">
  <Product>
    <ChosenProduct>
      <InvestmentProduct>String</InvestmentProduct>
      <InvestmentProducts>
        <InvestmentProduct>
          <RiskId>String</RiskId>
          <RiskName>String</RiskName>
        </InvestmentProduct>
      </InvestmentProducts>
      <Product>String</Product>
      <ProductType>0</ProductType>
      <Score>0</Score>
    </ChosenProduct>
    <RecommendedProduct>
      <InvestmentProduct>String</InvestmentProduct>
      <InvestmentProducts>
        <InvestmentProduct>
          <RiskId>String</RiskId>
          <RiskName>String</RiskName>
        </InvestmentProduct>
      </InvestmentProducts>
      <Product>String</Product>
      <ProductType>0</ProductType>
      <Score>0</Score>
    </RecommendedProduct>
  </Product>
  <RecommendedProductGraph>
    <BarGraphData xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:ArrayOfKeyValueOfstringstring>
        <d3p1:KeyValueOfstringstring>
          <d3p1:Key>String</d3p1:Key>
          <d3p1:Value>String</d3p1:Value>
        </d3p1:KeyValueOfstringstring>
      </d3p1:ArrayOfKeyValueOfstringstring>
    </BarGraphData>
    <PieGraphInfo>
      <MaximumAllocationinStocks>String</MaximumAllocationinStocks>
      <MinimumAllocationInStocks>String</MinimumAllocationInStocks>
    </PieGraphInfo>
  </RecommendedProductGraph>
  <Risk>
    <ChosenRisk>
      <RiskId>String</RiskId>
      <RiskName>String</RiskName>
      <RiskValue>0</RiskValue>
    </ChosenRisk>
    <RecommendedRisk>
      <RiskId>String</RiskId>
      <RiskName>String</RiskName>
      <RiskValue>0</RiskValue>
    </RecommendedRisk>
  </Risk>
</InvestmentRiskProfileSaveResponse>