Nephila RiskStore

<back to all web services

FindAnalysisPortfolioEventSetConfigurations

General
Requires Authentication
The following routes are available for this service:
GET/api/riskstore/results/portfolio-event-set-configurationsSearch portfolio event set configuration rows by analysis or analysis configuration
import Foundation
import ServiceStack

public class FindAnalysisPortfolioEventSetConfigurations : QueryDb<AnalysisPortfolioEventSetConfiguration>
{
    // @ApiMember(DataType="integer", Format="int64")
    public var ids:[Int]

    // @ApiMember(DataType="integer", Format="int64")
    public var analysisId:Int?

    // @ApiMember(DataType="integer", Format="int64")
    public var analysisIds:[Int]

    // @ApiMember(DataType="integer", Format="int64")
    public var analysisConfigurationId:Int?

    // @ApiMember(DataType="integer", Format="int64")
    public var analysisConfigurationIds:[Int]

    // @ApiMember(DataType="string")
    public var portfolioName:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case ids
        case analysisId
        case analysisIds
        case analysisConfigurationId
        case analysisConfigurationIds
        case portfolioName
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        ids = try container.decodeIfPresent([Int].self, forKey: .ids) ?? []
        analysisId = try container.decodeIfPresent(Int.self, forKey: .analysisId)
        analysisIds = try container.decodeIfPresent([Int].self, forKey: .analysisIds) ?? []
        analysisConfigurationId = try container.decodeIfPresent(Int.self, forKey: .analysisConfigurationId)
        analysisConfigurationIds = try container.decodeIfPresent([Int].self, forKey: .analysisConfigurationIds) ?? []
        portfolioName = try container.decodeIfPresent(String.self, forKey: .portfolioName)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if ids != nil { try container.encode(ids, forKey: .ids) }
        if analysisId != nil { try container.encode(analysisId, forKey: .analysisId) }
        if analysisIds != nil { try container.encode(analysisIds, forKey: .analysisIds) }
        if analysisConfigurationId != nil { try container.encode(analysisConfigurationId, forKey: .analysisConfigurationId) }
        if analysisConfigurationIds != nil { try container.encode(analysisConfigurationIds, forKey: .analysisConfigurationIds) }
        if portfolioName != nil { try container.encode(portfolioName, forKey: .portfolioName) }
    }
}

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 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
}

public enum ProcessingStatus : Int, Codable
{
    case New = 0
    case Processing = 1
    case Failed = 10
    case Successful = 20
}

// @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 FindAnalysisPortfolioEventSetConfigurations DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/riskstore/results/portfolio-event-set-configurations HTTP/1.1 
Host: riskstoreng-dev.nephila.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<QueryResponseOfAnalysisPortfolioEventSetConfiguratione3Twhsvh 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:AnalysisPortfolioEventSetConfiguration>
      <d2p1:AnalysisConfigurationId>0</d2p1:AnalysisConfigurationId>
      <d2p1:AnalysisId>0</d2p1:AnalysisId>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:ModelId>String</d2p1:ModelId>
      <d2p1:PortfolioName>String</d2p1:PortfolioName>
      <d2p1:RowIdentifier>00000000-0000-0000-0000-000000000000</d2p1:RowIdentifier>
    </d2p1:AnalysisPortfolioEventSetConfiguration>
  </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>
</QueryResponseOfAnalysisPortfolioEventSetConfiguratione3Twhsvh>