| 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 .xml suffix or ?format=xml
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: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<QueryResponseOfEventSete3Twhsvh xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
<Offset>0</Offset>
<Total>0</Total>
<Results xmlns:d2p1="http://schemas.datacontract.org/2004/07/Nephila.RiskStore.ServiceModel.Types">
<d2p1:EventSet>
<d2p1:ApprovedBy>String</d2p1:ApprovedBy>
<d2p1:ApprovedDateTimeUtc>0001-01-01T00:00:00</d2p1:ApprovedDateTimeUtc>
<d2p1:ArchivedLossDataBlobPath>String</d2p1:ArchivedLossDataBlobPath>
<d2p1:ArchivedLossDataHash>String</d2p1:ArchivedLossDataHash>
<d2p1:BlobName>String</d2p1:BlobName>
<d2p1:Container>String</d2p1:Container>
<d2p1:Description>String</d2p1:Description>
<d2p1:EventSetId>0</d2p1:EventSetId>
<d2p1:EventSetOriginId>String</d2p1:EventSetOriginId>
<d2p1:EventSetOriginName>String</d2p1:EventSetOriginName>
<d2p1:EventSetOriginType>String</d2p1:EventSetOriginType>
<d2p1:EventSetTelemetry>
<d2p1:EndedDateTimeUct>0001-01-01T00:00:00</d2p1:EndedDateTimeUct>
<d2p1:EventLossCount>0</d2p1:EventLossCount>
<d2p1:EventSetId>0</d2p1:EventSetId>
<d2p1:StartedDateTimeUtc>0001-01-01T00:00:00</d2p1:StartedDateTimeUtc>
</d2p1:EventSetTelemetry>
<d2p1:EventSourceId>0</d2p1:EventSourceId>
<d2p1:EventSourceType>String</d2p1:EventSourceType>
<d2p1:ExpectedLossAggregate>0</d2p1:ExpectedLossAggregate>
<d2p1:ExpectedLossOccurrence>0</d2p1:ExpectedLossOccurrence>
<d2p1:IsArchived>false</d2p1:IsArchived>
<d2p1:Limit>0</d2p1:Limit>
<d2p1:ModelId>String</d2p1:ModelId>
<d2p1:PerspectiveId>0</d2p1:PerspectiveId>
<d2p1:ProbabilityOfAttachment>0</d2p1:ProbabilityOfAttachment>
<d2p1:ProbabilityOfExhaustion>0</d2p1:ProbabilityOfExhaustion>
<d2p1:ProcessingStatus>New</d2p1:ProcessingStatus>
<d2p1:ProgramCalculationId>String</d2p1:ProgramCalculationId>
<d2p1:Reinstatements>0</d2p1:Reinstatements>
<d2p1:Resolution>String</d2p1:Resolution>
<d2p1:ResultsHash>String</d2p1:ResultsHash>
<d2p1:SimulationCount>0</d2p1:SimulationCount>
<d2p1:SourceEventSetId>String</d2p1:SourceEventSetId>
<d2p1:SourceEventSetLossContainer>String</d2p1:SourceEventSetLossContainer>
<d2p1:SourceEventSetLossPath>String</d2p1:SourceEventSetLossPath>
<d2p1:SourceModelSystem>String</d2p1:SourceModelSystem>
<d2p1:UpdatedDateUtc>0001-01-01T00:00:00</d2p1:UpdatedDateUtc>
<d2p1:ValidFromUtc>0001-01-01T00:00:00</d2p1:ValidFromUtc>
<d2p1:ValidToUtc>0001-01-01T00:00:00</d2p1:ValidToUtc>
</d2p1:EventSet>
</Results>
<Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:KeyValueOfstringstring>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>String</d2p1:Value>
</d2p1:KeyValueOfstringstring>
</Meta>
<ResponseStatus>
<ErrorCode>String</ErrorCode>
<Message>String</Message>
<StackTrace>String</StackTrace>
<Errors>
<ResponseError>
<ErrorCode>String</ErrorCode>
<FieldName>String</FieldName>
<Message>String</Message>
<Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</Meta>
</ResponseError>
</Errors>
<Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</Meta>
</ResponseStatus>
</QueryResponseOfEventSete3Twhsvh>