{"openapi":"3.0.2","info":{"title":"Peril Converter API","description":"Api specification of Peril Converter API","version":"2026.01.b"},"servers":[{"url":"https://{host}/platform/perilconverter/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"}}}],"security":[{"rms_api_key":[]},{"rms_bearer_token":[]}],"x-readme":{"explorer-enabled":false,"parameter-ordering":["header","path","query","body","form","cookie"],"samples-languages":["json","curl","python","java","csharp","node"],"proxy-enabled":true,"samples-enabled":true},"paths":{"/jobs":{"post":{"tags":["Peril Converter Jobs"],"summary":"Create peril converter job","operationId":"createPerilConverterJob","parameters":[{"name":"x-rms-resource-group-id","description":"ID of <<glossary:resource group>>. Operation is assigned to this resource group's quota. See [Resource Groups](doc:resource-management)","in":"header","required":true,"schema":{"type":"string","default":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"}},{"name":"x-rms-requestid","description":"Unique value that acts as an <<glossary:idempotency key>> for the request. \n\nRequests with the same idempotency key do not create new `PERIL_CONVERTER` jobs. See [Idempotency Requests](doc:idempotent-requests).","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerilConverterRequest"}}}},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"location of the job with jobId","schema":{"type":"string","format":"uri","example":"https://api-use1.rms.com/platform/v1/jobs/23112"}}}},"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"}}}}}},"get":{"tags":["Peril Converter Jobs"],"summary":"Search peril converter jobs","operationId":"searchPerilConverterJobs","parameters":[{"name":"filter","in":"query","description":"<<glossary:Query string>> to select response data based on property values.\n\nSupported properties: `endedAt`, `jobId`, `name`, `startedAt`, `status`, `type`, `userName`\n\n|Property|Data Type|Comparison|List|Logical|\n|:--------|:--------|:--------|:---|:---|\n|`endedAt`|`YYYY-MM-DD`|`=` ||`AND`|\n|`jobId`|`string`|`=` ||`AND`|\n|`name`|`string`|`=` ||`AND`|\n|`startedAt`|`YYYY-MM-DD`|`=` ||`AND`|\n|`status`|`string`|`=` ||`AND`|\n|`type`|`string`|`=` ||`AND`|\n|`userName`|`string`|`=` ||`AND`|\n\nSee [Filtering Responses](doc:response-filtering)","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-delimited list of properties. Sort order defined by one of `ASC` (ascending) or `DESC` (descending). See [Response Pagination](doc:response-pagination).\n\nSupported properties: `jobId`, `name`, `status`, `type`","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of records to display per page","schema":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","description":"Number of page displaying the returned records, starting at _0_.","schema":{"type":"integer","format":"int32","default":0}},{"name":"include-input","in":"query","required":false,"description":"If `true`, returns peril converter job settings and data","schema":{"type":"boolean","default":false}}],"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":["Peril Converter Jobs"],"summary":"Get peril converter job","operationId":"getPerilConverterJob","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":["Peril Converter Jobs"],"summary":"Update peril converter job","operationId":"updatePerilConverterJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"requestBody":{"description":"Peril converter job settings","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"description":"Status of peril converter job","type":"string","enum":["CANCELED","CANCELLED"]},"priority":{"type":"string","description":"Priority of peril converter job","enum":["high","medium","low","veryhigh","verylow"]}}}}}},"responses":{"202":{"description":"Accepted"},"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 job.","schema":{"type":"string"},"required":true}},"schemas":{"Task":{"type":"object","properties":{"taskId":{"type":"string","format":"int32","description":"ID of task."},"guid":{"type":"string","format":"uuid","description":"Unique ID of task."},"jobId":{"type":"string","description":"ID of job. See [Platform Jobs](ref:platform-jobs).","format":"int64"},"status":{"type":"string","description":"Status of job. One of `PENDING`, `QUEUED`, `RUNNING`, `FINISHED`, `FAILED`, `CANCEL_REQUESTED`, `CANCELLING`, `CANCELLED`."},"submittedAt":{"type":"string","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","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 job."},"percentComplete":{"type":"integer","description":"Percent of job completion.","format":"int32"},"priorTaskGuids":{"type":"array","description":"List of tasks in job.","items":{"type":"string","format":"uuid"}},"output":{"type":"object","properties":{"summary":{"type":"string"},"errors":{"type":"array","description":"List of error messages.","items":{"type":"object","properties":{"message":{"type":"string"}}}},"log":{"type":"object","description":"Log of task processing."}}}}},"JobSummary":{"type":"object","properties":{"jobId":{"type":"string","description":"ID of job. See [Platform Jobs](ref:platform-jobs).","format":"int64"},"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","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","description":"Time job was started in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"endedAt":{"type":"string","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."},"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"}}}}]},"JobSearchResult":{"type":"array","items":{"$ref":"#/components/schemas/JobSummary"}},"PerilConverterRequest":{"type":"object","required":["resourceUris","resourceTypes","settings"],"properties":{"resourceTypes":{"type":"array","description":"List of resource types, e.g. `portfolios, `accounts`.","items":{"type":"string","enum":["portfolios","accounts"]},"example":["portfolios"]},"resourceUris":{"type":"array","description":"List of <<glossary:resource URI>>s.\n\nPeril converter job updates  <<glossary:peril coverage>> for specified accounts and portfolios.","items":{"type":"string","format":"uri","example":"/platform/riskdata/v1/exposures/6626475/portfolios/1"}},"settings":{"description":"Peril conversion job configurations.\n\nConverts `sourcePeril` to `targetPeril` in peril coverage of the specified `resourceUris`.","$ref":"#/components/schemas/PerilConverterSettings"}}},"PerilConverterSettings":{"type":"object","required":["sourcePeril","targetPerils"],"properties":{"sourcePeril":{"description":"Peril to convert. Perils are identfied by `peril` and `newCauseOfLoss` or by `causeOfLoss` depending on how peril coverage is defined for the resource.\n\n- Object 1: If by policy or step policy, `peril` and `newCauseOfLoss`. `newCauseOfLoss` is optional and only applicable to HD modeling.\n- Object 2: If by HD step policy, `causeOfLoss`","$ref":"#/components/schemas/PerilSpecification"},"targetPerils":{"type":"array","description":"List of perils to convert to. At least one target peril is required.\n\nPerils are identfied by `peril` and `newCauseOfLoss` or by `causeOfLoss` depending on how peril coverage is defined for the resource.\n\n- Object 1: If by policy or step policy, `peril` and `newCauseOfLoss`. `newCauseOfLoss` is optional and only applicable to HD modeling.\n- Object 2: If by HD step policy, `causeOfLoss`","items":{"$ref":"#/components/schemas/PerilSpecification"},"minItems":1},"includeSubPolicyConditions":{"type":"boolean","description":"If `true`, peril conversion applies to <<glossary:policy conditions>>, e.g. <<glossary:policy restrictions>> and <<glossary:sublimit restrictions>>.\n\nNot applicable to HD step policies.","default":false},"includePolicyReinsurance":{"type":"boolean","description":"If `true`, peril conversion applies to <<glossary:policy cessions>>, e.g. <<glossary:facultative cessions>> and <<glossary:surplus share treaties>>.\n\nNot applicable to HD step policies.","default":false},"overwriteExistingCoverage":{"type":"boolean","description":"If `true`, peril conversion overwrites existing coverage for target perils with the specified source peril. \n\nIf the `targetPeril` is `1` (earthquake) and the account/portfolio has existing earthquake policies or location coverage, those exposures are updated with new policies and location coverages.","default":false},"createBackup":{"type":"boolean","description":"If `true`, peril converter creates a copy of each account/portfolio specified in `resourceUris` and applies updated peril coverage to those resources. New resources share the name of the original, but with string `_Copy` appended.","default":false},"countryCodesFilter":{"type":"array","description":"List of countries identified by [FIPs country code](https://en.wikipedia.org/wiki/List_of_FIPS_country_codes). \n\nFilters location exposures by country. If specified, peril conversions apply to locations in the specified countries only.","items":{"type":"string","pattern":"^[A-Z]{2}$"},"example":["CA","MX","US"]}}},"PerilSpecification":{"type":"object","anyOf":[{"type":"object","required":["peril"],"properties":{"peril":{"type":"integer","format":"int32","description":"ID of policy type.\n\n|ID|Code|\n|--|----|\n|`1`|EQ|\n|`2`|WS|\n|`3`|CS/WT|\n|`4`|FL|\n|`5`|FR|\n|`6`|TR|\n|`7`|WC|\n\nTo learn more, see [Policy Table](https://help.rms.com/help/RiskModeler/prod/Content/RL_and_RB_Schema/RMS_EDM_policy.htm?Highlight=POLICYTYPE) in Help Center.","example":1},"newCauseOfLoss":{"type":"integer","format":"int32","description":"ID of new cause of loss, which can identify subperils for use in HD modeling. \n\n|ID|Code|\n|--|----|\n|`0`|Use `peril` value.|\n|`1`|EQ|\n|`2`|WS|\n|`3`|CS|\n|`4`|FL|\n|`5`|FR|\n|`6`|TR|\n|`26`|WI|\n|`27`|WA|\n|`28`|WI,WA|\n|`66`|CONV|\n|`67`|CBRN|\n|`76`|CONV,EQ|\n|`77`|CBRN, EQ|\n|`78`|TR, EQ|\n\nTo learn more, see [Policy Table](https://help.rms.com/help/RiskModeler/prod/Content/RL_and_RB_Schema/RMS_EDM_policy.htm?Highlight=NEWCAUSEOFLOSS) in Help Center.","default":0,"example":0}}},{"type":"object","required":["causeOfLoss"],"properties":{"causeOfLoss":{"type":"integer","format":"int32","description":"ID of HD step policy cause of loss.\n\n|ID|Code|\n|--|----|\n|`1`|EQ|\n|`2`|WS|\n|`3`|CS|\n|`4`|FL|\n|`5`|FR|\n|`6`|TR|\n|`26`|WI|\n|`27`|WA|\n\nTo learn more, see [HD Step Policy Table](https://help.rms.com/help/RiskModeler/prod/Content/RL_and_RB_Schema/RMS_EDM_hdsteppolicy.htm?Highlight=CAUSEOFLOSS) in Help Center.","example":5}}}]},"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"}}}}