AlbaApi

<back to all web services

MemberValidateReq

The following routes are available for this service:
POST/member/validate
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    public static class MemberValidateReq
    {
        public Member member = null;
        
        public Member getMember() { return member; }
        public MemberValidateReq setMember(Member value) { this.member = value; return this; }
    }

    public static class Member extends Member
    {
        public String id = null;
        public String email = null;
        public String employeeGuidString = null;
        public Boolean ignoreGender = null;
        
        public String getId() { return id; }
        public Member setId(String value) { this.id = value; return this; }
        public String getEmail() { return email; }
        public Member setEmail(String value) { this.email = value; return this; }
        public String getEmployeeGuidString() { return employeeGuidString; }
        public Member setEmployeeGuidString(String value) { this.employeeGuidString = value; return this; }
        public Boolean isIgnoreGender() { return ignoreGender; }
        public Member setIgnoreGender(Boolean value) { this.ignoreGender = value; return this; }
    }

    public static class HttpResult
    {
        public String responseText = null;
        public InputStream responseStream = null;
        public FileInfo fileInfo = null;
        public IVirtualFile virtualFile = null;
        public String contentType = null;
        public HashMap<String,String> headers = null;
        public ArrayList<Cookie> cookies = null;
        public String eTag = null;
        public TimeSpan age = null;
        public TimeSpan maxAge = null;
        public Date expires = null;
        public Date lastModified = null;
        public CacheControl cacheControl = null;
        public Func<IDisposable> resultScope = null;
        public Boolean allowsPartialResponse = null;
        public HashMap<String,String> options = null;
        public Integer status = null;
        public HttpStatusCode statusCode = null;
        public String statusDescription = null;
        public Object response = null;
        public IContentTypeWriter responseFilter = null;
        public IRequest requestContext = null;
        public String view = null;
        public String template = null;
        public Integer paddingLength = null;
        public Boolean isPartialRequest = null;
        
        public String getResponseText() { return responseText; }
        public HttpResult setResponseText(String value) { this.responseText = value; return this; }
        public InputStream getResponseStream() { return responseStream; }
        public HttpResult setResponseStream(InputStream value) { this.responseStream = value; return this; }
        public FileInfo getFileInfo() { return fileInfo; }
        public HttpResult setFileInfo(FileInfo value) { this.fileInfo = value; return this; }
        public IVirtualFile getVirtualFile() { return virtualFile; }
        public HttpResult setVirtualFile(IVirtualFile value) { this.virtualFile = value; return this; }
        public String getContentType() { return contentType; }
        public HttpResult setContentType(String value) { this.contentType = value; return this; }
        public HashMap<String,String> getHeaders() { return headers; }
        public HttpResult setHeaders(HashMap<String,String> value) { this.headers = value; return this; }
        public ArrayList<Cookie> getCookies() { return cookies; }
        public HttpResult setCookies(ArrayList<Cookie> value) { this.cookies = value; return this; }
        public String getETag() { return eTag; }
        public HttpResult setETag(String value) { this.eTag = value; return this; }
        public TimeSpan getAge() { return age; }
        public HttpResult setAge(TimeSpan value) { this.age = value; return this; }
        public TimeSpan getMaxAge() { return maxAge; }
        public HttpResult setMaxAge(TimeSpan value) { this.maxAge = value; return this; }
        public Date getExpires() { return expires; }
        public HttpResult setExpires(Date value) { this.expires = value; return this; }
        public Date getLastModified() { return lastModified; }
        public HttpResult setLastModified(Date value) { this.lastModified = value; return this; }
        public CacheControl getCacheControl() { return cacheControl; }
        public HttpResult setCacheControl(CacheControl value) { this.cacheControl = value; return this; }
        public Func<IDisposable> getResultScope() { return resultScope; }
        public HttpResult setResultScope(Func<IDisposable> value) { this.resultScope = value; return this; }
        public Boolean isAllowsPartialResponse() { return allowsPartialResponse; }
        public HttpResult setAllowsPartialResponse(Boolean value) { this.allowsPartialResponse = value; return this; }
        public HashMap<String,String> getOptions() { return options; }
        public HttpResult setOptions(HashMap<String,String> value) { this.options = value; return this; }
        public Integer getStatus() { return status; }
        public HttpResult setStatus(Integer value) { this.status = value; return this; }
        public HttpStatusCode getStatusCode() { return statusCode; }
        public HttpResult setStatusCode(HttpStatusCode value) { this.statusCode = value; return this; }
        public String getStatusDescription() { return statusDescription; }
        public HttpResult setStatusDescription(String value) { this.statusDescription = value; return this; }
        public Object getResponse() { return response; }
        public HttpResult setResponse(Object value) { this.response = value; return this; }
        public IContentTypeWriter getResponseFilter() { return responseFilter; }
        public HttpResult setResponseFilter(IContentTypeWriter value) { this.responseFilter = value; return this; }
        public IRequest getRequestContext() { return requestContext; }
        public HttpResult setRequestContext(IRequest value) { this.requestContext = value; return this; }
        public String getView() { return view; }
        public HttpResult setView(String value) { this.view = value; return this; }
        public String getTemplate() { return template; }
        public HttpResult setTemplate(String value) { this.template = value; return this; }
        public Integer getPaddingLength() { return paddingLength; }
        public HttpResult setPaddingLength(Integer value) { this.paddingLength = value; return this; }
        public Boolean getIsPartialRequest() { return isPartialRequest; }
        public HttpResult setIsPartialRequest(Boolean value) { this.isPartialRequest = value; return this; }
    }

    public static interface IVirtualFile
    {
        public IVirtualPathProvider virtualPathProvider = null;
        public String extension = null;
        public Long length = null;
    }

    public static interface IVirtualPathProvider
    {
        public IVirtualDirectory rootDirectory = null;
        public String virtualPathSeparator = null;
        public String realPathSeparator = null;
    }

    public static interface IVirtualDirectory
    {
    }

    @Flags()
    public static enum CacheControl
    {
        @SerializedName("0") None(0),
        @SerializedName("1") Public(1),
        @SerializedName("2") Private(2),
        @SerializedName("4") MustRevalidate(4),
        @SerializedName("8") NoCache(8),
        @SerializedName("16") NoStore(16),
        @SerializedName("32") NoTransform(32),
        @SerializedName("64") ProxyRevalidate(64);

        private final int value;
        CacheControl(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static interface IContentTypeWriter
    {
    }

    public static interface IRequest
    {
        public Object originalRequest = null;
        public IResponse response = null;
        public String operationName = null;
        public String verb = null;
        public RequestAttributes requestAttributes = null;
        public IRequestPreferences requestPreferences = null;
        public Object dto = null;
        public String contentType = null;
        public Boolean isLocal = null;
        public String userAgent = null;
        public HashMap<String,Cookie> cookies = null;
        public String responseContentType = null;
        public Boolean hasExplicitResponseContentType = null;
        public HashMap<String,Object> items = null;
        public NameValueCollection headers = null;
        public NameValueCollection queryString = null;
        public NameValueCollection formData = null;
        public Boolean useBufferedStream = null;
        public String rawUrl = null;
        public String absoluteUri = null;
        public String userHostAddress = null;
        public String remoteIp = null;
        public String authorization = null;
        public Boolean isSecureConnection = null;
        public ArrayList<String> acceptTypes = null;
        public String pathInfo = null;
        public String originalPathInfo = null;
        public InputStream inputStream = null;
        public Long contentLength = null;
        public ArrayList<IHttpFile> files = null;
        public Uri urlReferrer = null;
    }

    public static interface IResponse
    {
        public Object originalResponse = null;
        public IRequest request = null;
        public Integer statusCode = null;
        public String statusDescription = null;
        public String contentType = null;
        public InputStream outputStream = null;
        public Object dto = null;
        public Boolean useBufferedStream = null;
        public Boolean isClosed = null;
        public Boolean keepAlive = null;
        public Boolean hasStarted = null;
        public HashMap<String,Object> items = null;
    }

    @Flags()
    public static enum RequestAttributes
    {
        @SerializedName("0") None(0),
        @SerializedName("1") Localhost(1),
        @SerializedName("2") LocalSubnet(2),
        @SerializedName("4") External(4),
        @SerializedName("8") Secure(8),
        @SerializedName("16") InSecure(16),
        @SerializedName("24") AnySecurityMode(24),
        @SerializedName("32") HttpHead(32),
        @SerializedName("64") HttpGet(64),
        @SerializedName("128") HttpPost(128),
        @SerializedName("256") HttpPut(256),
        @SerializedName("512") HttpDelete(512),
        @SerializedName("1024") HttpPatch(1024),
        @SerializedName("2048") HttpOptions(2048),
        @SerializedName("4096") HttpOther(4096),
        @SerializedName("8160") AnyHttpMethod(8160),
        @SerializedName("8192") OneWay(8192),
        @SerializedName("16384") Reply(16384),
        @SerializedName("24576") AnyCallStyle(24576),
        @SerializedName("32768") Soap11(32768),
        @SerializedName("65536") Soap12(65536),
        @SerializedName("131072") Xml(131072),
        @SerializedName("262144") Json(262144),
        @SerializedName("524288") Jsv(524288),
        @SerializedName("1048576") ProtoBuf(1048576),
        @SerializedName("2097152") Csv(2097152),
        @SerializedName("4194304") Html(4194304),
        @SerializedName("8388608") Wire(8388608),
        @SerializedName("16777216") MsgPack(16777216),
        @SerializedName("33554432") FormatOther(33554432),
        @SerializedName("67076096") AnyFormat(67076096),
        @SerializedName("67108864") Http(67108864),
        @SerializedName("134217728") MessageQueue(134217728),
        @SerializedName("268435456") Tcp(268435456),
        @SerializedName("536870912") Grpc(536870912),
        @SerializedName("1073741824") EndpointOther(1073741824),
        @SerializedName("2080374784") AnyEndpoint(2080374784),
        @SerializedName("-2147483648") InProcess(-2147483648),
        @SerializedName("-2147483645") InternalNetworkAccess(-2147483645),
        @SerializedName("-2147483641") AnyNetworkAccessType(-2147483641),
        @SerializedName("-1") Any(-1);

        private final int value;
        RequestAttributes(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static interface IRequestPreferences
    {
        public Boolean acceptsBrotli = null;
        public Boolean acceptsDeflate = null;
        public Boolean acceptsGzip = null;
    }

    public static interface IHttpFile
    {
        public String name = null;
        public String fileName = null;
        public Long contentLength = null;
        public String contentType = null;
        public InputStream inputStream = null;
    }

}

Java MemberValidateReq DTOs

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

HTTP + 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

{
	
}