{"openapi":"3.0.2","info":{"title":"Step API","version":"2023.11.b"},"servers":[{"url":"https://{host}/platform/step/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":["STEP jobs"],"summary":"Create STEP analysis job","operationId":"createStepJob","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","format":"uuid","default":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepAnalysisRequest"}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"Location of the job with jobId","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"}}}},"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":["STEP jobs"],"summary":"Search STEP analysis jobs","operationId":"getStepJobs","parameters":[{"name":"filter","in":"query","description":"<<glossary:Query string>> to select response data based on property values. \n\nSupported propeties: `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`|`=`  | |\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 propeties: `endedAt`, `jobId`, `name`, `startedAt`, `status`, `type`","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of records to display per page","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":["STEP jobs"],"summary":"Get STEP analysis job","operationId":"getStepJob","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":["STEP jobs"],"summary":"Update STEP analysis job","operationId":"updateStepJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"requestBody":{"description":"Updates to this STEP analysis job.","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Status of this STEP analysis job.","enum":["CANCELED"]},"priority":{"type":"string","description":"Priority of this STEP analysis job.","enum":["High","Medium","Low"]}}}}}},"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":{"StepAnalysisRequest":{"required":["resourceType","resourceUris","settings"],"type":"object","description":"STEP analysis job settings","properties":{"resourceType":{"type":"string","description":"Type of resource.","enum":["analyses"]},"resourceUris":{"type":"array","description":"URI of one or more analysis result. STEP analysis is based on the specified analyses.","items":{"type":"string","format":"uri","example":"/platform/riskdata/v1/analyses/5555"}},"settings":{"description":"STEP analysis settings.","$ref":"#/components/schemas/StepAnalysisSettings"}}},"StepAnalysisSettings":{"required":["analysisNamePrefix","name","eventSelectionId"],"type":"object","properties":{"name":{"description":"Name of combined STEP analysis. If `groupedResult` is `true`, this value names the STEP analysis.","maxLength":80,"minLength":1,"pattern":"^\\w((?!--)[\\w\\s-])*\\w$|^\\w$","type":"string"},"analysisNamePrefix":{"description":"Prefix to append to individual STEP analysis result. If `groupedResult` is `false`, the name of each STEP analysis result appends this value to the name of the original analysis result.","maxLength":64,"minLength":1,"pattern":"^\\w((?!--)[\\w\\s:-])*\\w$|^\\w*$","type":"string"},"description":{"maxLength":80,"minLength":1,"pattern":"^\\w((?!--)[\\w\\s:-])*\\w$|^\\w*$","type":"string","description":"Description of STEP analysis."},"eventSelectionId":{"minimum":1,"type":"integer","format":"int32","description":"ID of an event, a representation of a peril (e.g. earthquake, flood, fire). STEP analysis returns an estimate of losses before and after this event."},"currency":{"description":"Currency settings used to calculate projected losses in the STEP analysis.","$ref":"#/components/schemas/Currency"},"enableGrouping":{"type":"boolean","description":"Scope of STEP analysis. \n\n- If `true`, job computes a single, combined EP curve for all specified `resourceUris`. This combined STEP analysis result is identified using the specified `name`.\n- If `false`, job computes one EP curve for each of the specified `resourceUris`. The name of each STEP analysis result combines the name of the original analysis result and the specified `analysisNamePrefix`."}}},"Currency":{"required":["asOfDate","code","scheme","vintage"],"type":"object","properties":{"code":{"type":"string","description":"Code that identifies default currency used to calculate losses. Corresponds to a value in the specified currency scheme (`scheme`). If RMS Currency Scheme, conforms to [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) standard.","example":"USD"},"scheme":{"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"},"asOfDate":{"type":"string","description":"Effective date of currency scheme vintage.","example":"2014-09-10T00:00:00.000Z"},"vintage":{"type":"string","description":"Version of <<glossary:currency scheme>> that defines exchange rate between the <<glossary:anchor currency>> and the specified currency (`currencyCode`).","example":"RL25"}}},"JobSearchResult":{"type":"array","items":{"$ref":"#/components/schemas/JobSummary"}},"Task":{"type":"object","properties":{"taskId":{"type":"string","format":"int32","description":"ID <<glossary:task>>."},"guid":{"type":"string","format":"uuid","description":"Unique ID task."},"jobId":{"type":"string","format":"int64","description":"ID of job."},"status":{"type":"string","description":"Status of task. One of `PENDING`, `QUEUED`, `RUNNING`, `FINISHED`, `FAILED`, `CANCEL_REQUESTED`, `CANCELLING`, `CANCELLED`.","example":"CANCELED"},"submittedAt":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","example":"2020-01-01T00:00:00.000Z","description":"Time task 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 task was created in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"name":{"type":"string"},"percentComplete":{"type":"integer","format":"int32","description":"Percentage of job completed."},"priorTaskGuids":{"type":"array","description":"List of tasks in batch job.","items":{"type":"string","format":"uuid"}},"output":{"type":"object","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"},"priority":{"type":"string","description":"Priority of job.","example":"low","enum":["verylow","low","medium","high","veryhigh"]},"userName":{"type":"string","format":"email","description":"Login of <<glossary:principal>> that created job, e.g. `user.name@company.com` or `SSO_user.name@company.com` for federated tenants. Login strings are lowercase. See [Logins](ref:principals).","example":"user.name@company.com"},"status":{"type":"string","description":"Status of job.","example":"RUNNING","enum":["CANCELLED","CANCELLING","CANCEL_REQUESTED","FAILED","FINISHED","PENDING","QUEUED","RUNNING"]},"submittedAt":{"type":"string","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","example":"2020-01-01T00:00:00.000Z","description":"Time job started in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. 2020-01-01T00:00:00.000Z"},"endedAt":{"type":"string","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","format":"uuid","description":"ID of <glossary:resource group>>. This job is assigned to this resource group's quota."},"entitlement":{"type":"string","description":"Licensed Intelligent Risk Platform program. One of `RI-EXPOSUREIQ`, `RI-RISKMODELER`, `RI-TREATYIQ`, `RI-UNDERWRITEIQ`","example":"RI-RISKMODELER"},"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"}}}}]},"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"}}}}