Resource Quota Management

Understand resource quotas and resource groups

Overview

Intelligent Risk Platform manages access to system resources by means of resource quotas and resource groups.

A resource quota represents a countable system resource, such as the number locations that can be modeled per day, the number of model or non-model jobs that can be run concurrently, or the storage space in GB available to store exposure or result data.

For each entitlement, the tenant is allocated a resource quota for key system resources. A resource quota defines limits on aggregate resource consumption per entitlement. (The same quota applies to end users of the Risk Modeler application and client applications using Platform APIs with the RI-RISKMODELER entitlement.)

At the same time the tenant is provisioned with a resource group, which enables the tenant to manage and track the tenant's quota of platform jobs. Whenever a client application submits a request that initiates a job, the client must specify the ID of a resource group.

The following sections describe entitlement-based resource quotas, identify the relationship between resource groups and job quotas, and strategies for using resource groups effectively on the Intelligent Risk Platform.

Resource Quotas

A resource quota specifies a fixed share of Intelligent Risk Platform system resources that is allocated to a tenant as part of an entitlement. These resource quotas are managed and tracked separately for each entitlement.

A resource quota guarantees access to a share of system resources and constrains resource consumption per entitlement. Each entitlement is allocated resource quotas that govern a variety of compute and storage resources. There are three broad types of resource quotas: ModeledLocations, jobs, and storage quotas.

  • Total Daily Modeled Locations Limit
  • Total Daily Accumulated Risks Limit
  • Model Job Concurrency Limit
  • Non-model Job Concurrency Limit
  • Total Daily Jobs Limit
  • Total Exposure Storage Limit
  • Total Other Storage Limit
  • Total EDM Database Limit

