| GET | /api/riskstore/eventset/ingest/status | Get the ingest status of eventsets previously published to RiskStore |
|---|
import Foundation
import ServiceStack
public class GetEventSetIngestStatusRequest : QueryDb2<EventSet, EventSetProcessingStatus>
{
public var eventSetId:[Int]
public var processingStatus:ProcessingStatus?
public var sourceEventSetId:[String]
public var modelId:[String]
public var programCalculationId:[String]
public var eventSetOriginId:[String]
public var perspectiveId:Int?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case eventSetId
case processingStatus
case sourceEventSetId
case modelId
case programCalculationId
case eventSetOriginId
case perspectiveId
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
eventSetId = try container.decodeIfPresent([Int].self, forKey: .eventSetId) ?? []
processingStatus = try container.decodeIfPresent(ProcessingStatus.self, forKey: .processingStatus)
sourceEventSetId = try container.decodeIfPresent([String].self, forKey: .sourceEventSetId) ?? []
modelId = try container.decodeIfPresent([String].self, forKey: .modelId) ?? []
programCalculationId = try container.decodeIfPresent([String].self, forKey: .programCalculationId) ?? []
eventSetOriginId = try container.decodeIfPresent([String].self, forKey: .eventSetOriginId) ?? []
perspectiveId = try container.decodeIfPresent(Int.self, forKey: .perspectiveId)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if eventSetId != nil { try container.encode(eventSetId, forKey: .eventSetId) }
if processingStatus != nil { try container.encode(processingStatus, forKey: .processingStatus) }
if sourceEventSetId != nil { try container.encode(sourceEventSetId, forKey: .sourceEventSetId) }
if modelId != nil { try container.encode(modelId, forKey: .modelId) }
if programCalculationId != nil { try container.encode(programCalculationId, forKey: .programCalculationId) }
if eventSetOriginId != nil { try container.encode(eventSetOriginId, forKey: .eventSetOriginId) }
if perspectiveId != nil { try container.encode(perspectiveId, forKey: .perspectiveId) }
}
}
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(){}
}
public class EventSetProcessingStatus : Codable
{
public var eventSetId:Int
public var processingStatus:ProcessingStatus
public var sourceModelSystem:String
public var sourceEventSetId:String
public var modelId:String
public var programCalculationId:String
public var eventSetOriginId:String
public var perspectiveId: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 GetEventSetIngestStatusRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /api/riskstore/eventset/ingest/status 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,
programCalculationId: String,
eventSetOriginId: String,
perspectiveId: 0
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}