July, 2024

🥥

Highlights

The July release introduces operations for managing database archives and policy condition templates.

  • The Admin Data API introduces support for managing database archives.

Learn More

Admin Data API

Search Archives

The Search Archives (GET /platform/admindata/v1/archives) returns a list of archives (archived databases) belonging to the tenant.

This operation takes four query parameters: filter, sort, offset, limit. To learn more, see Filtering and Pagination.

For example,

curl --request GET \
     --url 'https://{{HOST}}/platform/admindata/v1/securables?filter=createdBy%3Demployee%40company.com&sort=ASC&limit=100' \
     --header 'Authorization: XXXXXXXXXX' \
     --header 'accept: application/json'

The filter query parameter defines a query string that enables you to select response data based on property values. Supported properties: archiveName, archiveId, serverName, serverType, createdAt, createdBy. Supported logical operators depend on the data type of property.

ParameterTypeComparisonListLogical
archiveNamestring=, !=, LIKE, NOT LIKEIN, NOT INAND, OR
archiveIdnumber=, !=IN, NOT INAND, OR
createdAtyyyy-mm-dd=, !=AND, OR
createdBystring=, !=, LIKE, NOT LIKEIN, NOT INAND, OR
serverNamestring=, !=, LIKE, NOT LIKEIN, NOT INAND, OR
serverTypestring=, !=, LIKE, NOT LIKEIN, NOT INAND, OR

The response returns a list of the archives that match the query criteria:

[
    {
        "archiveName": "XXXXXXXXXXXXXXX",
        "archiveId": 24050,
        "serverName": "sql-instance-1",
        "serverType": "platform",
        "createdAt": "2024-03-20T15:29:45.000Z",
        "createdBy": "[email protected]",
        "sizeInMb": 84.0,
        "expiresAt": "2024-03-22T15:29:45.000Z"
    },
    ...
]

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Get Archive

The Get Archive operation (GET /platform/admindata/v1/archives/{archiveId}) returns the specified archive (database archive). This operation accepts a single path parameter that specifies the archiveId.

The response returns detailed information about the specified archive.

{
  "archiveName": "__ValidName88035_EbZK",
  "archiveId": 3885339,
  "serverName": "sql-instance-1",
  "serverType": "platform",
  "createdAt": "2024-04-22T07:28:44.805Z",
  "createdBy": "[email protected]",
  "sizeInMb": 84.0,
  "expiresAt": "2024-04-24T07:28:44.805Z",
  "files": [
    {
      "url": "https://rms-tenants-npe-eu-west-1.s3.eu-west-1.amazonaws.com/2001532/archive/riskmodeler/ba9dbe9c-8c47-44c9-b673-576d1445cf68/__ValidName88035_EbZK.mdf?X-Amz-Expires=604800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA3CNSARQO2IAPFE5Y/20240422/eu-west-1/s3/aws4_request&X-Amz-Date=20240422T142843Z&X-Amz-SignedHeaders=host&X-Amz-Signature=3fb76ac65815c6bff07b5a8cfe66ca13a1f25793228f98f31f7d1b3a06a371f7",
      "type": "MDF"
    },
    {
      "url": "https://rms-tenants-npe-eu-west-1.s3.eu-west-1.amazonaws.com/2001532/archive/riskmodeler/ba9dbe9c-8c47-44c9-b673-576d1445cf68/__ValidName88035_EbZK.ldf?X-Amz-Expires=604800&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA3CNSARQO2IAPFE5Y/20240422/eu-west-1/s3/aws4_request&X-Amz-Date=20240422T142844Z&X-Amz-SignedHeaders=host&X-Amz-Signature=27117a60744a6fec5aeb4ae4e15864b14706a99666350e18a1623f55462c20eb",
      "type": "LDF"
    }
  ]
}

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Restore database

The Restore Archive operation (POST /platform/admindata/v1/archives/{archiveId}/restore) restores the specified archived database. This operation accepts a single path parameter that specifies the archiveId.

This operation accepts two request headers: the x-rms-resource-group-id is required. This value identifies the resource group to which this work is allocated. To learn more, see Resource Groups. The optional x-rms-requestId request header makes this an idempotent request.

curl --request POST \
     --url https://api-euw1.rms.com/platform/copy/v1/jobs \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-rms-resource-group-id: 56' \
     --header 'x-rms-requestId: 15'

