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 specifies a fixed share of an Intelligent Risk Platform system resource.
Every Intelligent Risk Platform tenant is allocated a set of resource quotas as part of an application entitlement. Each resource quota defines a constraint that limits the aggregate consumption of a specific system resource. For example, a tenant may be allocated a certain number primary jobs per day.
At the same time, the tenant is provisioned with a resource group that enables managing and tracking of resource quota usage. Whenever a principal (end user or client) that is a member of a resource group makes use of a system resource the Intelligent Risk Platform counts that usage against the corresponding resource quota.
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 represents a countable system resource, such as the number locations that can be modeled per day, the number of model or secondary jobs that can be run concurrently, or the storage space available to store exposure or result data.
These quotas are allocated to the tenant as part of a licensed entitlement and are tracked by means of a resource group. Each resource quota defines a constraint that limits the consumption of a system resource by the members of that resource group.
Tenant admins can manage core resource quotas in Admin Center or via Tenant Data APIs:
- Total Daily Modeled Locations Limit
- Total Daily Accumulated Risks Limit
- Primary Job Concurrency Limit
- Secondary Job Concurrency Limit
- Total Daily Jobs Limit
- Total Exposure Storage Limit
- Total Other Storage Limit
- Total EDM Database Limit
These resource quotas represent an aggregate value that takes into account the activity of both end-users of Intelligent Risk Platform applications and client applications that use Platform APIs via a RI-RISKMODELER entitlement.
There are three types of resource quotas: the ModeledLocations quota, jobs quotas, and storage quotas. The following sections describe each of type in detail.
Modeled Locations Quota
A modeled locations quota specifies the total number of location exposures that a resource group can model per day.
A location is a property, building, business, or other asset with location coverage that may be damaged by catastrophe events. Locations are modeled collectively as part of an account, portfolio, or aggregate portfolio using the appropriate model profile. The primary job computes an analysis result.
The tenant's modeled locations quota is decremented whenever a member of the resource group runs a job that models an account, portfolio, or aggregate portfolio. The same resource quota applies to locations modeled by end users in an Intelligent Risk Platform application (e.g. Risk Modeler) and those modeled by clients using Risk Data API operations.
Job Quotas
A job is a computationally expensive and long-running process that consumes significant system resources, such as modeling a location, importing exposure data, or updating portfolios in bulk.
Because these API requests cannot be returned immediately, they are added to a workflow queue for processing. This queue is a temporary holding place for jobs that is used to manage, prioritize, and process work according to the workflow queue's rules.
Whenever a job is initiated and added to a workflow queue, 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. To learn more, see Platform Jobs.
Such requests utilize compute resources and count against the compute capacity of a tenant's resource quota.
A tenant is allocated different job quotas depending on the entitlement:
| Entitlement | Resource Quota | Description |
|---|---|---|
RI-DATAADMIN | maxConcurrentDataAdminJobs | Quota of jobs that can be run concurrently. |
RI-DATAVAULT | NonModeledConcurrentSnapshotJobs | Quota of snapshot jobs that can be run concurrently. |
RI-DATAVAULT | NonModeledDailySnapshotJobs | Quota of snapshot jobs that can be run daily. |
RI-EXPOSUREIQ | maxConcurrentAccumulationJobs | Quota of accumuation jobs that can be run concurrently. |
RI-EXPOSUREIQ | maxConcurrentAccumulationRollupJobs | Quota of accumuation rollup jobs that can be run concurrently. |
RI-EXPOSUREIQ | maxConcurrentNonAccumulationJobs | Quota of non-accumuation jobs that can be run concurrently. |
RI-EXPOSUREIQ | maxJobsDay | Quota of jobs that can be run per day. |
RI-RISKMODELER | maxConcurrentModelJobs | Quota of primary jobs that can be run concurrently. |
RI-RISKMODELER | maxConcurrentNonModelJobs | Quota of secondary jobs that can be run concurrently. |
RI-RISKMODELER | maxJobsDay | Quota of jobs that can be run per day. |
RI-TREATYIQ | maxConcurrentOtherJobs | Quota of non-analysis or program rollup jobs that can be run concurrently. |
RI-TREATYIQ | maxConcurrentPortfolioRollups | Quota of portfolio rollup jobs that can be run concurrently. |
RI-TREATYIQ | maxConcurrentProgramAnalyses | Quota of program analysis jobs that can be run concurrently. |
The Intelligent Risk Platform makes a clear distinction between primary jobs and secondary jobs. A tenant may license the number of model and secondary jobs separately or allocate higher or lower percentage of their jobs quotas to distinct resource groups> Distinct job quotas are allocated to the tenant for primary jobs and secondary jobs.
Primary Jobs
Primary jobs are known by different names depending on the entitlement.
- For Risk Modeler and UnderwriteIQ, a primary job is any job that models a collection of location exposures using a modeling engine (
ALM,DLM, orHD). These are also known as primary jobs. - For ExposureIQ, a primary job is a job that creates an accumulation.
- For TreatyIQ, a primary job is a job that creates a rollup.
The table lists primary job types and the entitlements required to intitate those jobs:
| Job | Entitlement |
|---|---|
ACCUMULATION | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
ACCUMULATION_LIVE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
ALM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DLM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
HD | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
A primary job is a job that generates an analysis result. But not every job that produces an analysis result is considered a primary job. For example, jobs that are initiated by means of post-analysis actions (e.g. PATE or PLT_TO_ELT) are not time-sensitive and consequently managed in workflow queues reserved for secondary jobs.
Primay jobs and secondary jobs are are managed distinct workflow queues. Primary jobs are generally directed to dedicated workflow queues that expedite their processing than longer-running secondary jobs, which can delay the more time-senstive primary jobs.
A RI-UNDERWRITEIQ resource group is provisioned with distinct workflow queues for managing and scheduling different types of jobs. New primary jobs are generally added to an INTERACTIVE queue --a queue that "fast tracks" the job, but these jobs may "fall back" to another workflow queue. The fallback queue is determined by the number of locations modeled in the job.If the number of locations modeled is less than 1000, it is directed to the FIFO workflow queue. Otherwise, it is managed in a WFS DEFAULT worfkflow queue.
Secondary Jobs
A seconary job is a platform job that creates or updates one or more resources.
Secondary jobs are generally long-running and do not manage or produce time-sensitive data. Examples of secondary jobs include import job and export jobs.
Secondary jobs are sometimes called secondary jobs. They are generally managed in a distinct job queue.
| Job | Entitlement |
|---|---|
ALM_IMPORT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
ARCHIVE_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
ARCHIVE_SECURABLE | RI-DATAVAULT |
AUTO_DELETE_ARCHIVE | RI-DATAVAULT |
BULK_EDIT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
BULK_EXPORT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
BULK_GEOHAZ | RI-RISKMODELER, RI-UNDERWRITEIQ |
CADOI | RI-RISKMODELER |
CEDE_IMPORT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CLIMATE_CHANGE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_ACCOUNT_CURRENCY | RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_AGGREGATE_PORTFOLIO_CURRENCY | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_EVENT_RATE_LOSS | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_PORTFOLIO_CURRENCY | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_RESULT_CURRENCY | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CONVERT_TREATY_CURRENCY | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
COPY_ACCOUNT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
COPY_AGGREGATE_PORTFOLIO | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
COPY_PORTFOLIO | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
COPY_TO_ARCHIVE | RI-DATAVAULT |
CREATE_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
CREATE_MAP_LAYER | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DELETE_ACCOUNT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DELETE_AGGREGATE_PORTFOLIO | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DELETE_ARCHIVE | RI-DATAVAULT |
DELETE_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DELETE_PORTFOLIO | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DELETE_RDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DEREGISTER_DATA_BRIDGE_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DETACH_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOMAIN_DATA_LOAD | RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_DETACH_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_EXPOSURE_RESOURCE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_LOCATION_RESULTS | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_PEQT | |
DOWNLOAD_RDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
DOWNLOAD_REPORT | |
DOWNLOAD_RESULTS | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
EDM2EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
EDM_DATA_UPGRADE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
ENRICH_EXPOSURE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
EXPOSURE_BATCH_EDIT_WITH_GEOHAZ | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
EXPOSURE_BATCH_EDIT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
GEOHAZ | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
GROUPING | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
MAP_PERSPECTIVE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
MARGINAL_IMPACT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
MODEL_PRICING | RI-UNDERWRITEIQ |
MRI_IMPORT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
OED_IMPORT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
PATE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
PLT_TO_ELT | |
RDM | |
RDM_DATABRIDGE | |
REGISTER_DATA_BRIDGE_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
RENAME_ANALYSIS | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
REPORT_GENERATION | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
RERUN_EP | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
RESTORE_ARCHIVE | RI-DATAVAULT |
SIMULATE_LOSSES | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
STEP_TOOL | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
STOCHASTIC_CEP | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
UPDATE_RESULTS_COUNT | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
UPLOAD_EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
UPLOAD_RDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
For more information on jobs and a list of the operations that initiate secondary jobs, see Platform Jobs.
Secondary jobs are managed in a different job queue than primary jobs. Secondary jobs tend to be long-running and can delay the processing of more time-sensitive primary jobs.
Storage quotas
Tenants can track storage quota usage using the Tenant Data API operations.
| Metric | Description |
|---|---|
TotalEdmsCount | Number of EDM data modules. |
ExposureStorageInGB | Size of exposure data in GB. |
OtherStorageInGB | Size 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 operation returns 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.
The Get Usage Metrics by Date operation supports filtering resource quota metrics
Resource Groups
A resource group is a mechanism for managing and tracking the resource quota allocated to the tenant for a specific entitlement.
The resource group identifies a group a principals (end users and client applications) that have access to a particular entitlement to the resource quotas available to the tenant for that particular entitlement. A tenant is automatically provisioned a single resource group.
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 secondary jobs. To learn more about entitlements, see Entitlements.
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-reource 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.
The following Platform API operations require that a resource group ID be specified in the request:
| API | Operation | Entitlement |
|---|---|---|
| Accumulation API | Create Accumulation Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Batch API | Create Batch Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Bulk Geohaz API | Create Bulk Geohaz Job | RI-RISKMODELER, RI-UNDERWRITEIQ |
| Copy API | Create Copy Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Currency Conversion API | Create Currency Conversion Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Enrich Exposure API | Create Enrich Exposure Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Export API | Create Export Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Geohaz API | Create Geohaz Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Grouping API | Create Grouping Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Import API | Create Import Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Model API | Create Model Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Archive EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Calcualte Marginal Impact | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Calculate Climate Change | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Convert Financial Perspectives | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Create EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Delete Account | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Delete Aggregate Portfolio | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Delete Archive | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Delete EDM | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Delete Portfolio | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Recalculate EP and Statistics | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Recalculate with PATE | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Rename Analysis Result | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Simulate PLT Analysis | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| Risk Data API | Upgrade EDM Data Version | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
| STEP API | Create STEP Analysis Job | RI-EXPOSUREIQ, RI-RISKMODELER, RI-UNDERWRITEIQ |
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 in Admin Center, tenant administrators can create, update, and delete resource groups. To learn more, see Resource Group and Application Management in Help Center.
Updated 6 days ago
