POST | /member/validate |
---|
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
class IVirtualDirectory:
pass
class IVirtualPathProvider:
root_directory: Optional[IVirtualDirectory] = None
virtual_path_separator: Optional[str] = None
real_path_separator: Optional[str] = None
class IVirtualFile:
virtual_path_provider: Optional[IVirtualPathProvider] = None
extension: Optional[str] = None
length: Optional[int] = None
# @Flags()
class CacheControl(IntEnum):
NONE = 0
PUBLIC = 1
PRIVATE = 2
MUST_REVALIDATE = 4
NO_CACHE = 8
NO_STORE = 16
NO_TRANSFORM = 32
PROXY_REVALIDATE = 64
class IContentTypeWriter:
pass
class IResponse:
original_response: Optional[Object] = None
request: Optional[IRequest] = None
status_code: Optional[int] = None
status_description: Optional[str] = None
content_type: Optional[str] = None
output_stream: Optional[bytes] = None
dto: Optional[Object] = None
use_buffered_stream: Optional[bool] = None
is_closed: Optional[bool] = None
keep_alive: Optional[bool] = None
has_started: Optional[bool] = None
items: Optional[Dict[str, Object]] = None
# @Flags()
class RequestAttributes(IntEnum):
NONE = 0
LOCALHOST = 1
LOCAL_SUBNET = 2
EXTERNAL = 4
SECURE = 8
IN_SECURE = 16
ANY_SECURITY_MODE = 24
HTTP_HEAD = 32
HTTP_GET = 64
HTTP_POST = 128
HTTP_PUT = 256
HTTP_DELETE = 512
HTTP_PATCH = 1024
HTTP_OPTIONS = 2048
HTTP_OTHER = 4096
ANY_HTTP_METHOD = 8160
ONE_WAY = 8192
REPLY = 16384
ANY_CALL_STYLE = 24576
SOAP11 = 32768
SOAP12 = 65536
XML = 131072
JSON = 262144
JSV = 524288
PROTO_BUF = 1048576
CSV = 2097152
HTML = 4194304
WIRE = 8388608
MSG_PACK = 16777216
FORMAT_OTHER = 33554432
ANY_FORMAT = 67076096
HTTP = 67108864
MESSAGE_QUEUE = 134217728
TCP = 268435456
GRPC = 536870912
ENDPOINT_OTHER = 1073741824
ANY_ENDPOINT = 2080374784
IN_PROCESS = -2147483648
INTERNAL_NETWORK_ACCESS = -2147483645
ANY_NETWORK_ACCESS_TYPE = -2147483641
ANY = -1
class IRequestPreferences:
accepts_brotli: Optional[bool] = None
accepts_deflate: Optional[bool] = None
accepts_gzip: Optional[bool] = None
class IRequest:
original_request: Optional[Object] = None
response: Optional[IResponse] = None
operation_name: Optional[str] = None
verb: Optional[str] = None
request_attributes: Optional[RequestAttributes] = None
request_preferences: Optional[IRequestPreferences] = None
dto: Optional[Object] = None
content_type: Optional[str] = None
is_local: Optional[bool] = None
user_agent: Optional[str] = None
cookies: Optional[Dict[str, Cookie]] = None
response_content_type: Optional[str] = None
has_explicit_response_content_type: Optional[bool] = None
items: Optional[Dict[str, Object]] = None
headers: Optional[NameValueCollection] = None
query_string: Optional[NameValueCollection] = None
form_data: Optional[NameValueCollection] = None
use_buffered_stream: Optional[bool] = None
raw_url: Optional[str] = None
absolute_uri: Optional[str] = None
user_host_address: Optional[str] = None
remote_ip: Optional[str] = None
authorization: Optional[str] = None
is_secure_connection: Optional[bool] = None
accept_types: Optional[List[str]] = None
path_info: Optional[str] = None
original_path_info: Optional[str] = None
input_stream: Optional[bytes] = None
content_length: Optional[int] = None
files: Optional[List[IHttpFile]] = None
url_referrer: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HttpResult:
response_text: Optional[str] = None
response_stream: Optional[bytes] = None
file_info: Optional[FileInfo] = None
virtual_file: Optional[IVirtualFile] = None
content_type: Optional[str] = None
headers: Optional[Dict[str, str]] = None
cookies: Optional[List[Cookie]] = None
e_tag: Optional[str] = None
age: Optional[datetime.timedelta] = None
max_age: Optional[datetime.timedelta] = None
expires: Optional[datetime.datetime] = None
last_modified: Optional[datetime.datetime] = None
cache_control: Optional[CacheControl] = None
result_scope: Optional[Func[IDisposable]] = None
allows_partial_response: Optional[bool] = None
options: Optional[Dict[str, str]] = None
status: Optional[int] = None
status_code: Optional[HttpStatusCode] = None
status_description: Optional[str] = None
response: Optional[Object] = None
response_filter: Optional[IContentTypeWriter] = None
request_context: Optional[IRequest] = None
view: Optional[str] = None
template: Optional[str] = None
padding_length: Optional[int] = None
is_partial_request: Optional[bool] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Member(Member):
id: Optional[str] = None
email: Optional[str] = None
employee_guid_string: Optional[str] = None
ignore_gender: Optional[bool] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MemberValidateReq:
member: Optional[Member] = None
class IHttpFile:
name: Optional[str] = None
file_name: Optional[str] = None
content_length: Optional[int] = None
content_type: Optional[str] = None
input_stream: Optional[bytes] = None
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 /member/validate HTTP/1.1
Host: hcbtas-q-albamfs-api.azurewebsites.net
Accept: application/json
Content-Type: application/json
Content-Length: length
{"member":{"userId":"String","systemId":"String","schemeCode":"String","sessionId":"String","clientId":"String","clientCode":"String","isDefault":false,"groupId":"String","groupNameUpper":"String","appName":"String","appNameUpper":"String","key":"String","keyUpper":"String","country":"String","locale":"String","ccy":"String","cdy":"String","status":"String","statusCode":"String","category":"String","scheme":"String","primarySalary":"String","email":"String","employer":{"id":"String","code":"String","name":"String","logo":"String","config":{}},"roles":0,"asAt":"0001-01-01T00:00:00.0000000","calcDate":"0001-01-01T00:00:00.0000000","nextEOFY":"0001-06-30T00:00:00.0000000","periodToNextEOFY":0.5,"year":0,"hasPartner":false,"includePartner":false,"includePartnerInCalc":false,"homeOwner":false,"targetAge":0,"targetTime":0,"targetIncomeR":0,"targetIncomeRFreq":0,"targetIncomeRAnnual":0,"targetP":0,"includeSS":false,"firstName":"String","lastName":"String","gender":"Female","dob":"0001-01-01T00:00:00.0000000","salary":0,"people":[{"type":"Primary","index":0,"firstName":"String","lastName":"String","gender":"Female","isAgeInput":false,"dob":"0001-01-01T00:00:00.0000000","age":0,"exactAge":0,"ageAtLast30June":0,"privateHealthInsurance":false,"serviceDate":"0001-01-01T00:00:00.0000000","service":0,"intService":0,"ageR":0,"ageRMonths":0,"email":"String","salaries":{"String":{"type":"String","ccy":"String","amount":0,"freq":0,"annualAmount":0,"indexType":"String","salaryChanges":[{"fromAge":0,"amount":0}]}},"salary":0,"salaryFreq":0,"salaryChangeSeries":[0],"hasOtherIncome":false,"otherIncome":[{"name":"String","type":"Pension","amount":0,"fromAge":0,"toAge":0,"isTaxable":false,"isVector":false,"vector":[0],"custom":{"String":"String"},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"socialSecurity":{"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"},"taxableDeductions":0,"nonTaxableDeductions":0,"careerChanges":{"willTake":false,"breaks":[{"fromAge":0,"toAge":0,"workingRate":0}],"careerBreakSeries":[0],"totalYears":0},"custom":{"String":"String"},"salaryKey":"String","annualProjectibleSalary":0,"projectionBreakdownCode":"Salary You","lookup":"Salary You:Primary","ssBreakdownCode":"SocialSecurityYou","ssLookup":"SocialSecurityYou:Primary","asAt":"0001-01-01T00:00:00.0000000","intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"assets":[{"type":"FinAsset","owner":"Primary","code":"String","assetIndex":0,"lookup":"String:Primary:0","name":"String","ccy":"String","value":0,"change":0,"transferTo":0,"transferAge":0,"willSpend":false,"minRule":"NoMinimum","maxRule":"NoMaximum","ssTreatment":"Exempt","spendOnAnnuity":false,"contTaxRate":0,"totalConts":0,"usePreCalculatedContributions":false,"totalContributions":[[0]],"futureAllocations":[[{"String":0}]],"assetType":"FinAsset","totalContsFreq":1,"totalLumpSumConts":0,"contributions":[{"code":"String","index":0,"name":"String","ccy":"String","contTable":"String","isEmployeeCont":false,"employerFlag":false,"type":"Fixed","linkedContIndex":0,"sourceRate":"String","isTaxable":false,"amount":0,"coreAmount":0,"freq":0,"rate":0,"coreRate":0,"fromAge":0,"toAge":0,"salary":0,"annualAmount":0,"annualCoreAmount":0,"isAlwaysOneOff":false,"isOneOff":true,"constraintType":"LumpSum","custom":{"String":"String"},"memberRateLookup":{"0":0},"isFromSalary":false,"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"fees":[{"name":"String","ccy":"String","amount":0,"freq":0,"annualAmount":0,"rate":0,"isTaxable":false,"fromAge":0,"toAge":0,"custom":{"String":"String"},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"feeCapArrangements":[{"name":"String","amount":0,"indexationRateSeries":0,"rate":0,"feesIncluded":[0],"fromTime":0,"toTime":0,"custom":{"String":"String"},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"custom":{"String":"String"},"rebalance":false,"retLumpSum":false,"allocSeries":[{"current":{"String":0},"future":{"String":0}}],"currentAssetClassAllocSeries":{"0":{"String":0}},"futureAssetClassAllocSeries":{"0":{"String":0}},"ratesSource":"DB","alloc":[{"name":"String","fromAge":0,"optAlloc":{"current":{"String":0},"future":{"String":0}},"currentAssetClassAlloc":{"String":0},"futureAssetClassAlloc":{"String":0},"totalCurrentAlloc":0,"totalFutureAlloc":0}],"allocKeys":["String"],"returns":{"String":[{"name":"String","fromAge":0,"earningRate":0,"taxRate":0,"returnRate":0}]},"returnRates":{"String":{"earningRates":[0],"taxRates":[0]}},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"includeAnnuities":false,"annuities":[{"priceType":"Calc","price":0,"owner":"Primary","gender":"Female","ownerAge":0,"spouseAge":0,"type":"Deferred","purchaseType":"Perc","purchaseAmount":0,"percBalanceSpent":0,"amountSpent":0,"incomePurchased":0,"purchaseAge":0,"deferralPeriod":0,"indexationName":"String","drStochastic":"String","impliedInflationStochasticSeries":"String","reversion":0,"guarantee":0,"timing":0,"scaleQx":0,"scaleQxPartner":0,"scaleImpr":0,"scaleImprPartner":0,"ageRating":0,"spouseAgeRating":0,"custom":{"String":"String"},"tableName":"String","tableNamePartner":"String","imprFactorTableName":"String","imprFactorTableNamePartner":"String","hasPartnerTables":true,"spouseAgeAtPurchase":0,"expense":0,"cacheKey":"LifeTables-String-String","partnerCacheKey":"LifeTables-String-String","targetTpx":0,"paymentTerm":0,"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"spending":{"selected":"String","willChangeLate":false,"ageRLate":0,"selectedLate":"String","goals":[{"name":"String","amount":0,"freq":0,"effectiveFreq":1,"excludeFromProjection":false,"fromAge":0,"toAge":0,"selectedPersonalised":"String","tag":"String","custom":{"String":"String"},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"lumpSumType":"Perc","lumpSumRate":0,"lumpSumAmount":0,"count":1,"custom":{"String":"String"},"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"},"investmentProperties":[{"owner":"Primary","value":0,"rentYield":0,"expense":0,"downsize":0,"downsizeAge":0,"downsizeToAsset":0,"rates":0,"lookup":"Prop:Primary","asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"}],"incomeVectors":{"String":[0]},"config":{"country":"String","clientCode":"String","isStochastic":false,"stochasticLoopType":"Parallel","stochProjServiceLoc":"WebServer","stochProjSvcCallType":"Sync","dataSet":"String","solveTarget":"NA","solveTolerance":0,"indexationRatesSource":"DB","discRatesSource":"DB","returnRatesSource":"DB","deterministicSim":0,"stochasticSim":0,"simCount":0,"simsToIncludeDetails":[0],"includeBalArray":false,"includeProjectionInStochasticResult":false,"includeFirstProjectionInStochasticResult":false,"usesStochasticData":true,"includeAllSpendingResult":false,"includeAllContributionProjectionResult":false,"includeAllAssetsProjectionResults":false,"includeAllSummaryProjectionResult":false,"includePreCalculatedContributionsInResponse":false,"includedProjections":["String"]},"indexation":[{"name":"String","fromAge":0,"rate":0}],"annuityDisc":[{"name":"String","fromAge":0,"rate":0}],"indexationRates":{"String":[0]},"annuityDiscRates":{"String":[0]},"balance":0,"planSomeValue":"String","flag1":false,"flag2":true,"isFriendly":true,"financingOption":"String","totalYears":7,"totalLoopYears":100,"age":0,"ageR":0,"intAge":0,"indexType":"String","indexTypePre":"String","indexTypePost":"String","deflationType":"String","custom":{"String":"String"},"countryCalcConfig":{},"summary":{"age":0,"salary":0,"balance":0,"invOption":"String","contributions":[{"code":"String","name":"String","assetCode":"String","assetName":"String","isEmployeeCont":false,"amount":0,"freq":0,"rate":0}]},"lastModified":"0001-01-01T00:00:00.0000000","isReturningUser":false,"clientCountryConfigCacheKey":"ClientCountryConfig-String-String","personalAssets":0,"resultsSummary":{"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"},"totalContribution":{"asAt":"0001-01-01T00:00:00.0000000","age":0,"intAge":0,"year":0,"periodToNextEOFY":0.5,"indexType":"String","deflationType":"String","indexTypePre":"String","indexTypePost":"String"},"id":"String"}}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {}