POST | /member/validate |
---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
abstract class IVirtualDirectory
{
}
abstract class IVirtualPathProvider
{
IVirtualDirectory? rootDirectory;
String? virtualPathSeparator;
String? realPathSeparator;
}
abstract class IVirtualFile
{
IVirtualPathProvider? virtualPathProvider;
String? extension;
int? length;
}
// @flags()
class CacheControl
{
static const CacheControl None = const CacheControl._(0);
static const CacheControl Public = const CacheControl._(1);
static const CacheControl Private = const CacheControl._(2);
static const CacheControl MustRevalidate = const CacheControl._(4);
static const CacheControl NoCache = const CacheControl._(8);
static const CacheControl NoStore = const CacheControl._(16);
static const CacheControl NoTransform = const CacheControl._(32);
static const CacheControl ProxyRevalidate = const CacheControl._(64);
final int _value;
const CacheControl._(this._value);
int get value => _value;
static List<CacheControl> get values => const [None,Public,Private,MustRevalidate,NoCache,NoStore,NoTransform,ProxyRevalidate];
}
abstract class IContentTypeWriter
{
}
abstract class IResponse
{
dynamic? originalResponse;
IRequest? request;
int? statusCode;
String? statusDescription;
String? contentType;
Uint8List? outputStream;
dynamic? dto;
bool? useBufferedStream;
bool? isClosed;
bool? keepAlive;
bool? hasStarted;
Map<String,dynamic?>? items;
}
// @flags()
class RequestAttributes
{
static const RequestAttributes None = const RequestAttributes._(0);
static const RequestAttributes Localhost = const RequestAttributes._(1);
static const RequestAttributes LocalSubnet = const RequestAttributes._(2);
static const RequestAttributes External = const RequestAttributes._(4);
static const RequestAttributes Secure = const RequestAttributes._(8);
static const RequestAttributes InSecure = const RequestAttributes._(16);
static const RequestAttributes AnySecurityMode = const RequestAttributes._(24);
static const RequestAttributes HttpHead = const RequestAttributes._(32);
static const RequestAttributes HttpGet = const RequestAttributes._(64);
static const RequestAttributes HttpPost = const RequestAttributes._(128);
static const RequestAttributes HttpPut = const RequestAttributes._(256);
static const RequestAttributes HttpDelete = const RequestAttributes._(512);
static const RequestAttributes HttpPatch = const RequestAttributes._(1024);
static const RequestAttributes HttpOptions = const RequestAttributes._(2048);
static const RequestAttributes HttpOther = const RequestAttributes._(4096);
static const RequestAttributes AnyHttpMethod = const RequestAttributes._(8160);
static const RequestAttributes OneWay = const RequestAttributes._(8192);
static const RequestAttributes Reply = const RequestAttributes._(16384);
static const RequestAttributes AnyCallStyle = const RequestAttributes._(24576);
static const RequestAttributes Soap11 = const RequestAttributes._(32768);
static const RequestAttributes Soap12 = const RequestAttributes._(65536);
static const RequestAttributes Xml = const RequestAttributes._(131072);
static const RequestAttributes Json = const RequestAttributes._(262144);
static const RequestAttributes Jsv = const RequestAttributes._(524288);
static const RequestAttributes ProtoBuf = const RequestAttributes._(1048576);
static const RequestAttributes Csv = const RequestAttributes._(2097152);
static const RequestAttributes Html = const RequestAttributes._(4194304);
static const RequestAttributes Wire = const RequestAttributes._(8388608);
static const RequestAttributes MsgPack = const RequestAttributes._(16777216);
static const RequestAttributes FormatOther = const RequestAttributes._(33554432);
static const RequestAttributes AnyFormat = const RequestAttributes._(67076096);
static const RequestAttributes Http = const RequestAttributes._(67108864);
static const RequestAttributes MessageQueue = const RequestAttributes._(134217728);
static const RequestAttributes Tcp = const RequestAttributes._(268435456);
static const RequestAttributes Grpc = const RequestAttributes._(536870912);
static const RequestAttributes EndpointOther = const RequestAttributes._(1073741824);
static const RequestAttributes AnyEndpoint = const RequestAttributes._(2080374784);
static const RequestAttributes InProcess = const RequestAttributes._(-2147483648);
static const RequestAttributes InternalNetworkAccess = const RequestAttributes._(-2147483645);
static const RequestAttributes AnyNetworkAccessType = const RequestAttributes._(-2147483641);
static const RequestAttributes Any = const RequestAttributes._(-1);
final int _value;
const RequestAttributes._(this._value);
int get value => _value;
static List<RequestAttributes> get values => const [None,Localhost,LocalSubnet,External,Secure,InSecure,AnySecurityMode,HttpHead,HttpGet,HttpPost,HttpPut,HttpDelete,HttpPatch,HttpOptions,HttpOther,AnyHttpMethod,OneWay,Reply,AnyCallStyle,Soap11,Soap12,Xml,Json,Jsv,ProtoBuf,Csv,Html,Wire,MsgPack,FormatOther,AnyFormat,Http,MessageQueue,Tcp,Grpc,EndpointOther,AnyEndpoint,InProcess,InternalNetworkAccess,AnyNetworkAccessType,Any];
}
abstract class IRequestPreferences
{
bool? acceptsBrotli;
bool? acceptsDeflate;
bool? acceptsGzip;
}
abstract class IRequest
{
dynamic? originalRequest;
IResponse? response;
String? operationName;
String? verb;
RequestAttributes? requestAttributes;
IRequestPreferences? requestPreferences;
dynamic? dto;
String? contentType;
bool? isLocal;
String? userAgent;
Map<String,Cookie?>? cookies;
String? responseContentType;
bool? hasExplicitResponseContentType;
Map<String,dynamic?>? items;
NameValueCollection? headers;
NameValueCollection? queryString;
NameValueCollection? formData;
bool? useBufferedStream;
String? rawUrl;
String? absoluteUri;
String? userHostAddress;
String? remoteIp;
String? authorization;
bool? isSecureConnection;
List<String>? acceptTypes;
String? pathInfo;
String? originalPathInfo;
Uint8List? inputStream;
int? contentLength;
List<IHttpFile>? files;
Uri? urlReferrer;
}
class HttpResult implements IConvertible
{
String? responseText;
Uint8List? responseStream;
FileInfo? fileInfo;
IVirtualFile? virtualFile;
String? contentType;
Map<String,String?>? headers;
List<Cookie>? cookies;
String? eTag;
Duration? age;
Duration? maxAge;
DateTime? expires;
DateTime? lastModified;
CacheControl? cacheControl;
Func<IDisposable>? resultScope;
bool? allowsPartialResponse;
Map<String,String?>? options;
int? status;
HttpStatusCode? statusCode;
String? statusDescription;
dynamic? response;
IContentTypeWriter? responseFilter;
IRequest? requestContext;
String? view;
String? template;
int? paddingLength;
bool? isPartialRequest;
HttpResult({this.responseText,this.responseStream,this.fileInfo,this.virtualFile,this.contentType,this.headers,this.cookies,this.eTag,this.age,this.maxAge,this.expires,this.lastModified,this.cacheControl,this.resultScope,this.allowsPartialResponse,this.options,this.status,this.statusCode,this.statusDescription,this.response,this.responseFilter,this.requestContext,this.view,this.template,this.paddingLength,this.isPartialRequest});
HttpResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
responseText = json['responseText'];
responseStream = JsonConverters.fromJson(json['responseStream'],'Uint8List',context!);
fileInfo = JsonConverters.fromJson(json['fileInfo'],'FileInfo',context!);
virtualFile = JsonConverters.fromJson(json['virtualFile'],'IVirtualFile',context!);
contentType = json['contentType'];
headers = JsonConverters.toStringMap(json['headers']);
cookies = JsonConverters.fromJson(json['cookies'],'List<Cookie>',context!);
eTag = json['eTag'];
age = JsonConverters.fromJson(json['age'],'Duration',context!);
maxAge = JsonConverters.fromJson(json['maxAge'],'Duration',context!);
expires = JsonConverters.fromJson(json['expires'],'DateTime',context!);
lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!);
cacheControl = JsonConverters.fromJson(json['cacheControl'],'CacheControl',context!);
resultScope = JsonConverters.fromJson(json['resultScope'],'Func<IDisposable>',context!);
allowsPartialResponse = json['allowsPartialResponse'];
options = JsonConverters.fromJson(json['options'],'Map<String,String?>',context!);
status = json['status'];
statusCode = JsonConverters.fromJson(json['statusCode'],'HttpStatusCode',context!);
statusDescription = json['statusDescription'];
response = JsonConverters.fromJson(json['response'],'dynamic',context!);
responseFilter = JsonConverters.fromJson(json['responseFilter'],'IContentTypeWriter',context!);
requestContext = JsonConverters.fromJson(json['requestContext'],'IRequest',context!);
view = json['view'];
template = json['template'];
paddingLength = json['paddingLength'];
isPartialRequest = json['isPartialRequest'];
return this;
}
Map<String, dynamic> toJson() => {
'responseText': responseText,
'responseStream': JsonConverters.toJson(responseStream,'Uint8List',context!),
'fileInfo': JsonConverters.toJson(fileInfo,'FileInfo',context!),
'virtualFile': JsonConverters.toJson(virtualFile,'IVirtualFile',context!),
'contentType': contentType,
'headers': headers,
'cookies': JsonConverters.toJson(cookies,'List<Cookie>',context!),
'eTag': eTag,
'age': JsonConverters.toJson(age,'Duration',context!),
'maxAge': JsonConverters.toJson(maxAge,'Duration',context!),
'expires': JsonConverters.toJson(expires,'DateTime',context!),
'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!),
'cacheControl': JsonConverters.toJson(cacheControl,'CacheControl',context!),
'resultScope': JsonConverters.toJson(resultScope,'Func<IDisposable>',context!),
'allowsPartialResponse': allowsPartialResponse,
'options': JsonConverters.toJson(options,'Map<String,String?>',context!),
'status': status,
'statusCode': JsonConverters.toJson(statusCode,'HttpStatusCode',context!),
'statusDescription': statusDescription,
'response': JsonConverters.toJson(response,'dynamic',context!),
'responseFilter': JsonConverters.toJson(responseFilter,'IContentTypeWriter',context!),
'requestContext': JsonConverters.toJson(requestContext,'IRequest',context!),
'view': view,
'template': template,
'paddingLength': paddingLength,
'isPartialRequest': isPartialRequest
};
getTypeName() => "HttpResult";
TypeContext? context = _ctx;
}
class Member extends Member implements IConvertible
{
String? id;
String? email;
String? employeeGuidString;
bool? ignoreGender;
Member({this.id,this.email,this.employeeGuidString,this.ignoreGender});
Member.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
email = json['email'];
employeeGuidString = json['employeeGuidString'];
ignoreGender = json['ignoreGender'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'email': email,
'employeeGuidString': employeeGuidString,
'ignoreGender': ignoreGender
});
getTypeName() => "Member";
TypeContext? context = _ctx;
}
class MemberValidateReq implements IConvertible
{
Member? member;
MemberValidateReq({this.member});
MemberValidateReq.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
member = JsonConverters.fromJson(json['member'],'Member',context!);
return this;
}
Map<String, dynamic> toJson() => {
'member': JsonConverters.toJson(member,'Member',context!)
};
getTypeName() => "MemberValidateReq";
TypeContext? context = _ctx;
}
abstract class IHttpFile
{
String? name;
String? fileName;
int? contentLength;
String? contentType;
Uint8List? inputStream;
}
TypeContext _ctx = TypeContext(library: 'hcbtas_q_albamfs_api.azurewebsites.net', types: <String, TypeInfo> {
'IVirtualDirectory': TypeInfo(TypeOf.Interface),
'IVirtualPathProvider': TypeInfo(TypeOf.Interface),
'IVirtualFile': TypeInfo(TypeOf.Interface),
'CacheControl': TypeInfo(TypeOf.Enum, enumValues:CacheControl.values),
'IContentTypeWriter': TypeInfo(TypeOf.Interface),
'IResponse': TypeInfo(TypeOf.Interface),
'RequestAttributes': TypeInfo(TypeOf.Enum, enumValues:RequestAttributes.values),
'IRequestPreferences': TypeInfo(TypeOf.Interface),
'IRequest': TypeInfo(TypeOf.Interface),
'HttpResult': TypeInfo(TypeOf.Class, create:() => HttpResult()),
'Uint8List': TypeInfo(TypeOf.Class, create:() => Uint8List(0)),
'FileInfo': TypeInfo(TypeOf.Class, create:() => FileInfo()),
'List<Cookie>': TypeInfo(TypeOf.Class, create:() => <Cookie>[]),
'Cookie': TypeInfo(TypeOf.Class, create:() => Cookie()),
'Func<IDisposable>': TypeInfo(TypeOf.Class, create:() => Func<IDisposable>()),
'IDisposable': TypeInfo(TypeOf.Class, create:() => IDisposable()),
'Map<String,String?>': TypeInfo(TypeOf.Class, create:() => Map<String,String?>()),
'HttpStatusCode': TypeInfo(TypeOf.Class, create:() => HttpStatusCode()),
'Member': TypeInfo(TypeOf.Class, create:() => Member()),
'MemberValidateReq': TypeInfo(TypeOf.Class, create:() => MemberValidateReq()),
'IHttpFile': TypeInfo(TypeOf.Interface),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
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: text/jsv
Content-Type: text/jsv
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-01,
calcDate: 0001-01-01,
nextEOFY: 0001-06-30,
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-01,
salary: 0,
people:
[
{
type: Primary,
index: 0,
firstName: String,
lastName: String,
gender: Female,
isAgeInput: False,
dob: 0001-01-01,
age: 0,
exactAge: 0,
ageAtLast30June: 0,
privateHealthInsurance: False,
serviceDate: 0001-01-01,
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-01,
age: 0,
intAge: 0,
year: 0,
periodToNextEOFY: 0.5,
indexType: String,
deflationType: String,
indexTypePre: String,
indexTypePost: String
}
],
socialSecurity:
{
asAt: 0001-01-01,
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-01,
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-01,
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-01,
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-01,
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-01,
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-01,
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-01,
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-01,
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-01,
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-01,
isReturningUser: False,
clientCountryConfigCacheKey: ClientCountryConfig-String-String,
personalAssets: 0,
resultsSummary:
{
asAt: 0001-01-01,
age: 0,
intAge: 0,
year: 0,
periodToNextEOFY: 0.5,
indexType: String,
deflationType: String,
indexTypePre: String,
indexTypePost: String
},
totalContribution:
{
asAt: 0001-01-01,
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: text/jsv Content-Length: length { }