InitWizardConfig

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.

GraphViz

Schema

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.

Custom Operations

OPERATION

VERB

PATH

RETURNS

Description

getInitWizardConfig

GET

/getInitWizardConfig

Config.

Return the default product configuration.

testConnection

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.

validateInitWizardData

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.

getInitWizardConfig

HTTP Request

GET /aps/2/services/init-wizard/getInitWizardConfig

Description

Return the default product configuration.

Returns

Config.

testConnection

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.

validateInitWizardData

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.

Structures

InitWizardDefaultsBss

The main structure in the Init Wizard configuration that defines the default product deployment.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

billing

BillingConfig

Not Required

Billing configuration containing necessary billing categories.

servicePlans

Array of ServicePlanConfig

Not Required

A list of service plans.

BillingConfig

Contains the billing categories that service plans require.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

planCategory

PlanCategory

Not Required

Plan category.

salesCategory

SalesCategory

Not Required

Sales category.

resourceCategory

ResourceCategory

Not Required

Resource category.

PlanCategory

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.

SalesCategory

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

SalesCategory

Not Required

ResourceCategory

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 (default) or by selecting a radio-button (radio).

sortNumber

String

Not Required

Sort number.

optional

Boolean

Not Required

Defines if resources of this category are optional for customers.

ServicePlanConfig

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.

ResourceRateConfig

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 measurable, that is the BSS will account the current resource use and detect the resource overuse.

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.

ResourceRatePeriod

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

Config

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

InitWizardDefaultsBss

Not Required

TBD.

Examples

The following examples illustrate the way an application implements the declared custom operations: