Providers are interested in estimating business results (such as customer demand and growth) for services which are provided by the applications they use. For that purpose, application developers can mark within their APS packages the APS types and resource counters whose usage must indicate the business growth based on those applications. The objects marked this way are called seats in business reports. Seat information is intended to give statistics for a top-down view of service popularity among customers. For example, such information may be used as input data in business intelligence systems. Seat information must not be used for billing or other financial purposes.
In this document:
The seats must be presented in customer subscriptions as resources (resource types) based on the following resource classes:
Application service: the number of provisioned resources (that is, resource usage) based on this class can be accounted as the number of seats.
Application service reference: the number of seats can be accounted either as the resource usage or resource limit.
Application counter: the number of seats is the counter value.
The relationship between APS types, APS resources, and APS counters on one hand and resource types and resource classes on the other hand are described in the APS Resource Management document.
To account APS resources as seats, add the seatMark
property in the respective APS type using one of the
following options:
"seatMark":"service"
: use this when the APS type is used to create a resource type based on the Application service
resource class. The number of seats will be the resource usage in the subscriptions that is the same as the total
number of the related APS resources provisioned for subscribers.
"seatMark":"service_ref_usage"
: the APS type is used to create service profiles and then the latter are used to create
resource types based on the Application service reference resource class. The number of seats will be the total
number of links to the respective APS resources from all subscriptions.
"seatMark":"service_ref_limit"
: the same case as the previous, with the exception that the number of seats will be
the total of all limits of the respective resources in all subscriptions.
Many applications have their own counters that compute resource usage using their own algorithm. A counter is typically
declared as an APS type property implementing the Counter structure. To use that
counter as a counter of seats, add the "isSeat":true
property to the counter declaration in the APS type.
If you generate APS types from annotations in PHP scripts, follow the examples in this section.
The following example requires accounting the total number of VPSes based on the specified APS type:
/**
* @type("http://aps-standard.org/samples/counters/vps/1.0")
* @implements("http://aps-standard.org/types/core/resource/1.0")
* @seatMark("service")
*/
class vps extends \APS\ResourceBase {
// ...
}
If VPS configuration is based on various service profiles, you can differentiate the usage of different service profiles linked with VPSes. In this case, use the following declaration as an example:
/**
* Class offer
* @type("http://aps-standard.org/samples/offer1p/offer/1.0")
* @implements("http://aps-standard.org/types/core/resource/1.0")
* @seatMark("service_ref_usage")
*/
class offer extends \APS\ResourceBase {
// ...
}
The following code requires accounting in business reports the total of all counters based on the declared property:
/**
* @type("http://aps-standard.org/types/core/resource/1.0#Counter")
* @description("Total disk space usage, GB")
* @unit("gb")
* @isSeat(true)
*/
public $diskUsageTotal;