All other parameters are specified in the request body.

{
  "serverId": 1,
  "exposureSetId": 0,
  "databaseName": "string",
  "owner": "string",
  "groups": [
    {
      "groupId": "string"
    }
  ],
  "skipRegister": true
}

The serverId parameter is required. All other parameters are optional. Depending on the value of the skipRegister parameter, access rights to the restored database may be identical to that of the archived database or redefined using the exposureSetId and groups parameter.

ParameterTypeDescription
serverIdnumberID of the server hosting the restored database.
exposureSetIdnumberID of the exposure set. Required if skipRegister is true.
databaseNamenumberName of the restored database. If not provided, restored database has the same name as archive.
ownernumberLogin that identifies the owner of the restored database.
groupsarrayList of groups that can access the restored database. Required if skipRegister is true.
skipRegisterbooleanIf true, groups and exposureSetId parameters are required. By default, false.
{
  "serverId": "1",
  "databaseName": "restore_delete_1818_2_98",
  "owner": "[email protected]",
  "exposureSetId": 3529162,
  "skipRegister": "false"
}

If successful, the response returns a 202 ACCEPTED response and adds a job to the workflow job queue.

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Delete Archive

The Delete Archive operation (DELETE /platform/admindata/v1/archives/{archiveId}/restore) deletes the specified archived database. This operation accepts a single path parameter that specifies the archiveId.

This operation accepts two request headers: the x-rms-resource-group-id is required. This value identifies the resource group to which this work is allocated. To learn more, see Resource Groups. The optional x-rms-requestId request header makes this an idempotent request.

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Search Admin Jobs

The Search Admin Data Jobs operation (GET /platform/admindata/v1/archives/{archiveId}/jobs) returns a list of Admin Data jobs.

This operation takes four query parameters: filter, sort, offset, limit. To learn more, see Filtering and Pagination.

The filter query parameter defines a query string that enables you to select response data based on property values. Supported properties: endedAt, entitlement, jobId,name, startedAt, status, type, userName. Supported logical operators depend on the data type of property.

The response returns a list of jobs:

[
    {
        "jobId": "23255695",
        "userName": "[email protected]",
        "status": "FINISHED",
        "submittedAt": "2024-04-19T06:24:47.127Z",
        "startedAt": "2024-04-19T06:24:49Z",
        "endedAt": "2024-04-19T06:26:06Z",
        "name": "Restore archive 3523365",
        "type": "RESTORE_ARCHIVE",
        "progress": 100,
        "priority": "medium",
        "entitlement": "RI-RISKMODELER",
        "resourceGroupId": "3d7d0eb9-369b-4de5-8e24-40d62231918c",
        "details": {
            "resources": [],
            "summary": "RESTORE_ARCHIVE is successful"
        },
        "warnings": []
    },
    ...
]

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Get Admin Data Job

The Get Admin Data Job operation (GET /platform/admindata/v1/jobs/{jobId}) returns the specified Admin Data API job. This operation accepts a single path parameter that specifies the jobId.

The response returns detailed information about the specified job.

{
  "jobId": "23255695",
  "userName": "[email protected]",
  "status": "FINISHED",
  "submittedAt": "2024-04-19T06:24:47.127Z",
  "startedAt": "2024-04-19T06:24:49Z",
  "endedAt": "2024-04-19T06:26:06Z",
  "name": "Restore archive 3523365",
  "type": "RESTORE_ARCHIVE",
  "progress": 100,
  "priority": "medium",
  "entitlement": "RI-RISKMODELER",
  "resourceGroupId": "3d7d0eb9-369b-4de5-8e24-40d62231918c",
  "details": {
    "resources": [],
    "summary": "RESTORE_ARCHIVE is successful"
  },
  "warnings": [],
  "tasks": [
    {
      "taskId": "1",
      "guid": "c3790f73-36ab-45c9-95e7-47023c4811df",
      "jobId": "23255695",
      "status": "Succeeded",
      "submittedAt": "2024-04-19T06:24:49.664Z",
      "createdAt": "2024-04-19T06:24:47.123Z",
      "name": "RESTORE_ARCHIVE",
      "percentComplete": 100,
      "output": {
        "summary": "",
        "errors": [],
        "log": {
          "databaseName": "restore_delete_1818_6898_988",
          "exposureSetId": "Not Available",
          "owner": "[email protected]",
          "serverId": "2",
          "serverName": "databridge-1",
          "serverType": "DATA_BRIDGE"
        }
      }
    }
  ]
}

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Update Admin Data Job

