/* Options: Date: 2026-06-13 13:10:55 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://riskstoreng-dev.nephila.com/api //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: FindAnalysisRequest.* //ExcludeTypes: //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.*; import java.util.*; import java.io.InputStream; import net.servicestack.client.*; import com.google.gson.annotations.*; import com.google.gson.reflect.*; public class dtos { @Route(Path="/riskstore/analysis", Verbs="GET") public static class FindAnalysisRequest extends QueryDb implements IReturn> { /** * The Ids of the Analyses */ @ApiMember(DataType="integer", Description="The Ids of the Analyses", Format="int64") public ArrayList ids = null; /** * The partial name of the analyses */ @ApiMember(DataType="string", Description="The partial name of the analyses") public String name = null; /** * Filter only Standard analysis type */ @ApiMember(DataType="boolean", Description="Filter only Standard analysis type") public Boolean standardEnabled = null; /** * Filter only Run Off analysis type */ @ApiMember(DataType="boolean", Description="Filter only Run Off analysis type") public Boolean runOffEnabled = null; /** * The perspective id used for the analysis */ @ApiMember(DataType="integer", Description="The perspective id used for the analysis", Format="int32") public Integer perspectiveId = null; /** * The partial name of the user who run the analysis */ @ApiMember(DataType="string", Description="The partial name of the user who run the analysis") public String createdBy = null; /** * The analysis run date to filter from */ @ApiMember(DataType="string", Description="The analysis run date to filter from", Format="date-time") public Date analysisRunFromDateTime = null; /** * The analysis run date to filter to */ @ApiMember(DataType="string", Description="The analysis run date to filter to", Format="date-time") public Date analysisRunToDateTime = null; /** * The status of the analysis. 1 = Processing, 10 = Failed, 20 = Successful */ @ApiMember(DataType="integer", Description="The status of the analysis. 1 = Processing, 10 = Failed, 20 = Successful", Format="int32") public ProcessingStatus processingStatus = null; public ArrayList getIds() { return ids; } public FindAnalysisRequest setIds(ArrayList value) { this.ids = value; return this; } public String getName() { return name; } public FindAnalysisRequest setName(String value) { this.name = value; return this; } public Boolean isStandardEnabled() { return standardEnabled; } public FindAnalysisRequest setStandardEnabled(Boolean value) { this.standardEnabled = value; return this; } public Boolean isRunOffEnabled() { return runOffEnabled; } public FindAnalysisRequest setRunOffEnabled(Boolean value) { this.runOffEnabled = value; return this; } public Integer getPerspectiveId() { return perspectiveId; } public FindAnalysisRequest setPerspectiveId(Integer value) { this.perspectiveId = value; return this; } public String getCreatedBy() { return createdBy; } public FindAnalysisRequest setCreatedBy(String value) { this.createdBy = value; return this; } public Date getAnalysisRunFromDateTime() { return analysisRunFromDateTime; } public FindAnalysisRequest setAnalysisRunFromDateTime(Date value) { this.analysisRunFromDateTime = value; return this; } public Date getAnalysisRunToDateTime() { return analysisRunToDateTime; } public FindAnalysisRequest setAnalysisRunToDateTime(Date value) { this.analysisRunToDateTime = value; return this; } public ProcessingStatus getProcessingStatus() { return processingStatus; } public FindAnalysisRequest setProcessingStatus(ProcessingStatus value) { this.processingStatus = value; return this; } private static Object responseType = new TypeToken>(){}.getType(); public Object getResponseType() { return responseType; } } @DataContract public static class QueryResponse { @DataMember(Order=1) public Integer offset = null; @DataMember(Order=2) public Integer total = null; @DataMember(Order=3) public ArrayList results = null; @DataMember(Order=4) public HashMap meta = null; @DataMember(Order=5) public ResponseStatus responseStatus = null; public Integer getOffset() { return offset; } public QueryResponse setOffset(Integer value) { this.offset = value; return this; } public Integer getTotal() { return total; } public QueryResponse setTotal(Integer value) { this.total = value; return this; } public ArrayList getResults() { return results; } public QueryResponse setResults(ArrayList value) { this.results = value; return this; } public HashMap getMeta() { return meta; } public QueryResponse setMeta(HashMap value) { this.meta = value; return this; } public ResponseStatus getResponseStatus() { return responseStatus; } public QueryResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; } } public static enum ProcessingStatus { New(0), Processing(1), Failed(10), Successful(20); private final int value; ProcessingStatus(final int intValue) { value = intValue; } public int getValue() { return value; } } public static class QueryDb extends QueryBase { } @DataContract public static class Analysis implements IObjectWithId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public String name = null; @DataMember(Order=3) public Date modelAsOfDate = null; @DataMember(Order=4) public Integer perspectiveId = null; @DataMember(Order=5) public ArrayList configurations = null; @DataMember(Order=6) public ArrayList deals = null; @DataMember(Order=7) public ArrayList eventIdFilters = null; @DataMember(Order=8) public String createdBy = null; @DataMember(Order=9) public Date createdDateUtc = null; @DataMember(Order=10) public Date completedDateUtc = null; @DataMember(Order=11) public Long legacyAnalysisId = null; @DataMember(Order=12) public ArrayList resultPersistenceTracking = null; @DataMember(Order=13) public ProcessingStatus processingStatus = null; @DataMember(Order=14) public Boolean saveResults = null; @DataMember(Order=15) public String eventSourceSystem = null; @DataMember(Order=16) public Date updatedDateUtc = null; @DataMember(Order=17) public Boolean isExpired = null; @DataMember(Order=18) public UUID rowIdentifier = null; @DataMember(Order=19) public String errorMessage = null; /** * 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 Boolean ignoreSimulationCountMismatch = null; @DataMember(Order=21) @Ignore() public ProcessingStatus finalStatus = null; public Long getId() { return id; } public Analysis setId(Long value) { this.id = value; return this; } public String getName() { return name; } public Analysis setName(String value) { this.name = value; return this; } public Date getModelAsOfDate() { return modelAsOfDate; } public Analysis setModelAsOfDate(Date value) { this.modelAsOfDate = value; return this; } public Integer getPerspectiveId() { return perspectiveId; } public Analysis setPerspectiveId(Integer value) { this.perspectiveId = value; return this; } public ArrayList getConfigurations() { return configurations; } public Analysis setConfigurations(ArrayList value) { this.configurations = value; return this; } public ArrayList getDeals() { return deals; } public Analysis setDeals(ArrayList value) { this.deals = value; return this; } public ArrayList getEventIdFilters() { return eventIdFilters; } public Analysis setEventIdFilters(ArrayList value) { this.eventIdFilters = value; return this; } public String getCreatedBy() { return createdBy; } public Analysis setCreatedBy(String value) { this.createdBy = value; return this; } public Date getCreatedDateUtc() { return createdDateUtc; } public Analysis setCreatedDateUtc(Date value) { this.createdDateUtc = value; return this; } public Date getCompletedDateUtc() { return completedDateUtc; } public Analysis setCompletedDateUtc(Date value) { this.completedDateUtc = value; return this; } public Long getLegacyAnalysisId() { return legacyAnalysisId; } public Analysis setLegacyAnalysisId(Long value) { this.legacyAnalysisId = value; return this; } public ArrayList getResultPersistenceTracking() { return resultPersistenceTracking; } public Analysis setResultPersistenceTracking(ArrayList value) { this.resultPersistenceTracking = value; return this; } public ProcessingStatus getProcessingStatus() { return processingStatus; } public Analysis setProcessingStatus(ProcessingStatus value) { this.processingStatus = value; return this; } public Boolean isSaveResults() { return saveResults; } public Analysis setSaveResults(Boolean value) { this.saveResults = value; return this; } public String getEventSourceSystem() { return eventSourceSystem; } public Analysis setEventSourceSystem(String value) { this.eventSourceSystem = value; return this; } public Date getUpdatedDateUtc() { return updatedDateUtc; } public Analysis setUpdatedDateUtc(Date value) { this.updatedDateUtc = value; return this; } public Boolean getIsExpired() { return isExpired; } public Analysis setIsExpired(Boolean value) { this.isExpired = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public Analysis setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } public String getErrorMessage() { return errorMessage; } public Analysis setErrorMessage(String value) { this.errorMessage = value; return this; } public Boolean isIgnoreSimulationCountMismatch() { return ignoreSimulationCountMismatch; } public Analysis setIgnoreSimulationCountMismatch(Boolean value) { this.ignoreSimulationCountMismatch = value; return this; } public ProcessingStatus getFinalStatus() { return finalStatus; } public Analysis setFinalStatus(ProcessingStatus value) { this.finalStatus = value; return this; } } public static enum ResultOutputLevel { NotSet, PortfolioMetrics, Curve, Ylt, TailIntensity, DealYlt, DealElt, DealEltWithIndustryLoss, PortfolioElt, PortfolioEltWithIndustryLoss, EventSetGeneration, PortfolioRaps, DealRaps, PortfolioSepyIndustryLoss, DealSepyIndustryLoss; } public static interface IObjectWithId { public Long id = null; public UUID rowIdentifier = null; } @DataContract public static class QueryBase { @DataMember(Order=1) public Integer skip = null; @DataMember(Order=2) public Integer take = null; @DataMember(Order=3) public String orderBy = null; @DataMember(Order=4) public String orderByDesc = null; @DataMember(Order=5) public String include = null; @DataMember(Order=6) public String fields = null; @DataMember(Order=7) public HashMap meta = null; public Integer getSkip() { return skip; } public QueryBase setSkip(Integer value) { this.skip = value; return this; } public Integer getTake() { return take; } public QueryBase setTake(Integer value) { this.take = value; return this; } public String getOrderBy() { return orderBy; } public QueryBase setOrderBy(String value) { this.orderBy = value; return this; } public String getOrderByDesc() { return orderByDesc; } public QueryBase setOrderByDesc(String value) { this.orderByDesc = value; return this; } public String getInclude() { return include; } public QueryBase setInclude(String value) { this.include = value; return this; } public String getFields() { return fields; } public QueryBase setFields(String value) { this.fields = value; return this; } public HashMap getMeta() { return meta; } public QueryBase setMeta(HashMap value) { this.meta = value; return this; } } @DataContract public static class AnalysisConfiguration implements IObjectWithId, IHasAnalysisId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public Long analysisId = null; @DataMember(Order=3) public Date windowStartDate = null; @DataMember(Order=4) public Date windowEndDate = null; @DataMember(Order=5) public Boolean standardEnabled = null; @DataMember(Order=6) public Boolean runOffEnabled = null; @DataMember(Order=7) public Boolean aggregateEnabled = null; @DataMember(Order=8) public Boolean occurrenceEnabled = null; @DataMember(Order=9) public Boolean nettEnabled = null; @DataMember(Order=10) public Boolean grossEnabled = null; @DataMember(Order=11) public BigDecimal tailIntensityPercentageStart = null; @DataMember(Order=12) public BigDecimal tailIntensityPercentageEnd = null; @DataMember(Order=13) public Integer metaRiskId = null; @DataMember(Order=14) public ResultOutputLevel outputLevel = null; @DataMember(Order=15) public ProcessingStatus processingStatus = null; @DataMember(Order=16) public BigDecimal eventLossFloorStartRange = null; @DataMember(Order=17) public BigDecimal eventLossFloorEndRange = null; @DataMember(Order=18) public ArrayList analysisPortfolioEventSetConfigurations = null; @DataMember(Order=19) public UUID rowIdentifier = null; public Long getId() { return id; } public AnalysisConfiguration setId(Long value) { this.id = value; return this; } public Long getAnalysisId() { return analysisId; } public AnalysisConfiguration setAnalysisId(Long value) { this.analysisId = value; return this; } public Date getWindowStartDate() { return windowStartDate; } public AnalysisConfiguration setWindowStartDate(Date value) { this.windowStartDate = value; return this; } public Date getWindowEndDate() { return windowEndDate; } public AnalysisConfiguration setWindowEndDate(Date value) { this.windowEndDate = value; return this; } public Boolean isStandardEnabled() { return standardEnabled; } public AnalysisConfiguration setStandardEnabled(Boolean value) { this.standardEnabled = value; return this; } public Boolean isRunOffEnabled() { return runOffEnabled; } public AnalysisConfiguration setRunOffEnabled(Boolean value) { this.runOffEnabled = value; return this; } public Boolean isAggregateEnabled() { return aggregateEnabled; } public AnalysisConfiguration setAggregateEnabled(Boolean value) { this.aggregateEnabled = value; return this; } public Boolean isOccurrenceEnabled() { return occurrenceEnabled; } public AnalysisConfiguration setOccurrenceEnabled(Boolean value) { this.occurrenceEnabled = value; return this; } public Boolean isNettEnabled() { return nettEnabled; } public AnalysisConfiguration setNettEnabled(Boolean value) { this.nettEnabled = value; return this; } public Boolean isGrossEnabled() { return grossEnabled; } public AnalysisConfiguration setGrossEnabled(Boolean value) { this.grossEnabled = value; return this; } public BigDecimal getTailIntensityPercentageStart() { return tailIntensityPercentageStart; } public AnalysisConfiguration setTailIntensityPercentageStart(BigDecimal value) { this.tailIntensityPercentageStart = value; return this; } public BigDecimal getTailIntensityPercentageEnd() { return tailIntensityPercentageEnd; } public AnalysisConfiguration setTailIntensityPercentageEnd(BigDecimal value) { this.tailIntensityPercentageEnd = value; return this; } public Integer getMetaRiskId() { return metaRiskId; } public AnalysisConfiguration setMetaRiskId(Integer value) { this.metaRiskId = value; return this; } public ResultOutputLevel getOutputLevel() { return outputLevel; } public AnalysisConfiguration setOutputLevel(ResultOutputLevel value) { this.outputLevel = value; return this; } public ProcessingStatus getProcessingStatus() { return processingStatus; } public AnalysisConfiguration setProcessingStatus(ProcessingStatus value) { this.processingStatus = value; return this; } public BigDecimal getEventLossFloorStartRange() { return eventLossFloorStartRange; } public AnalysisConfiguration setEventLossFloorStartRange(BigDecimal value) { this.eventLossFloorStartRange = value; return this; } public BigDecimal getEventLossFloorEndRange() { return eventLossFloorEndRange; } public AnalysisConfiguration setEventLossFloorEndRange(BigDecimal value) { this.eventLossFloorEndRange = value; return this; } public ArrayList getAnalysisPortfolioEventSetConfigurations() { return analysisPortfolioEventSetConfigurations; } public AnalysisConfiguration setAnalysisPortfolioEventSetConfigurations(ArrayList value) { this.analysisPortfolioEventSetConfigurations = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public AnalysisConfiguration setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } } @DataContract public static class AnalysisDeal implements IObjectWithId, IHasAnalysisId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public Long analysisId = null; @DataMember(Order=3) public String sourceDealId = null; @DataMember(Order=4) public String dealRef = null; @DataMember(Order=5) public String sourceDealSystem = null; @DataMember(Order=6) public Long eventSetId = null; @DataMember(Order=7) public Double rol = null; @DataMember(Order=8) public Double limit = null; @DataMember(Order=9) public Date inceptionDate = null; @DataMember(Order=10) public Date expiryDate = null; @DataMember(Order=11) public TransactionType transactionType = null; @DataMember(Order=12) public ArrayList allocations = null; @DataMember(Order=13) public Integer perspectiveIdOverride = null; @DataMember(Order=14) public Long eventSetIdOverride = null; @DataMember(Order=15) public Date modelAsOfDateOverride = null; @DataMember(Order=16) public String sourceModelSystemOverride = null; @DataMember(Order=17) public String sourceModelIdOverride = null; @DataMember(Order=18) public String sourceEventSetIdOverride = null; @DataMember(Order=19) public String eventSourceSystemOverride = null; @DataMember(Order=20) public UUID rowIdentifier = null; public Long getId() { return id; } public AnalysisDeal setId(Long value) { this.id = value; return this; } public Long getAnalysisId() { return analysisId; } public AnalysisDeal setAnalysisId(Long value) { this.analysisId = value; return this; } public String getSourceDealId() { return sourceDealId; } public AnalysisDeal setSourceDealId(String value) { this.sourceDealId = value; return this; } public String getDealRef() { return dealRef; } public AnalysisDeal setDealRef(String value) { this.dealRef = value; return this; } public String getSourceDealSystem() { return sourceDealSystem; } public AnalysisDeal setSourceDealSystem(String value) { this.sourceDealSystem = value; return this; } public Long getEventSetId() { return eventSetId; } public AnalysisDeal setEventSetId(Long value) { this.eventSetId = value; return this; } public Double getRol() { return rol; } public AnalysisDeal setRol(Double value) { this.rol = value; return this; } public Double getLimit() { return limit; } public AnalysisDeal setLimit(Double value) { this.limit = value; return this; } public Date getInceptionDate() { return inceptionDate; } public AnalysisDeal setInceptionDate(Date value) { this.inceptionDate = value; return this; } public Date getExpiryDate() { return expiryDate; } public AnalysisDeal setExpiryDate(Date value) { this.expiryDate = value; return this; } public TransactionType getTransactionType() { return transactionType; } public AnalysisDeal setTransactionType(TransactionType value) { this.transactionType = value; return this; } public ArrayList getAllocations() { return allocations; } public AnalysisDeal setAllocations(ArrayList value) { this.allocations = value; return this; } public Integer getPerspectiveIdOverride() { return perspectiveIdOverride; } public AnalysisDeal setPerspectiveIdOverride(Integer value) { this.perspectiveIdOverride = value; return this; } public Long getEventSetIdOverride() { return eventSetIdOverride; } public AnalysisDeal setEventSetIdOverride(Long value) { this.eventSetIdOverride = value; return this; } public Date getModelAsOfDateOverride() { return modelAsOfDateOverride; } public AnalysisDeal setModelAsOfDateOverride(Date value) { this.modelAsOfDateOverride = value; return this; } public String getSourceModelSystemOverride() { return sourceModelSystemOverride; } public AnalysisDeal setSourceModelSystemOverride(String value) { this.sourceModelSystemOverride = value; return this; } public String getSourceModelIdOverride() { return sourceModelIdOverride; } public AnalysisDeal setSourceModelIdOverride(String value) { this.sourceModelIdOverride = value; return this; } public String getSourceEventSetIdOverride() { return sourceEventSetIdOverride; } public AnalysisDeal setSourceEventSetIdOverride(String value) { this.sourceEventSetIdOverride = value; return this; } public String getEventSourceSystemOverride() { return eventSourceSystemOverride; } public AnalysisDeal setEventSourceSystemOverride(String value) { this.eventSourceSystemOverride = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public AnalysisDeal setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } } @DataContract public static class AnalysisEventIdFilter implements IObjectWithId, IHasAnalysisId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public Long analysisId = null; @DataMember(Order=3) public Integer eventSourceId = null; @DataMember(Order=4) public Long eventId = null; @DataMember(Order=5) public UUID rowIdentifier = null; public Long getId() { return id; } public AnalysisEventIdFilter setId(Long value) { this.id = value; return this; } public Long getAnalysisId() { return analysisId; } public AnalysisEventIdFilter setAnalysisId(Long value) { this.analysisId = value; return this; } public Integer getEventSourceId() { return eventSourceId; } public AnalysisEventIdFilter setEventSourceId(Integer value) { this.eventSourceId = value; return this; } public Long getEventId() { return eventId; } public AnalysisEventIdFilter setEventId(Long value) { this.eventId = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public AnalysisEventIdFilter setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } } @DataContract public static class MessageTracking { @DataMember(Order=1) public UUID id = null; @DataMember(Order=2) public Long analysisId = null; @DataMember(Order=3) public ProcessingStatus processingStatus = null; @DataMember(Order=4) public MessageType messageType = null; @DataMember(Order=5) public Date createdDateUtc = null; @DataMember(Order=6) public Date updatedDateUtc = null; public UUID getId() { return id; } public MessageTracking setId(UUID value) { this.id = value; return this; } public Long getAnalysisId() { return analysisId; } public MessageTracking setAnalysisId(Long value) { this.analysisId = value; return this; } public ProcessingStatus getProcessingStatus() { return processingStatus; } public MessageTracking setProcessingStatus(ProcessingStatus value) { this.processingStatus = value; return this; } public MessageType getMessageType() { return messageType; } public MessageTracking setMessageType(MessageType value) { this.messageType = value; return this; } public Date getCreatedDateUtc() { return createdDateUtc; } public MessageTracking setCreatedDateUtc(Date value) { this.createdDateUtc = value; return this; } public Date getUpdatedDateUtc() { return updatedDateUtc; } public MessageTracking setUpdatedDateUtc(Date value) { this.updatedDateUtc = value; return this; } } public static interface IHasAnalysisId { public Long analysisId = null; } public static class AnalysisPortfolioEventSetConfiguration implements IObjectWithId, IHasAnalysisId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public Long analysisId = null; @DataMember(Order=3) public Long analysisConfigurationId = null; @DataMember(Order=4) public String portfolioName = null; @DataMember(Order=5) public String modelId = null; @DataMember(Order=6) public UUID rowIdentifier = null; public Long getId() { return id; } public AnalysisPortfolioEventSetConfiguration setId(Long value) { this.id = value; return this; } public Long getAnalysisId() { return analysisId; } public AnalysisPortfolioEventSetConfiguration setAnalysisId(Long value) { this.analysisId = value; return this; } public Long getAnalysisConfigurationId() { return analysisConfigurationId; } public AnalysisPortfolioEventSetConfiguration setAnalysisConfigurationId(Long value) { this.analysisConfigurationId = value; return this; } public String getPortfolioName() { return portfolioName; } public AnalysisPortfolioEventSetConfiguration setPortfolioName(String value) { this.portfolioName = value; return this; } public String getModelId() { return modelId; } public AnalysisPortfolioEventSetConfiguration setModelId(String value) { this.modelId = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public AnalysisPortfolioEventSetConfiguration setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } } public static enum TransactionType { NotSet, S, B; } @DataContract public static class AnalysisPortfolioAllocation implements IObjectWithId { @DataMember(Order=1) public Long id = null; @DataMember(Order=2) public Long analysisDealId = null; @DataMember(Order=3) @Validate(Validator="NotEmpty", Message="PortfolioName is mandatory") public String portfolioName = null; @DataMember(Order=4) public Double allocationPercentage = null; @DataMember(Order=5) public UUID rowIdentifier = null; public Long getId() { return id; } public AnalysisPortfolioAllocation setId(Long value) { this.id = value; return this; } public Long getAnalysisDealId() { return analysisDealId; } public AnalysisPortfolioAllocation setAnalysisDealId(Long value) { this.analysisDealId = value; return this; } public String getPortfolioName() { return portfolioName; } public AnalysisPortfolioAllocation setPortfolioName(String value) { this.portfolioName = value; return this; } public Double getAllocationPercentage() { return allocationPercentage; } public AnalysisPortfolioAllocation setAllocationPercentage(Double value) { this.allocationPercentage = value; return this; } public UUID getRowIdentifier() { return rowIdentifier; } public AnalysisPortfolioAllocation setRowIdentifier(UUID value) { this.rowIdentifier = value; return this; } } public static enum MessageType { NotSet, Persistence, Archival; } }