If implemented by the core APS type of an APS application and, consequantly, by the APS application instance, the InitWizardConfig
APS type allows the latter to communicate with the platform during the product deployment. The considered APS type declares some methods that the platform can call to create a set of resources types, a service template, a service plan, and other related billing objects.
In this document:
The considered APS type (download
)
extends the Resource APS type(s) and looks as follows:
{
"name": "InitWizardConfig",
"id": "http://odin.com/init-wizard/config/1.0",
"apsVersion": "2.0",
"implements": [
"http://aps-standard.org/types/core/resource/1.0"
],
"operations": {
"getInitWizardConfig": {
"path": "/getInitWizardConfig",
"verb": "GET",
"response": {
"type": "Config"
},
"errorResponse": {
"type": "object"
}
},
"testConnection": {
"path": "/testConnection",
"verb": "GET",
"errorResponse": {
"type": "object"
}
},
"validateInitWizardData": {
"path": "/validateInitWizardData",
"verb": "POST",
"response": {
"type": "object"
},
"errorResponse": {
"type": "object"
}
}
},
"structures": {
"InitWizardDefaultsBss": {
"type": "object",
"properties": {
"billing": {
"type": "BillingConfig"
},
"servicePlans": {
"type": "array",
"items": {
"type": "ServicePlanConfig"
}
}
}
},
"BillingConfig": {
"type": "object",
"properties": {
"planCategory": {
"type": "PlanCategory"
},
"salesCategory": {
"type": "SalesCategory"
},
"resourceCategory": {
"type": "ResourceCategory"
}
}
},
"PlanCategory": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"taxCategoryId": {
"type": "string"
}
}
},
"SalesCategory": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"externalId": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"inCCP": {
"type": "boolean"
},
"expand": {
"type": "boolean"
},
"sortOrder": {
"type": "integer"
},
"parentSalesCategory": {
"type": "SalesCategory"
}
}
},
"ResourceCategory": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"taxCatId": {
"type": "string"
},
"displayType": {
"type": "string"
},
"sortNumber": {
"type": "string"
},
"optional": {
"type": "boolean"
}
}
},
"ServicePlanConfig": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"shortDescription": {
"type": "string"
},
"longDescription": {
"type": "string"
},
"nameML": {
"type": "object"
},
"shortDescriptionML": {
"type": "object"
},
"longDescriptionML": {
"type": "object"
},
"stId": {
"type": "integer"
},
"planBillingPeriod": {
"type": "integer"
},
"planBillingPeriodType": {
"type": "integer"
},
"renewOrderInterval": {
"type": "integer"
},
"renewPointDays": {
"type": "integer"
},
"billingModel": {
"type": "string"
},
"planCategoryId": {
"type": "integer"
},
"storeCategoryId": {
"type": "integer"
},
"subscrPeriodType": {
"type": "integer"
},
"subscrRefundType": {
"type": "integer"
},
"subscrPeriod": {
"type": "integer"
},
"subscrRenewalFee": {
"type": "number"
},
"subscrRecurringFee": {
"type": "number"
},
"subscrDepositFee": {
"type": "number"
},
"subscrTrial": {
"type": "boolean"
},
"subscrSetupFee": {
"type": "number"
},
"subscrTransferFee": {
"type": "number"
},
"resources": {
"type": "array",
"items": {
"type": "ResourceRateConfig"
}
}
}
},
"ResourceRateConfig": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"nameML": {
"type": "object"
},
"composite": {
"type": "boolean"
},
"createPlanRatePeriods": {
"type": "boolean"
},
"unitOfMeasure": {
"type": "string"
},
"inCP": {
"type": "boolean"
},
"published": {
"type": "boolean"
},
"setupFee": {
"type": "number"
},
"overFee": {
"type": "number"
},
"rtID": {
"type": "integer"
},
"billingResourceID": {
"type": "integer"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"measurable": {
"type": "boolean"
},
"rFeePerUnit": {
"type": "boolean"
},
"sFeePerUnit": {
"type": "boolean"
},
"instore": {
"type": "boolean"
},
"recFee": {
"type": "number"
},
"incl": {
"type": "number"
},
"resourceCategoryId": {
"type": "integer"
},
"periods": {
"type": "array",
"items": {
"type": "ResourceRatePeriod"
}
},
"msrpSetupFee": {
"type": "number"
},
"msrpRecurringFee": {
"type": "number"
},
"msrpOveruseFee": {
"type": "number"
}
}
},
"ResourceRatePeriod": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"externalId": {
"type": "integer"
},
"periodType": {
"type": "integer"
},
"period": {
"type": "integer"
},
"setupFee": {
"type": "number"
},
"overFee": {
"type": "number"
},
"recFee": {
"type": "number"
},
"msrpSetupFee": {
"type": "number"
},
"msrpRecurringFee": {
"type": "number"
},
"msrpOveruseFee": {
"type": "number"
},
"setupFeeDescr": {
"type": "object"
},
"recFeeDescr": {
"type": "object"
},
"overFeeDescr": {
"type": "object"
},
"storeText": {
"type": "object"
},
"storePriceText": {
"type": "object"
},
"setupSKU": {
"type": "integer"
},
"recurringSKU": {
"type": "integer"
},
"overuseSKU": {
"type": "integer"
},
"cancellationSKU": {
"type": "integer"
}
}
},
"Config": {
"type": "object",
"properties": {
"configurableProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"defaults": {
"type": "InitWizardDefaultsBss"
}
}
}
}
}
The APS type is used to create a singleton APS resource exposing its operations for API calls. The call syntax depends on the operation. For example, a call of an operation that accepts input parameters both in the URL string and in the body looks as follows:
POST /aps/2/services/init-wizard/<operation-path>?<query-params>
{/*<body params>*/}
In the above call, the verb can be either GET, PUT, POST, or DELETE as specified in the definition of the operation.
OPERATION |
VERB |
PATH |
RETURNS |
Description |
---|---|---|---|---|
GET |
/getInitWizardConfig |
Config. |
Return the default product configuration. |
|
GET |
/testConnection |
If successful, this method returns the 200 OK standard status code. |
Test if the APS application instance has a connection to the original application service. Application instance should confirm readiness for provision by returning the 200 OK status. |
|
POST |
/validateInitWizardData |
If successful, this method returns the 200 OK standard status code. |
Check if the product configuration is correct. Application instance should confirm the correctness by returning the 200 OK status. |
HTTP Request
GET /aps/2/services/init-wizard/getInitWizardConfig
Description
Return the default product configuration.
Returns
Config.
HTTP Request
GET /aps/2/services/init-wizard/testConnection
Description
Test if the APS application instance has a connection to the original application service. Application instance should confirm readiness for provision by returning the 200 OK status.
Returns
If successful, this method returns the 200 OK standard status code.
HTTP Request
POST /aps/2/services/init-wizard/validateInitWizardData
Description
Check if the product configuration is correct. Application instance should confirm the correctness by returning the 200 OK status.
Returns
If successful, this method returns the 200 OK standard status code.
The main structure in the Init Wizard configuration that defines the default product deployment.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
billing |
Not Required |
Billing configuration containing necessary billing categories. |
||
servicePlans |
Array of ServicePlanConfig |
Not Required |
A list of service plans. |
Contains the billing categories that service plans require.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
planCategory |
Not Required |
Plan category. |
||
salesCategory |
Not Required |
Sales category. |
||
resourceCategory |
Not Required |
Resource category. |
Every service plan must be bound to a plan category.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
Plan category ID in the platform. |
|
name |
String |
Not Required |
Name.. |
|
description |
String |
Not Required |
Description.. |
|
taxCategoryId |
String |
Not Required |
Tax category. |
To make a service plan available for sale, it must be added to a sales category.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
A unique ID of the sales category. For the sake of reliability, assign a negative digit to avoid confusion with an ID of a category existing in the platform. The platform will assign a unique ID to the new category. |
|
externalId |
Integer |
Not Required |
||
name |
String |
Not Required |
Name.. |
|
description |
String |
Not Required |
Description.. |
|
inCCP |
Boolean |
Not Required |
Specifies if the sales category along with its service plans is available in the customer control panel (CCP). |
|
expand |
Boolean |
Not Required |
If true, the sales category will be opened to show all its service plans. Otherwise, the user must click it to see the included service plans. |
|
sortOrder |
Integer |
Not Required |
||
parentSalesCategory |
Not Required |
Resource categories are used to configure resource rates in service plans.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
A digital ID unique in scope of the present wizard data. For the sake of reliability, assign a negative digit to avoid confusion with an ID of a category existing in the platform. When creating the resource category, the platform will assign a unique ID to that category. |
|
name |
String |
Not Required |
Name.. |
|
description |
String |
Not Required |
Description.. |
|
taxCatId |
String |
Not Required |
Tax category ID the resource category is bound to. |
|
displayType |
String |
Not Required |
Defines one of the ways a customer can choose resources in this category, either by selecting check-boxes ( |
|
sortNumber |
String |
Not Required |
Sort number. |
|
optional |
Boolean |
Not Required |
Defines if resources of this category are optional for customers. |
Service plans are the main products used to sell application services.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
A digital ID unique in scope of the wizard data. For the sake of reliability, assign a negative digit to avoid confusion with an ID of a service plan existing in the platform. The platform will assign a unique ID when creating the required service plan. |
|
name |
String |
Not Required |
Name.. |
|
shortDescription |
String |
Not Required |
Short description. |
|
longDescription |
String |
Not Required |
Long description. |
|
nameML |
Object |
Not Required |
Multilang name. |
|
shortDescriptionML |
Object |
Not Required |
Multilang short description. |
|
longDescriptionML |
Object |
Not Required |
Multilang long description. |
|
stId |
Integer |
Not Required |
The ID of the service template the service plan is based on. |
|
planBillingPeriod |
Integer |
Not Required |
Defines the number of period types in the billing period of the service plan. |
|
planBillingPeriodType |
Integer |
Not Required |
Defines the period type of the billing period of the service plan. |
|
renewOrderInterval |
Integer |
Not Required |
Defines a digital code of the renewal order interval, either 0 (auto-renewal is disabled), 5 (the renewal order is generated on the last statement day), or 15 (the renewal order is generated before the subscription expiration date). |
|
renewPointDays |
Integer |
Not Required |
Specifies a number of days before the subscription expiration date when a renewal order must be generated. This is valid when {@link #renewOrderInterval} is 15. |
|
billingModel |
String |
Not Required |
Billing model. |
|
planCategoryId |
Integer |
Not Required |
Plan Category Id. |
|
storeCategoryId |
Integer |
Not Required |
Store category Id. |
|
subscrPeriodType |
Integer |
Not Required |
Defines a digital code of the unit to measure the subscription period length, either 2 (months) or 3 (years). |
|
subscrRefundType |
Integer |
Not Required |
Defines a digital code of the subscription refund type. |
|
subscrPeriod |
Integer |
Not Required |
Subscription period length measured in the units defined by {@link #subscrPeriodType}. |
|
subscrRenewalFee |
Number |
Not Required |
Subscription renewal fee. |
|
subscrRecurringFee |
Number |
Not Required |
Subscription recurring fee, that is the price per billing period. |
|
subscrDepositFee |
Number |
Not Required |
Subscription deposit fee. |
|
subscrTrial |
Boolean |
Not Required |
Defines if the subscriptions based on the service plan will be trial. |
|
subscrSetupFee |
Number |
Not Required |
Subscription setup fee. |
|
subscrTransferFee |
Number |
Not Required |
Subscription transfer fee. |
|
resources |
Array of ResourceRateConfig |
Not Required |
A list of ResourceRate objects. |
A resource rate in a service plan is used to present a resource with the price that usually depends on the resource amount. This allows the customers to purchase the amount of the resource they actually need.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
Resource rate id. |
|
name |
String |
Not Required |
Name.. |
|
nameML |
Object |
Not Required |
Name Multilanguage. |
|
composite |
Boolean |
Not Required |
Is resource must be a composite. |
|
createPlanRatePeriods |
Boolean |
Not Required |
If {@code true}, then plan rate periods will be created. |
|
unitOfMeasure |
String |
Not Required |
Unit of Measure |
|
inCP |
Boolean |
Not Required |
Defines if the resource rate must be available in the customer control panel (CCP). |
|
published |
Boolean |
Not Required |
Defines if the resource rate is available for sale. |
|
setupFee |
Number |
Not Required |
The one-time price for the resource setup. |
|
overFee |
Number |
Not Required |
The fee for the overused amount per resource unit. |
|
rtID |
Integer |
Not Required |
The ID of the oss resource the resource rate must represent. |
|
billingResourceID |
Integer |
Not Required |
The ID of the billing resource the resource rate must represent. |
|
max |
Number |
Not Required |
The upper limit of the resource usage. |
|
min |
Number |
Not Required |
The lower limit of the resource usage. |
|
measurable |
Boolean |
Not Required |
Defines if the resource is |
|
rFeePerUnit |
Boolean |
Not Required |
Specifies if the recurring fee is accounted per resource unit. |
|
sFeePerUnit |
Boolean |
Not Required |
Specifies if the setup fee is accounted per resource unit. |
|
instore |
Boolean |
Not Required |
Defines if the resource rate is available in the online store. |
|
recFee |
Number |
Not Required |
Recurring fee (paid once per billing period) assigned per the whole resource or the resoure unit as specified by the {@link #rFeePerUnit} property. |
|
incl |
Number |
Not Required |
Included resource amount. |
|
resourceCategoryId |
Integer |
Not Required |
Resource category id |
|
periods |
Array of ResourceRatePeriod |
Not Required |
A list of ResourceRatePeriod objects. |
|
msrpSetupFee |
Number |
Not Required |
MSRP setup fee. |
|
msrpRecurringFee |
Number |
Not Required |
MSRP recurring fee. |
|
msrpOveruseFee |
Number |
Not Required |
MSRP overuse (cost for additional) fee. |
Resource rate period.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
id |
Integer |
Not Required |
Resource rate period ID. |
|
externalId |
Integer |
Not Required |
||
periodType |
Integer |
Not Required |
Defines a digital code of the unit to measure the resource rate period length, either 2 (months) or 3 (years). |
|
period |
Integer |
Not Required |
Resource rate period length measured in the units defined by {@link #periodType}. |
|
setupFee |
Number |
Not Required |
The one-time price for the resource setup. |
|
overFee |
Number |
Not Required |
The fee for the overused amount per resource unit. |
|
recFee |
Number |
Not Required |
Recurring fee (paid once per billing period) assigned per the whole resource or the resource unit as specified by the {@link ResourceRate#getRFeePerUnit()}. |
|
msrpSetupFee |
Number |
Not Required |
MSRP setup fee. |
|
msrpRecurringFee |
Number |
Not Required |
MSRP recurring fee. |
|
msrpOveruseFee |
Number |
Not Required |
MSRP overuse (cost for additional) fee. |
|
setupFeeDescr |
Object |
Not Required |
MSRP setup description |
|
recFeeDescr |
Object |
Not Required |
MSRP recurring description |
|
overFeeDescr |
Object |
Not Required |
MSRP overuse description |
|
storeText |
Object |
Not Required |
Store Text |
|
storePriceText |
Object |
Not Required |
Store Price Text |
|
setupSKU |
Integer |
Not Required |
Setup SKU |
|
recurringSKU |
Integer |
Not Required |
Recurring SKU |
|
overuseSKU |
Integer |
Not Required |
Overuse SKU |
|
cancellationSKU |
Integer |
Not Required |
Cancellation SKU |
The InitWizardConfig
method returns this structure. The structure contains two other structures, a list of configurable global properties and the main structure with the default product configuration.
NAME |
TYPE |
ATTRIBUTES |
DEFAULT |
DESCRIPTION |
---|---|---|---|---|
configurableProperties |
Array of String |
Not Required |
A list of global properties that can be configured by the provider in the product deployment wizard. |
|
defaults |
Not Required |
TBD. |
The following examples illustrate the way an application implements the declared custom operations:
Setting Default Product Configuration in the Get Started demo project
Product Deployment Assistance in the Offer Management demo project