Nephila RiskStore

<back to all web services

GetEventSetIngestStatusRequest

General
Requires Authentication
The following routes are available for this service:
GET/api/riskstore/eventset/ingest/statusGet 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 .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
HTTP/1.1 200 OK
Content-Type: application/json
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":{"__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"}}}