Nephila RiskStore

<back to all web services

FindAnalysisRequest

General
Requires Authentication
Requires any of the roles:Riskstore.Write, Riskstore.Admin
The following routes are available for this service:
GET/api/riskstore/analysisSearch for analyses

// @DataContract
export class QueryBase
{
    // @DataMember(Order=1)
    public skip?: number;

    // @DataMember(Order=2)
    public take?: number;

    // @DataMember(Order=3)
    public orderBy: string;

    // @DataMember(Order=4)
    public orderByDesc: string;

    // @DataMember(Order=5)
    public include: string;

    // @DataMember(Order=6)
    public fields: string;

    // @DataMember(Order=7)
    public meta: { [index:string]: string; };

    public constructor(init?: Partial<QueryBase>) { (Object as any).assign(this, init); }
}

export class QueryDb<T> extends QueryBase
{

    public constructor(init?: Partial<QueryDb<T>>) { super(init); (Object as any).assign(this, init); }
}

export enum ResultOutputLevel
{
    NotSet = 'NotSet',
    PortfolioMetrics = 'PortfolioMetrics',
    Curve = 'Curve',
    YLT = 'YLT',
    TailIntensity = 'TailIntensity',
    DealYlt = 'DealYlt',
    DealElt = 'DealElt',
    DealEltWithIndustryLoss = 'DealEltWithIndustryLoss',
    PortfolioElt = 'PortfolioElt',
    PortfolioEltWithIndustryLoss = 'PortfolioEltWithIndustryLoss',
    EventSetGeneration = 'EventSetGeneration',
    PortfolioRaps = 'PortfolioRaps',
    DealRaps = 'DealRaps',
    PortfolioSepyIndustryLoss = 'PortfolioSepyIndustryLoss',
    DealSepyIndustryLoss = 'DealSepyIndustryLoss',
}

export enum ProcessingStatus
{
    New = 0,
    Processing = 1,
    Failed = 10,
    Successful = 20,
}

export class AnalysisPortfolioEventSetConfiguration implements IObjectWithId, IHasAnalysisId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public analysisId: number;

    // @DataMember(Order=3)
    public analysisConfigurationId: number;

    // @DataMember(Order=4)
    public portfolioName: string;

    // @DataMember(Order=5)
    public modelId: string;

    // @DataMember(Order=6)
    public rowIdentifier: string;

    public constructor(init?: Partial<AnalysisPortfolioEventSetConfiguration>) { (Object as any).assign(this, init); }
}

// @DataContract
export class AnalysisConfiguration implements IObjectWithId, IHasAnalysisId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public analysisId: number;

    // @DataMember(Order=3)
    public windowStartDate?: string;

    // @DataMember(Order=4)
    public windowEndDate?: string;

    // @DataMember(Order=5)
    public standardEnabled: boolean;

    // @DataMember(Order=6)
    public runOffEnabled: boolean;

    // @DataMember(Order=7)
    public aggregateEnabled: boolean;

    // @DataMember(Order=8)
    public occurrenceEnabled: boolean;

    // @DataMember(Order=9)
    public nettEnabled: boolean;

    // @DataMember(Order=10)
    public grossEnabled: boolean;

    // @DataMember(Order=11)
    public tailIntensityPercentageStart?: number;

    // @DataMember(Order=12)
    public tailIntensityPercentageEnd?: number;

    // @DataMember(Order=13)
    public metaRiskId: number;

    // @DataMember(Order=14)
    public outputLevel: ResultOutputLevel;

    // @DataMember(Order=15)
    public processingStatus: ProcessingStatus;

    // @DataMember(Order=16)
    public eventLossFloorStartRange?: number;

    // @DataMember(Order=17)
    public eventLossFloorEndRange?: number;

    // @DataMember(Order=18)
    public analysisPortfolioEventSetConfigurations: AnalysisPortfolioEventSetConfiguration[];

    // @DataMember(Order=19)
    public rowIdentifier: string;

    public constructor(init?: Partial<AnalysisConfiguration>) { (Object as any).assign(this, init); }
}

export enum TransactionType
{
    NotSet = 'NotSet',
    S = 'S',
    B = 'B',
}

// @DataContract
export class AnalysisPortfolioAllocation implements IObjectWithId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public analysisDealId: number;

    // @DataMember(Order=3)
    // @Validate(Validator="NotEmpty", Message="PortfolioName is mandatory")
    public portfolioName: string;

    // @DataMember(Order=4)
    public allocationPercentage: number;

    // @DataMember(Order=5)
    public rowIdentifier: string;

    public constructor(init?: Partial<AnalysisPortfolioAllocation>) { (Object as any).assign(this, init); }
}