The Update Admin Data Job operation (PATCH /platform/admindata/v1/jobs/{jobId}) updates the specified Admin Data job. Using this operation, the client can change the status or priority of existing jobs.

This operation accepts a single path parameter that specifies the jobId. All other parameters are specified in the request body. One of jobstatus or priority.

The operation can cancel the specified job:

{
  "JobStatus": "cancelled"
}

The operation change the priority of the job. One of veryhigh, high, medium, low, or verylow:

{
  "JobStatus": "veryhigh"
}

To perform this operation, the client application must belong to a group that has been assigned the Data Administrator role.

Export API

Create Export Job

The Create Export Job operation (POST /platform/export/v1/jobs/) initiates jobs for exporting exposure and result data on the Intelligent Risk Platform.

This operation now supports seven different types of export jobs: EDM, EXPOSURE_RESOURCE, LOCATION_RESULTS, RDM, RDM_DATABRIDGE, RESULTS, and ROLLUP_RESULTS.

Rollup exports

The ROLLUP_RESULTS export type enables you to export and download result data returned from a rollup analysis.

A rollup analysis computes marginal EP curves calculates gross and net portfolio position metrics, and breakdowns for each hierarchy node in the portfolio. Rollup results include a PLT, EP curves, and statistics (aal, stddev, cv ). Analysis data may be segmented or unsegmented.

Unlike other export types, a rollup export supports exporting a single rollup analysis result. Rollup analysis results can be exported to CSV and PARQUET files.

The exportType, resourceUri, resourceType and settings object are all required:

{
  "exportType": "ROLLUP_RESULTS",
  "resourceUri": "/platform/riskdata/v1/analyses/559180",
  "resourceType": "analyses",
  "settings": {
    "fileExtension": "CSV",
    "lossDetails": {
      "ep": {
        "includeSegmented": true,
        "includeUnsegmented": true,
        "positionTypes": [
          "GROSS",
          "NET",
          "RETRO_CONTRACT",
          "RETRO_CONTRACT_SUBJECT",
          "NODE",
          "CEDED",
          "ASSUMED",
          "CONTRACT_ASSUMED"
        ]
      },
      "stats": {
        "includeSegmented": true,
        "includeUnsegmented": true,
        "positionTypes": [
          "GROSS",
          "NET",
          "RETRO_CONTRACT",
          "RETRO_CONTRACT_SUBJECT",
          "NODE",
          "CEDED",
          "ASSUMED",
          "CONTRACT_ASSUMED"
        ]
      },
      "plt": {
        "includeSegmented": true,
        "includeUnsegmented": true,
        "positionTypes": [
          "GROSS",
          "NET",
          "RETRO_CONTRACT",
          "RETRO_CONTRACT_SUBJECT",
          "NODE",
          "CEDED",
          "ASSUMED",
          "CONTRACT_ASSUMED"
        ]
      }
    }
  }
}

As with all export jobs, a ROLLUP_RESULTS export job requires that you specify exportType, resourceUri, resourceType parameters:

PropertyTypeDescription
exportTypestringROLLUP_RESULTS
resourceUristringResource URI of a result.
resourceTypestringFor this export type, analyses is the only valid value.

Thesettings object specifies parameters that are specific to ROLLUP_RESULTS exports:

PropertyTypeDescription
fileExtensionstringFile format of exported data. One of CSV
lossDetailsobjectRollup result data to export. One or more of ep, stats, plt
epobjectSettings for EP metrics to export. Includes includedSegmented,includeUnsegmented, positionTypes
statsobjectSettings for statistics to export. Includes includedSegmented,includeUnsegmented, positionTypes
pltobjectSetting for PLT data to export. Includes includedSegmented,includeUnsegmented, positionTypes
includedSegmentedbooleanIf true, segmented data is exported.
includeUnsegmentedbooleanIf true, unsegmented data is exported.
positionTypesarrayList of positions to export. Valid values include ASSUMED, CEDED, CONTRACT_ASSUMED, GROSS, NET, NODE, RETRO_CONTRACT_SUBJECT, and RETRO_CONTRACT

EDM exports

The EDM export now enables you to filter the exposure data exported to EDM by exposure type and exposure ID. The new filtering object in body of the request specifies the exposureResourceType and exposureResourceId parameters:

