| GET | /api/riskstore/eventset/search | Search 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 .other suffix or ?format=other
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/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
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-01T00:00:00.0000000Z","approvedBy":"String","eventSourceId":0,"validFromUtc":"0001-01-01T00:00:00.0000000Z","validToUtc":"0001-01-01T00:00:00.0000000Z","container":"String","blobName":"String","updatedDateUtc":"0001-01-01T00:00:00.0000000Z","isArchived":false,"archivedLossDataBlobPath":"String","archivedLossDataHash":"String","eventSetTelemetry":{"eventSetId":0,"startedDateTimeUtc":"0001-01-01T00:00:00.0000000Z","endedDateTimeUct":"0001-01-01T00:00:00.0000000Z","eventLossCount":0}}],"meta":{"String":"String"},"responseStatus":{"__type":"ServiceStack.ResponseStatus, ServiceStack.Interfaces","errorCode":"String","message":"String","stackTrace":"String","errors":[{"__type":"ServiceStack.ResponseError, ServiceStack.Interfaces","errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}