Nephila RiskStore

<back to all web services

FindEventSetRequest

General
Requires Authentication
The following routes are available for this service:
GET/api/riskstore/eventset/searchSearch for event sets
import Foundation
import ServiceStack

public class FindEventSetRequest : QueryDb<EventSet>
{
    /**
    * Source Model System
    */
    // @ApiMember(DataType="string", Description="Source Model System")
    public var sourceModelSystem:String

    /**
    * Model Id
    */
    // @ApiMember(DataType="string", Description="Model Id")
    public var modelId:String

    /**
    * The perspective id for the event set
    */
    // @ApiMember(DataType="integer", Description="The perspective id for the event set", Format="int32")
    public var perspectiveId:Int?

    /**
    * Source Event Set Id
    */
    // @ApiMember(DataType="string", Description="Source Event Set Id", Format="uuid")
    public var sourceEventSetId:String?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case sourceModelSystem
        case modelId
        case perspectiveId
        case sourceEventSetId
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        sourceModelSystem = try container.decodeIfPresent(String.self, forKey: .sourceModelSystem)
        modelId = try container.decodeIfPresent(String.self, forKey: .modelId)
        perspectiveId = try container.decodeIfPresent(Int.self, forKey: .perspectiveId)
        sourceEventSetId = try container.decodeIfPresent(String.self, forKey: .sourceEventSetId)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if sourceModelSystem != nil { try container.encode(sourceModelSystem, forKey: .sourceModelSystem) }
        if modelId != nil { try container.encode(modelId, forKey: .modelId) }
        if perspectiveId != nil { try container.encode(perspectiveId, forKey: .perspectiveId) }
        if sourceEventSetId != nil { try container.encode(sourceEventSetId, forKey: .sourceEventSetId) }
    }
}

public class EventSet : Codable
{
    public var eventSetId:Int
    public var processingStatus:ProcessingStatus
    public var sourceModelSystem:String
    public var sourceEventSetId:String
    public var modelId:String
    public var perspectiveId:Int
    public var simulationCount:Int
    public var programCalculationId:String
    public var Description:String
    public var limit:Double
    public var reinstatements:Int
    public var eventSourceType:String
    public var eventSetOriginId:String
    public var eventSetOriginName:String
    public var eventSetOriginType:String
    public var sourceEventSetLossContainer:String
    public var sourceEventSetLossPath:String
    public var resolution:String
    public var resultsHash:String
    public var expectedLossAggregate:Double
    public var expectedLossOccurrence:Double
    public var probabilityOfAttachment:Double
    public var probabilityOfExhaustion:Double
    public var approvedDateTimeUtc:Date
    public var approvedBy:String
    public var eventSourceId:Int
    public var validFromUtc:Date
    public var validToUtc:Date
    public var container:String
    public var blobName:String
    public var updatedDateUtc:Date
    public var isArchived:Bool
    public var archivedLossDataBlobPath:String
    public var archivedLossDataHash:String
    public var eventSetTelemetry:EventSetTelemetry

    required public init(){}
}

public enum ProcessingStatus : Int, Codable
{
    case New = 0
    case Processing = 1
    case Failed = 10
    case Successful = 20
}

public class EventSetTelemetry : Codable
{
    public var eventSetId:Int
    public var startedDateTimeUtc:Date?
    public var endedDateTimeUct:Date?
    public var eventLossCount:Int

    required public init(){}
}

