{"openapi":"3.0.2","info":{"title":"Variation API","version":"2023.11.b"},"servers":[{"url":"https://{host}/platform/variation/v1","variables":{"host":{"enum":["api-euw1.rms.com","api-use1.rms.com"],"default":"api-euw1.rms.com","description":"Data center that hosts the tenant instance: api-euw1.rms.com or api-use1.rms.com"}}}],"x-readme":{"explorer-enabled":false,"parameter-ordering":["header","path","query","body","form","cookie"],"samples-languages":["curl","java","csharp","node","python"],"proxy-enabled":true,"samples-enabled":true},"security":[{"rms_api_key":[]},{"rms_bearer_token":[]}],"paths":{"/jobs":{"post":{"tags":["Variation Jobs"],"summary":"Create variation job","operationId":"createVariationJob","parameters":[{"name":"x-rms-resource-group-id","description":"ID of <<glossary:resource group>>.","in":"header","required":true,"schema":{"type":"string","default":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["resourceUri","resourceType"],"properties":{"resourceUri":{"description":"URI of account or portfolio exposure, e.g. `/platform/riskdata/v1/exposures/23/accounts/555`. Exposure variation is based on the specified exposure resource.","$ref":"#/components/schemas/RiskdataResource"},"resourceType":{"type":"string","description":"Type of exposure, e.g. `account`.","enum":["portfolio","account"]},"settings":{"description":"Exposure-specific properties.","$ref":"#/components/schemas/Settings"}}}}}},"responses":{"201":{"description":"Created\n\nCreates an `ACCOUNT_VARIATION` or `PORTFOLIO_VARIATION` job.","headers":{"Location":{"description":"URI of job.","schema":{"type":"string","format":"uri"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"get":{"tags":["Variation Jobs"],"summary":"Search variation jobs","operationId":"getVariationJobs","parameters":[{"name":"filter","in":"query","description":"Supported properties: `endedAt`, `jobId`, `name`, `startedAt`, `status`, `type`, `userName`\n\n|Property|Data Type|Comparison|List|\n|:--------|:--------|:--------|:--------|\n|`endedAt`|`YYYY-MM-DD`|`=`||\n|`jobId`|`string`|`=` |`IN`|\n|`name`|`string`|`=` ||\n|`startedAt`|`YYYY-MM-DD`|`=` ||\n|`status`|`string`|`=` ||\n|`type`|`string`|`=` ||\n|`userName`|`string`|`=` ||","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-delimited list of properties. Sort order defined by one of `ASC` (ascending) or `DESC` (descending).\n\nSupported properties: `endedAt`, `jobId`, `name`, `startedAt`, `status`, `type`, `userName`","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of records returned per page. See [Response Pagination](doc:response-pagination)","schema":{"type":"integer","format":"int32"}},{"name":"offSet","in":"query","description":"Number of the page displaying the returned records, starting at _0_","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}}},"/jobs/{jobId}":{"get":{"tags":["Variation Jobs"],"summary":"Get variation job","operationId":"getVariationJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"patch":{"tags":["Variation Jobs"],"summary":"Update variation job","operationId":"updateVariationJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"requestBody":{"description":"Set of operations to perform against the Job Entity","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Status of variation job.","enum":["CANCELED"]},"priority":{"type":"string","description":"Priority of variation job.","enum":["veryhigh","high","medium","low","verylow"]}}}}}},"responses":{"202":{"description":"Success"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}}}},"components":{"parameters":{"JobIdParam":{"name":"jobId","in":"path","description":"ID of variation job.","schema":{"type":"string"},"required":true},"FileIdParam":{"name":"fileId","in":"path","description":"ID of variation job.","schema":{"type":"string"},"required":true}},"schemas":{"JobSearchResult":{"type":"array","items":{"$ref":"#/components/schemas/JobSummary"}},"Task":{"type":"object","properties":{"taskId":{"type":"string","format":"int32","description":"ID of <<glossary:task>>>"},"guid":{"type":"string","format":"uuid","description":"Unique of task."},"jobId":{"type":"string","description":"ID of job.","format":"int64"},"status":{"type":"string","description":"Status of job."},"submittedAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time job was submitted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"createdAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time job was created in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"name":{"type":"string","description":"Name of task."},"percentComplete":{"type":"integer","format":"int32","description":"Percentage of task completed."},"priorTaskGuids":{"type":"array","description":"List of tasks in batch job.","items":{"type":"string","format":"uuid"}},"output":{"type":"object","description":"List of error messages and logs.","properties":{"summary":{"type":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}},"log":{"type":"object"}}}}},"JobSummary":{"type":"object","properties":{"jobId":{"type":"string","format":"int64","description":"ID of variation job."},"priority":{"type":"string","description":"Priority of job.","enum":["verylow","low","medium","high","veryhigh"]},"userName":{"type":"string","format":"email","description":"Login of <<glossary:principal>> that submitted job, e.g. `user.name@company.com` or `SSO_user.name@company` for <<glossary:federated tenant>>s. Login strings are lowercase. See [Logins](principals).","example":"user.name@company.com"},"status":{"type":"string","description":"Status of job.","enum":["QUEUED","RUNNING","FINISHED","FAILED","CANCELLED","PENDING","CANCELLING","CANCEL_REQUESTED"]},"submittedAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time job was submitted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"startedAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time job was created in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"endedAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time job ended in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"name":{"type":"string","description":"Name of job."},"type":{"type":"string","description":"Type of job. See [Platform Jobs](doc:platform-jobs)."},"progress":{"type":"integer","format":"int32","description":"Percent of job completion."},"resourceGroupId":{"type":"string","description":"UUID of <<glossary:resource group>>.","format":"uuid"},"entitlement":{"type":"string","description":"Application licensed by tenant."},"details":{"type":"object","description":"Detailed information about job and child tasks.","properties":{"resources":{"type":"array","description":"List of <<glossary:resource URI>>s.","items":{"type":"object","properties":{"uri":{"type":"string","format":"uri"}}}},"summary":{"type":"string"}}}}},"Job":{"type":"object","allOf":[{"$ref":"#/components/schemas/JobSummary"},{"type":"object","properties":{"tasks":{"type":"array","items":{"$ref":"#/components/schemas/Task"}}}}]},"PortfolioSettings":{"type":"object","required":["currency","treatyIds","name"],"properties":{"name":{"type":"string","description":"Name of exposure variation."},"description":{"type":"string","description":"Description of exposure variation."},"currency":{"type":"object","description":"Currency used in modeling of exposure variation.","required":["currencyVintageName","currencySchemeName"],"properties":{"currencyVintageName":{"type":"string","description":"Version of <<glossary:currency scheme>> that defines exchange rate between the <<glossary:anchor currency>> and the specified currency (`currencyCode`).","example":"RL25"},"currencySchemeName":{"description":"Name of <<glossary:currency scheme>> used to calculate the value of specified currency (`currencyCode`) based on the exchange rate between that currency and the scheme's <<glossary:anchor currency>> at the specified point in time (`vintage`).","example":"RMS","type":"string"}}},"geocodeVersion":{"type":"string","description":"Version of gecoding engine used in modeling of exposure variation."},"treatyIds":{"type":"array","description":"List of treaties attached to exposure variation.","minItems":0,"items":{"type":"integer"}}}},"AccountSettings":{"type":"object","required":["currency","name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"currency":{"type":"object","required":["currencyVintageName","currencySchemeName"],"properties":{"currencyVintageName":{"type":"string","description":"Version of <<glossary:currency scheme>> that defines exchange rate between the <<glossary:anchor currency>> and the specified currency (`currencyCode`).","example":"RL25"},"currencySchemeName":{"type":"string","description":"Name of <<glossary:currency scheme>> used to calculate the value of specified currency (`currencyCode`) based on the exchange rate between that currency and the scheme's <<glossary:anchor currency>> at the specified point in time (`vintage`).","example":"RMS"}}},"geocodeVersion":{"type":"string"},"treatyIds":{"type":"array","minItems":0,"items":{"type":"integer"}}}},"Settings":{"type":"object","oneOf":[{"$ref":"#/components/schemas/PortfolioSettings"},{"$ref":"#/components/schemas/AccountSettings"}],"discriminator":{"propertyName":"resourceType","mapping":{"portfolio":"#/components/schemas/PortfolioSettings","account":"#/components/schemas/AccountSettings"}}},"RiskdataResource":{"type":"string","format":"uri"},"ErrorMessage":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"logId":{"type":"string"}}}},"securitySchemes":{"rms_bearer_token":{"type":"http","description":"RMS tenant specific bearer token to make authorized requests with temporary life span","scheme":"bearer","bearerFormat":"JWT"},"rms_api_key":{"type":"apiKey","name":"Authorization","description":"RMS tenant specific api key to make authorized requests","in":"header"}}}}