// @DataContract
export class AnalysisDeal implements IObjectWithId, IHasAnalysisId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public analysisId: number;

    // @DataMember(Order=3)
    public sourceDealId: string;

    // @DataMember(Order=4)
    public dealRef: string;

    // @DataMember(Order=5)
    public sourceDealSystem: string;

    // @DataMember(Order=6)
    public eventSetId: number;

    // @DataMember(Order=7)
    public rol: number;

    // @DataMember(Order=8)
    public limit: number;

    // @DataMember(Order=9)
    public inceptionDate: string;

    // @DataMember(Order=10)
    public expiryDate: string;

    // @DataMember(Order=11)
    public transactionType: TransactionType;

    // @DataMember(Order=12)
    public allocations: AnalysisPortfolioAllocation[];

    // @DataMember(Order=13)
    public perspectiveIdOverride?: number;

    // @DataMember(Order=14)
    public eventSetIdOverride?: number;

    // @DataMember(Order=15)
    public modelAsOfDateOverride?: string;

    // @DataMember(Order=16)
    public sourceModelSystemOverride: string;

    // @DataMember(Order=17)
    public sourceModelIdOverride: string;

    // @DataMember(Order=18)
    public sourceEventSetIdOverride: string;

    // @DataMember(Order=19)
    public eventSourceSystemOverride: string;

    // @DataMember(Order=20)
    public rowIdentifier: string;

    public constructor(init?: Partial<AnalysisDeal>) { (Object as any).assign(this, init); }
}

// @DataContract
export class AnalysisEventIdFilter implements IObjectWithId, IHasAnalysisId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public analysisId: number;

    // @DataMember(Order=3)
    public eventSourceId: number;

    // @DataMember(Order=4)
    public eventId: number;

    // @DataMember(Order=5)
    public rowIdentifier: string;

    public constructor(init?: Partial<AnalysisEventIdFilter>) { (Object as any).assign(this, init); }
}

export enum MessageType
{
    NotSet = 'NotSet',
    Persistence = 'Persistence',
    Archival = 'Archival',
}

// @DataContract
export class MessageTracking
{
    // @DataMember(Order=1)
    public id: string;

    // @DataMember(Order=2)
    public analysisId?: number;

    // @DataMember(Order=3)
    public processingStatus: ProcessingStatus;

    // @DataMember(Order=4)
    public messageType: MessageType;

    // @DataMember(Order=5)
    public createdDateUtc: string;

    // @DataMember(Order=6)
    public updatedDateUtc: string;

    public constructor(init?: Partial<MessageTracking>) { (Object as any).assign(this, init); }
}

// @DataContract
export class Analysis implements IObjectWithId
{
    // @DataMember(Order=1)
    public id: number;

    // @DataMember(Order=2)
    public name: string;

    // @DataMember(Order=3)
    public modelAsOfDate?: string;

    // @DataMember(Order=4)
    public perspectiveId: number;

    // @DataMember(Order=5)
    public configurations: AnalysisConfiguration[];

    // @DataMember(Order=6)
    public deals: AnalysisDeal[];

    // @DataMember(Order=7)
    public eventIdFilters: AnalysisEventIdFilter[];

    // @DataMember(Order=8)
    public createdBy: string;

    // @DataMember(Order=9)
    public createdDateUtc: string;

    // @DataMember(Order=10)
    public completedDateUtc?: string;

    // @DataMember(Order=11)
    public legacyAnalysisId?: number;

    // @DataMember(Order=12)
    public resultPersistenceTracking: MessageTracking[];

    // @DataMember(Order=13)
    public processingStatus: ProcessingStatus;

    // @DataMember(Order=14)
    public saveResults: boolean;

    // @DataMember(Order=15)
    public eventSourceSystem: string;

    // @DataMember(Order=16)
    public updatedDateUtc: string;

    // @DataMember(Order=17)
    public isExpired: boolean;

    // @DataMember(Order=18)
    public rowIdentifier: string;

    // @DataMember(Order=19)
    public errorMessage: string;

    /** @description Take the minimum simulation count when we have different simulations between event sets */
    // @DataMember(Order=20)
    // @ApiMember(DataType="boolean", Description="Take the minimum simulation count when we have different simulations between event sets")
    public ignoreSimulationCountMismatch: boolean;

    // @DataMember(Order=21)
    // @Ignore()
    public finalStatus: ProcessingStatus;

    public constructor(init?: Partial<Analysis>) { (Object as any).assign(this, init); }
}

export class FindAnalysisRequest extends QueryDb<Analysis>
{
    /** @description The Ids of the Analyses */
    // @ApiMember(DataType="integer", Description="The Ids of the Analyses", Format="int64")
    public ids: number[];

    /** @description The partial name of the analyses */
    // @ApiMember(DataType="string", Description="The partial name of the analyses")
    public name: string;

    /** @description Filter only Standard analysis type */
    // @ApiMember(DataType="boolean", Description="Filter only Standard analysis type")
    public standardEnabled?: boolean;

