/* Options: Date: 2026-06-13 13:36:57 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://riskstoreng-dev.nephila.com/api //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetAnalysisRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/riskstore/analysis/results", "GET") public class GetAnalysisRequest : IReturn, IGet, Codable { public typealias Return = RollupResponse /** * The analysis id */ // @ApiMember(DataType="integer", Description="The analysis id", Format="int64") public var id:Int? /** * The legacy analysis id */ // @ApiMember(DataType="integer", Description="The legacy analysis id", Format="int64") public var legacyId:Int? /** * True to not load all deal allocations, analysis runs etc... */ // @ApiMember(DataType="boolean", Description="True to not load all deal allocations, analysis runs etc...") public var onlyCoreData:Bool? required public init(){} } public class RollupResponse : Codable { public var analysis:Analysis? public var portfolioMetrics:[AnalysisPortfolioMetric]? public var results:[AnalysisResult]? public var responseStatus:ResponseStatus? public var unresolvedDealIds:[String]? public var unlinkedDealIds:[ValueTuple]? public var message:String? required public init(){} } // @DataContract public class AnalysisResult : IObjectWithId, 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 container:String? // @DataMember(Order=5) public var blobName:String? // @DataMember(Order=6) public var resultTableName:String? // @DataMember(Order=7) public var analysisType:AnalysisType? // @DataMember(Order=8) public var simulationLossPerspective:SimulationLossPerspective? // @DataMember(Order=9) public var reinsurancePremiumLossType:ReinsurancePremiumLossType? // @DataMember(Order=10) public var outputLevel:ResultOutputLevel? // @DataMember(Order=11) public var metaRiskId:Int? // @DataMember(Order=12) public var analysisPortfolioEventSetResults:[AnalysisPortfolioEventSetResult]? // @DataMember(Order=13) public var rowIdentifier:String? required public init(){} } public enum ProcessingStatus : Int, Codable { case New = 0 case Processing = 1 case Failed = 10 case Successful = 20 } // @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(){} } public class AnalysisPortfolioMetric : IHasAnalysisResultId, Codable { public var analysisType:AnalysisType? public var simulationLossPerspective:SimulationLossPerspective? public var reinsurancePremiumLossType:ReinsurancePremiumLossType? public var metricDescription:String? public var portfolioName:String? public var metric:Double? public var metaRiskId:Int? public var simulation:Int? public var analysisResultId:Int? required public init(){} } public enum AnalysisType : String, Codable { case NotSet case Standard case RunOff } public enum SimulationLossPerspective : String, Codable { case NotSet case Agg case Occ } public enum ReinsurancePremiumLossType : String, Codable { case NotSet case Net case Gross } 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 AnalysisPortfolioEventSetResult : IObjectWithId, IHasAnalysisId, Codable { // @DataMember(Order=1) public var id:Int? // @DataMember(Order=2) public var analysisId:Int? // @DataMember(Order=3) public var analysisPortfolioEventSetConfigurationId:Int? // @DataMember(Order=4) public var analysisResultId:Int? // @DataMember(Order=5) public var portfolioName:String? // @DataMember(Order=6) public var rowIdentifier:String? required public init(){} } public protocol IObjectWithId { var id:Int? { get set } var rowIdentifier:String? { get set } } // @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(){} } // @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(){} } // @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 protocol IHasAnalysisResultId { var analysisResultId:Int? { get set } } public protocol IHasAnalysisId { var analysisId:Int? { get set } } 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(){} } 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(){} } public enum MessageType : String, Codable { case NotSet case Persistence case Archival }