Resource quotas measure usage that aggregate the activity of all principals with access to a licensed entitlement. End users of an Intelligent Risk Platform application (e.g. Risk Modeler) and client applications using Platform APIs with the corresponding entitlement (e.g. `RI-RISKMODELER) are tracked with the same resource quota.

The Intelligent Risk Platform allocates distinct resource quotas to the tenant for each entitlement, RI-EXPOSUREIQ RI-RISKMODELER RI-TREATYIQ or `RI-UNDERWRITEIQ. A single tenant may license multiple applications and be allocated different resource quotas for each of those entitlements. Each entitlement is allocated a distinct resource group, resource quotas, and workflow queues for managing model and non-model jobs. To learn more about entitlements, see Entitlements.

Modeled Locations Quota

The modeled locations quota specifies the total number of location exposures that the tenant -- in aggregate-- can model per day. This quota includes end users of an Intelligent Risk Platform application (e.g. Risk Modeler) and client applications that specify a resource group tied to an entitlement (e.g. RI-RISKMODELER).

Licensed tenants with the RI-RISKMODELER and RI-UNDERWRITEIQ entitlements are allocated a quota of locations that can be modeled per day.

Job Quotas

A job is a computationally expensive and long-running process that consumes significant system resources, such as modeling a location, creating exposure data in batch, or importing or exporting data. In general, API requests that cannot be returned immediately are added to the workflow queue for processing. The API returns a 201 Created or 202 Accepted HTTP status code and the URI of a job resource that enables the client to poll for the status of the job.

Such requests utilize compute resources and count against the compute capacity of a tenant's resource quota.

Job quotas specify define Job quotas include the following resource quotas:

Resource QuotaDescription
Total Daily Accumulated Risks LimitQuota of accumulations that may be run per day.
Model Job Concurrency LimitQuota of model jobs that can be run concurrently.
Non-model Job Concurrency LimitQuota of non-model jobs that can be run concurrently.
Total Daily Jobs LimitQuota of jobs that can be run per day.

Distinct job quotas are allocated to the tenant for model jobs and non-model jobs.

A tenant with the RI-RISKMODELER may use resource groups to allocate job quotas to distinct user groups by means of resource groups.

Model Jobs

A model job is a platform job that performs the principal modeling or analysis operation. Such jobs generally produce an analysis result.

Model jobs are sometimes called primary jobs and are contrasted with non-model jobs (secondary jobs). In general, primary jobs and secondary jobs are managed in distinct job queues. Primary jobs are general time-sensitive, and as such are managed separately from long-running data migration jobs.

JobEntitlement
ACCUMULATIONRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
ALMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DLMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
HDRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
PORTFOLIO_VARIATIONRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
ROLLUPRI-TREATYIQ

For more information on jobs and a list of the operations that initiate model jobs, see Platform Jobs.

In general, model jobs are managed in a different job queue than non-model jobs. Non-model jobs tend to be long-running and can delay the processing of more time-sensitive model jobs.

Non-model Jobs

A non-model job is a platform job that creates or updates a new resource. In general, these jobs are quite long-running and not time-sensitive. Examples of secondary jobs include import job and export jobs.

Non-model jobs are sometimes called secondary jobs. They are generally managed in a distinct job queue.

JobEntitlement
ALM_IMPORTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
ARCHIVE_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
ARCHIVE_SECURABLERI-DATAADMIN
AUTO_DELETE_ARCHIVERI-DATAADMIN
BULK_EDITRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
BULK_EXPORTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
BULK_GEOHAZRI-RISKMODELER, RI-UNDERWRITEIQ
CADOIRI-RISKMODELER
CEDE_IMPORTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CLIMATE_CHANGERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_ACCOUNT_CURRENCYRI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_AGGREGATE_PORTFOLIO_CURRENCYRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_EVENT_RATE_LOSSRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_PORTFOLIO_CURRENCYRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_RESULT_CURRENCYRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CONVERT_TREATY_CURRENCYRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
COPY_ACCOUNTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
COPY_AGGREGATE_PORTFOLIORI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
COPY_PORTFOLIORI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
COPY_TO_ARCHIVERI-DATAADMIN
CREATE_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
CREATE_MAP_LAYERRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DELETE_ACCOUNTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DELETE_AGGREGATE_PORTFOLIORI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DELETE_ARCHIVERI-DATAADMIN
DELETE_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DELETE_PORTFOLIORI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DELETE_RDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DEREGISTER_DATA_BRIDGE_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DETACH_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOMAIN_DATA_LOADRI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_DETACH_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_EXPOSURE_RESOURCERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_LOCATION_RESULTSRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_PEQT
DOWNLOAD_RDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
DOWNLOAD_REPORT
DOWNLOAD_RESULTSRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
EDM2EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
EDM_DATA_UPGRADERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
ENRICH_EXPOSURERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
EXPOSURE_BATCH_EDIT_WITH_GEOHAZRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
EXPOSURE_BATCH_EDITRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
GEOHAZRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
GROUPINGRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
MAP_PERSPECTIVERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
MARGINAL_IMPACTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
MODEL_PRICINGRI-UNDERWRITEIQ
MRI_IMPORTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
OED_IMPORTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
PATERI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
PLT_TO_ELT
RDM
RDM_DATABRIDGE
REGISTER_DATA_BRIDGE_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
RENAME_ANALYSISRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
REPORT_GENERATIONRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
RERUN_EPRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
RESTORE_ARCHIVERI-DATAVAULT
SIMULATE_LOSSESRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
STEP_TOOLRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
STOCHASTIC_CEPRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
UPDATE_RESULTS_COUNTRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
UPLOAD_EDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ
UPLOAD_RDMRI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ

For more information on jobs and a list of the operations that initiate non-model jobs, see Platform Jobs.

In general, non-model jobs are managed in a different job queue than model jobs. Non-model jobs tend to be long-running and can delay the processing of more time-sensitive model jobs.

Storage quotas

Tenants can track storage quota usage using the Tenant Data API operations.

MetricDescription
TotalEdmsCountNumber of EDM data modules.
ExposureStorageInGBSize of exposure data in GB.
OtherStorageInGBSize of other storage including results in GB.

Tracking Resource Quota Usage

The Tenant Data API exposes operations for viewing information about entitlement-based resource quotas, resource quota usage metrics, and resource groups.

The Get Usage Metrics and Get Usage Metrics by Date operations return resource quota usage metrics by entitlement.

Using these Tenant Data API operations, client applications with the Admin role can view usage metrics for various system resources: ModeledLocationsCount, TotalJobsCount, CancelledJobsCount, FailedJobsCount, CompletedJobsCount, ModelJobsCount, NonModelJobsCount, ModelJobsMaxConcurrency, NonModelJobsMaxConcurrency, TotalJobsMaxConcurrency, and TotalJobsAverage, TotalDelayedJobsAverage.

The Get Usage Metrics operation also returns information about storage quotas licensed by the tenant: TotalEdmsCount, ExposureStorageInGB, and OtherStorageInGB.

Resource Groups

A resource group is a mechanism for managing and tracking job quotas. A job quota specifies the number of jobs that are allocated to the tenant for a particular entitlement.

For each entitlement, the tenant is "seeded" a resource group, which is identified by a unique ID number. Whenever a client application makes a request that initiates a platform job, the client application must specify a valid resource group ID in the x-rms-resource-group-id header parameter of the request.

This resource group ID enables the Intelligent Risk Platform to track the number of jobs submitted by the tenant for each entitlement and ensure that no resource group exceeds its quota of platform jobs.

Resource Group IDs

All Intelligent Risk Platform endpoints that create a job now require that the client application pass a resource group ID in the x-rms-resource-group-id header.

The x-rms-resource-group-id header parameter passes a resource group ID. The resource group ID identifies the entitlement and resource group. A single entitlement may be allocated multiple resource groups, each of which has been allocated a percentage of the tenant's work load for that application.

The resource group enables the Intelligent Risk Platform to ensure that the client application has the correct entitlement to make the request and the specified resource group has sufficient resource quota.

As an operation that initiates a job, this operation requires the client pass a valid resource group ID in a header parameter:


curl --request POST \
     --url https://api-euw1.rms.com/platform/batch/v1/jobs/ \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-rms-resource-group-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
     --data '{exposure_data}'

If no resource group ID is specified in the request, the Intelligent Risk Platform returns an error.

Search Resource Group IDs

The Search Resource Group operation supports querying resource group IDs by entitlement.

The entitlement path parameter specifies the licensed Intelligent Risk Intelligence application. One of RI-DATAVAULT RI-EXPOSUREIQ RI-RISKMODELER RI-TREATYIQ or RI-UNDERWRITEIQ.

For each resource group ID, the response lists the name of the resource group, the entitlement to which it applies, and information about the user and date that the resource group was created and updated.

This response also returns information about the scope of the resource group including whether it is the default resource group for the entitlement and whether it is applicable to all tenant principals.

Resource Group Administration

All resource group management tasks must be performed in Admin Center. The Tenant Data API does not support operations for managing resource groups.

Using controls Admin Center, tenant administrators can create, update, and delete resource groups. To learn more, see Resource Group and Application Management in Help Center.