    /** @description Filter only Run Off analysis type */
    // @ApiMember(DataType="boolean", Description="Filter only Run Off analysis type")
    public runOffEnabled?: boolean;

    /** @description The perspective id used for the analysis */
    // @ApiMember(DataType="integer", Description="The perspective id used for the analysis", Format="int32")
    public perspectiveId?: number;

    /** @description The partial name of the user who run the analysis */
    // @ApiMember(DataType="string", Description="The partial name of the user who run the analysis")
    public createdBy: string;

    /** @description The analysis run date to filter from */
    // @ApiMember(DataType="string", Description="The analysis run date to filter from", Format="date-time")
    public analysisRunFromDateTime?: string;

    /** @description The analysis run date to filter to */
    // @ApiMember(DataType="string", Description="The analysis run date to filter to", Format="date-time")
    public analysisRunToDateTime?: string;

    /** @description The status of the analysis. 1 = Processing, 10 = Failed, 20 = Successful */
    // @ApiMember(DataType="integer", Description="The status of the analysis. 1 = Processing, 10 = Failed, 20 = Successful", Format="int32")
    public processingStatus?: ProcessingStatus;

    public constructor(init?: Partial<FindAnalysisRequest>) { super(init); (Object as any).assign(this, init); }
}

// @DataContract
export class QueryResponse<T>
{
    // @DataMember(Order=1)
    public offset: number;

    // @DataMember(Order=2)
    public total: number;

    // @DataMember(Order=3)
    public results: Analysis[];

    // @DataMember(Order=4)
    public meta: { [index:string]: string; };

    // @DataMember(Order=5)
    public responseStatus: ResponseStatus;

    public constructor(init?: Partial<QueryResponse<T>>) { (Object as any).assign(this, init); }
}

TypeScript FindAnalysisRequest 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.

GET /api/riskstore/analysis HTTP/1.1 
Host: riskstoreng-dev.nephila.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	offset: 0,
	total: 0,
	results: 
	[
		{
			id: 0,
			name: String,
			modelAsOfDate: 0001-01-01,
			perspectiveId: 0,
			configurations: 
			[
				{
					id: 0,
					analysisId: 0,
					windowStartDate: 0001-01-01,
					windowEndDate: 0001-01-01,
					standardEnabled: False,
					runOffEnabled: False,
					aggregateEnabled: False,
					occurrenceEnabled: False,
					nettEnabled: False,
					grossEnabled: False,
					tailIntensityPercentageStart: 0,
					tailIntensityPercentageEnd: 0,
					metaRiskId: 0,
					outputLevel: NotSet,
					processingStatus: New,
					eventLossFloorStartRange: 0,
					eventLossFloorEndRange: 0,
					analysisPortfolioEventSetConfigurations: 
					[
						{
							id: 0,
							analysisId: 0,
							analysisConfigurationId: 0,
							portfolioName: String,
							modelId: String,
							rowIdentifier: 00000000000000000000000000000000
						}
					],
					rowIdentifier: 00000000000000000000000000000000
				}
			],
			deals: 
			[
				{
					id: 0,
					analysisId: 0,
					sourceDealId: String,
					dealRef: String,
					sourceDealSystem: String,
					eventSetId: 0,
					rol: 0,
					limit: 0,
					inceptionDate: 0001-01-01,
					expiryDate: 0001-01-01,
					transactionType: NotSet,
					allocations: 
					[
						{
							id: 0,
							analysisDealId: 0,
							portfolioName: String,
							allocationPercentage: 0,
							rowIdentifier: 00000000000000000000000000000000
						}
					],
					perspectiveIdOverride: 0,
					eventSetIdOverride: 0,
					modelAsOfDateOverride: 0001-01-01,
					sourceModelSystemOverride: String,
					sourceModelIdOverride: String,
					sourceEventSetIdOverride: String,
					eventSourceSystemOverride: String,
					rowIdentifier: 00000000000000000000000000000000
				}
			],
			eventIdFilters: 
			[
				{
					id: 0,
					analysisId: 0,
					eventSourceId: 0,
					eventId: 0,
					rowIdentifier: 00000000000000000000000000000000
				}
			],
			createdBy: String,
			createdDateUtc: 0001-01-01,
			completedDateUtc: 0001-01-01,
			legacyAnalysisId: 0,
			resultPersistenceTracking: 
			[
				{
					id: 00000000000000000000000000000000,
					analysisId: 0,
					processingStatus: New,
					messageType: NotSet,
					createdDateUtc: 0001-01-01,
					updatedDateUtc: 0001-01-01
				}
			],
			processingStatus: New,
			saveResults: False,
			eventSourceSystem: String,
			updatedDateUtc: 0001-01-01,
			isExpired: False,
			rowIdentifier: 00000000000000000000000000000000,
			errorMessage: String,
			ignoreSimulationCountMismatch: False,
			finalStatus: New
		}
	],
	meta: 
	{
		String: String
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}