// @DataContract
public class Analysis : IObjectWithId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var name:String

    // @DataMember(Order=3)
    public var modelAsOfDate:Date?

    // @DataMember(Order=4)
    public var perspectiveId:Int

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

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

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

    // @DataMember(Order=8)
    public var createdBy:String

    // @DataMember(Order=9)
    public var createdDateUtc:Date

    // @DataMember(Order=10)
    public var completedDateUtc:Date?

    // @DataMember(Order=11)
    public var legacyAnalysisId:Int?

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

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

    // @DataMember(Order=14)
    public var saveResults:Bool

    // @DataMember(Order=15)
    public var eventSourceSystem:String

    // @DataMember(Order=16)
    public var updatedDateUtc:Date

    // @DataMember(Order=17)
    public var isExpired:Bool

    // @DataMember(Order=18)
    public var rowIdentifier:String

    // @DataMember(Order=19)
    public var errorMessage:String

    /**
    * 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 var ignoreSimulationCountMismatch:Bool

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

    required public init(){}
}

// @DataContract
public class AnalysisConfiguration : IObjectWithId, IHasAnalysisId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var analysisId:Int

    // @DataMember(Order=3)
    public var windowStartDate:Date?

    // @DataMember(Order=4)
    public var windowEndDate:Date?

    // @DataMember(Order=5)
    public var standardEnabled:Bool

    // @DataMember(Order=6)
    public var runOffEnabled:Bool

    // @DataMember(Order=7)
    public var aggregateEnabled:Bool

    // @DataMember(Order=8)
    public var occurrenceEnabled:Bool

    // @DataMember(Order=9)
    public var nettEnabled:Bool

    // @DataMember(Order=10)
    public var grossEnabled:Bool

    // @DataMember(Order=11)
    public var tailIntensityPercentageStart:Double?

    // @DataMember(Order=12)
    public var tailIntensityPercentageEnd:Double?

    // @DataMember(Order=13)
    public var metaRiskId:Int

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

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

    // @DataMember(Order=16)
    public var eventLossFloorStartRange:Double?

    // @DataMember(Order=17)
    public var eventLossFloorEndRange:Double?

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

    // @DataMember(Order=19)
    public var rowIdentifier:String

    required public init(){}
}

public enum ResultOutputLevel : String, Codable
{
    case NotSet
    case PortfolioMetrics
    case Curve
    case YLT
    case TailIntensity
    case DealYlt
    case DealElt
    case DealEltWithIndustryLoss
    case PortfolioElt
    case PortfolioEltWithIndustryLoss
    case EventSetGeneration
    case PortfolioRaps
    case DealRaps
    case PortfolioSepyIndustryLoss
    case DealSepyIndustryLoss
}

public class AnalysisPortfolioEventSetConfiguration : IObjectWithId, IHasAnalysisId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var analysisId:Int

    // @DataMember(Order=3)
    public var analysisConfigurationId:Int

    // @DataMember(Order=4)
    public var portfolioName:String

    // @DataMember(Order=5)
    public var modelId:String

    // @DataMember(Order=6)
    public var rowIdentifier:String

    required public init(){}
}

// @DataContract
public class AnalysisDeal : IObjectWithId, IHasAnalysisId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var analysisId:Int

    // @DataMember(Order=3)
    public var sourceDealId:String

    // @DataMember(Order=4)
    public var dealRef:String

    // @DataMember(Order=5)
    public var sourceDealSystem:String

    // @DataMember(Order=6)
    public var eventSetId:Int

    // @DataMember(Order=7)
    public var rol:Double

    // @DataMember(Order=8)
    public var limit:Double

    // @DataMember(Order=9)
    public var inceptionDate:Date

    // @DataMember(Order=10)
    public var expiryDate:Date

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

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

    // @DataMember(Order=13)
    public var perspectiveIdOverride:Int?

    // @DataMember(Order=14)
    public var eventSetIdOverride:Int?

    // @DataMember(Order=15)
    public var modelAsOfDateOverride:Date?

    // @DataMember(Order=16)
    public var sourceModelSystemOverride:String

    // @DataMember(Order=17)
    public var sourceModelIdOverride:String

    // @DataMember(Order=18)
    public var sourceEventSetIdOverride:String

    // @DataMember(Order=19)
    public var eventSourceSystemOverride:String

    // @DataMember(Order=20)
    public var rowIdentifier:String

    required public init(){}
}

public enum TransactionType : String, Codable
{
    case NotSet
    case S
    case B
}

// @DataContract
public class AnalysisPortfolioAllocation : IObjectWithId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var analysisDealId:Int

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

    // @DataMember(Order=4)
    public var allocationPercentage:Double

    // @DataMember(Order=5)
    public var rowIdentifier:String

    required public init(){}
}

// @DataContract
public class AnalysisEventIdFilter : IObjectWithId, IHasAnalysisId, Codable
{
    // @DataMember(Order=1)
    public var id:Int

    // @DataMember(Order=2)
    public var analysisId:Int

    // @DataMember(Order=3)
    public var eventSourceId:Int

    // @DataMember(Order=4)
    public var eventId:Int

    // @DataMember(Order=5)
    public var rowIdentifier:String

    required public init(){}
}

// @DataContract
public class MessageTracking : Codable
{
    // @DataMember(Order=1)
    public var id:String

    // @DataMember(Order=2)
    public var analysisId:Int?

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

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

    // @DataMember(Order=5)
    public var createdDateUtc:Date

    // @DataMember(Order=6)
    public var updatedDateUtc:Date

    required public init(){}
}

public enum MessageType : String, Codable
{
    case NotSet
    case Persistence
    case Archival
}


Swift FindEventSetRequest 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/eventset/search 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: 
	[
		{
			eventSetId: 0,
			processingStatus: New,
			sourceModelSystem: String,
			sourceEventSetId: String,
			modelId: String,
			perspectiveId: 0,
			simulationCount: 0,
			programCalculationId: String,
			description: String,
			limit: 0,
			reinstatements: 0,
			eventSourceType: String,
			eventSetOriginId: String,
			eventSetOriginName: String,
			eventSetOriginType: String,
			sourceEventSetLossContainer: String,
			sourceEventSetLossPath: String,
			resolution: String,
			resultsHash: String,
			expectedLossAggregate: 0,
			expectedLossOccurrence: 0,
			probabilityOfAttachment: 0,
			probabilityOfExhaustion: 0,
			approvedDateTimeUtc: 0001-01-01,
			approvedBy: String,
			eventSourceId: 0,
			validFromUtc: 0001-01-01,
			validToUtc: 0001-01-01,
			container: String,
			blobName: String,
			updatedDateUtc: 0001-01-01,
			isArchived: False,
			archivedLossDataBlobPath: String,
			archivedLossDataHash: String,
			eventSetTelemetry: 
			{
				eventSetId: 0,
				startedDateTimeUtc: 0001-01-01,
				endedDateTimeUct: 0001-01-01,
				eventLossCount: 0
			}
		}
	],
	meta: 
	{
		String: String
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}