{
  "exportType": "EDM",
  "resourceUri": "/platform/riskdata/v1/exposures/69290",
  "resourceType": "EXPOSURE",
  "settings": {
    "fileExtension": "BAK",
    "fileName": "test",
    "sqlVersion": "2019",
    "filters": {
      "exposureResourceType": "ACCOUNTS",
      "exposureResourceIds": [84]
    }
  }
}

The filters object consists of two parameters:

PropertyTypeDescription
exposureResourceTypestringType of exposure resources to export. One of ACCOUNTS, AGGREGATEPORTFOLIOS, PORTFOLIOS
exposureResourceIdsarraysList of exposures to export. Accounts, aggregate portfolios, or portfolios are identified by ID.

The exported EDM contains only those exposures that match the parameters defined in the filters object. If no filters object is specified in the request, the entire EDM is exported.

If exposureResourceType parameter specifies an exposure type that is not supported, the request returns a CLIENT-404 error:

{
  "code": "CLIENT-404",
  "message": "An error while converting ExposuresResourceType - cannot find exposure type by value: PORTFOLOS",
  "logId": "a4d5e02d29167097"
}

If the exposureResourceIds parameter specifies an invalid exposure ID (e.g., an account ID that does not exist),the request returns a EXPORT-017 error:

}
    "code": "EXPORT-017",
    "message": "Exposure Resource Ids [2] are not valid.",
    "logId": "d2d461404b2a31f9"
}

EDM and RDM exports

The July release also introduces updates to way this operation manages EDM and RDM exports. The RDM and EDM export jobs no longer support SQL Server 2014 downloads. If the request specifies a sqlVersion value of 2014, the API returns a EXPORT_SERVICE-022 error:

{
  "code": "EXPORT_SERVICE-022",
  "message": "With Microsoft SQL 2014 version coming to end of life on July 9 2024, IRP has ended its support. Please use the higher SQL versions offered in IRP.",
  "logId": "9a630b9877821364"
}

Search Export Jobs

The [Search Export Jobs] operation now returns information about the exposures export in an EDM job.

The response now includes additional information in the details object. The resources property is an array that lists the resource URI of every exported exposure. The summary property provides summary information about the exported exposures.

 "details": {
            "resources": [
                {
                    "uri": "/platform/riskdata/v1/exposures/476665"
                }
            ],
            "summary": "portfolio Id:212 with 2 account(s), 48 location(s) exported"
        }

Get Export Job

The [Get Export Job] operation now returns information about the exposures export in an EDM job.

The response now includes the log object, which includes information about the exposures exported to the EDM:

"log": {
                    "exposureResourceNames": "Prem1",
                    "exposureResourceIds": "[212]",
                    "exposureType": "PORTFOLIO",
                    "exposureName": "EDM_xxxxxxxxxx",
                    "exposureSetId": "476665",
                    "downloadUrl": "https://rms-tenants-npe-eu-west-1.s3.eu-west-1.amazonaws.com/xxxxxxx/export/platform/edm/EDM_xxxx.BAK?xxxxxxxxxxxxxxx",
                    "fileSize": "3 MB",
                    "expiresAt": "2024-07-02T11:25:01.831Z",
                    "fileExtension": "BAK",
                    "sqlVersion": "2019"
                }

Analysis API

Get HD EP Metrics

The Get HD EP Metrics operation returns EP curves computed during an HD analysis. This operation now returns an error message if a negative number is specified as a value in the query.

This operation supports query string parameters that filter the HD EP analysis result data. A keyName (one of returnPeriod, criticalProbability, or validFinancialPerspectiveKeys) must be specified as a query parameter. If the keyName is returnPeriod or criticalProbability, the specified keyValue query parameter must be a positive number, i.e. greater than 0.0, or the API returns an error message. If the keyName is validFinancialPerspectiveKeys, the keyValue is a string that identifies a financial perspective, i.e. GU_LOSS or GR_LOSS.

For example,

curl --request GET \
     --url 'https:/{host}/platform/riskdata/v1/analyses/67/ep/interpolate? \
     perspectiveCode=GS& \
     exposureResourceId=56& \
     exposureResourceType=PORTFOLIO& \
     keyName=RETURNPERIOD& \keyValue=7' \
     --header 'Authorization: XXXXXXXXXX' \
     --header 'accept: application/json'