Pricing Cache REST Services
Because pricing information loaded in the MATRIXX Engine does not change often, the RS Gateway creates a lazy-loaded pricing-information cache of this information. The RS Gateway invalidates entries in this cache after a configurable time (default is 5 minutes) and when the system detects a new pricing file has been loaded into the engine.
You can query a list of objects or information about a specific object using its ID. Each call is a GET command to the specific URL listed in JSON Pricing Cache URLs and XML Pricing Cache URLs.
In multi-tenant environments, append ?tenantId=tenant_ID
to the URL to return only the requested information for that tenant. For example, to return a list
of catalogs for Tenant1 only: http://localhost:8080/rsgateway/data/v3/cache/pricing/Catalog?tenantId=Tenant1. Append
?routeId=route_ID to specify the sub-domain where the tenant resides. When specifying a tenant, the caller must have permission to access the tenant
information. RS Gateway maintains a pricing cache per-sub-domain, per-tenant on that sub-domain. Each pricing cache is
separate. If you are making a REST call to the pricing cache, the combination of sub-domain and tenant information determines the cache used and that cache is populated by SubMan calls made to
the MATRIXX Engine that enforces what you can see.
pricingcache:
expiration: 300000
URL | Description |
---|---|
rsgateway/data/json/cache/pricing/balance | List of all balance templates in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/balance/{BalanceId} | Specific details for the balance indicated by the BalanceId . For example:
|
rsgateway/data/json/cache/pricing/balanceClass | List of all balance classes in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/balanceClass/{BalanceClassId} | Specific details for the balance class indicated by the BalanceClassId . For example:
|
rsgateway/data/json/cache/pricing/Catalog | A list of all catalogs in the pricing cache. To return the list of catalog items in the catalog, you must include the catalog ID in the URL as shown in the next API. For
example:
|
rsgateway/data/json/cache/pricing/Catalog/{id} | Specific details for the catalog indicated by the {id} . For example:
|
rsgateway/data/json/cache/pricing/CatalogItem | List of all catalog items in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/CatalogItem/{id} | Specific details for the catalog item indicated by the {id} . For example:
|
rsgateway/data/json/cache/pricing/group/user_role | Returns all possible roles that can be used in the association with the group object. |
rsgateway/data/json/cache/pricing/offers | List of all product offers in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/offers/{OfferId} | Specific details for the product offer indicated by the OfferId . For example:
|
rsgateway/data/json/cache/pricing/offers/{OfferId}/{version} | Specific details for the product offer indicated by the OfferId and version . See the response above for version 0 of offer 252. |
rsgateway/data/json/cache/pricing/billingCycle | List of all billing cycle templates in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/billingCycle/{BillingCycleId} | Specific details for the billing cycle indicated by the BillingCycleId . For example:
|
rsgateway/data/json/cache/pricing/lifecycle/device | Returns the device status life cycle. For example:
|
rsgateway/data/json/cache/pricing/lifecycle/group | Returns the group status life cycle. See the device status life cycle values above for an example. |
rsgateway/data/json/cache/pricing/lifecycle/subscriber | Returns the group status life cycle. See the device status life cycle values above for an example. |
rsgateway/data/json/cache/pricing/notification | List of all notification profiles in the pricing cache. |
rsgateway/data/json/cache/pricing/notification/{NotificationProfileId} | Specific details for the notification profile indicated by the NotificationProfileId . |
rsgateway/data/json/cache/pricing/serviceType | List of all service types in the pricing cache. For example:
|
rsgateway/data/json/cache/pricing/serviceType/{ServiceTypeId} | Specific details for the service type indicated by the ServiceTypeId . For example:
|
rsgateway/data/json/cache/pricing/subscription/user_role | Returns all possible roles that can be used in the association with the subscription object. |
rsgateway/data/json/cache/pricing/user/user_role | Returns all possible roles that can be used in the association with the user object. |
URL | Description |
---|---|
rsgateway/data/v3/cache/pricing/Catalog | List of all catalogs in the pricing cache. |
rsgateway/data/v3/cache/pricing/Catalog/{id} | Specific details for the catalog indicated by the {id} . |
rsgateway/data/v3/cache/pricing/CatalogItem | List of all catalog items in the pricing cache. |
rsgateway/data/v3/cache/pricing/CatalogItem/{id} | Specific details for the catalog item indicated by the {id} . |
rsgateway/data/v3/cache/pricing/Contract/{id} | Specific details for the contract indicated by the {id} . |
The DisplayQuantityUnit
field is added to the service responses and is
populated according to the following rules:
- If a balance has metadata defined, and that metadata has a String metadata attribute named
MtxUnits
, the value of this metadata attribute is returned as theDisplayQuantityUnit
value. - If the balance does not have metadata defined:
- If the balance is a currency balance, the description field value of the currency balance class is returned.
- If the balance has a quantity unit defined, that value is returned.
For details about each of the pricing cache APIs, generate the Java API bindings using the JavaApiGenerator.jar program. For more information, see the discussion about using the MATRIXX Java API in MATRIXX Subscriber Management API.