In this document:
Each APS resource has the status
property whose format is <namespace>:<status>.
Namespace aps:
contains a limited set of system statuses each making a certain sense for the APS controller.
Custom namespace with any name, except for aps:
, contains any number of statuses meaningful for the application
that uses it. If there are application specific resource statuses, the application should operate those statuses in its own
custom namespace.
APS controller considers any custom status as ready.
The following statuses are possible for a resource:
Status name |
Who can assign it |
Explanation |
---|---|---|
|
Application |
Resource is prepared for creation, that is this is a resource prototype.
This resource status is optional, and if an application is going to utilize
a prototype it should Register Resource with the status set to
aps::proto . |
|
Controller |
Resource is being provisioned. |
|
Controller
Application
|
Resource is ready. This is the usual status for most of resources.
Application gets to that state as a result of successful
resource provisioning or successful
resource registration.
Registering of a resource without a status will assign aps:ready automatically.
Also, an application can change status to aps:ready while
updating resource status.
|
|
Controller
Application
|
An application can set a provisioned user-oriented resource to this status, if the user, whom this resource is assigned, must complete the resource configuration. |
|
Controller |
Resource is being unprovisioned or unregistered. |
|
Controller |
Resource goes to this state when it is already unprovisioned but still persists in the resource database for some reason, for example, not all its links are removed yet. |
|
Controller |
The status of the application root resource when the respective application instance is being upgraded. |
|
Controller |
Resource properties are being updated by an async configuration operation. |
|
Controller |
Resource is the key resource in an upsell process. |
<namespace>:<status> |
Application |
Presents all application specific custom statuses |
The below diagram shows resource statuses and transitions between them:
Number |
Transition |
---|---|
1 |
|
2 |
Register prototype |
3 |
|
4 |
Provision resource from prototype |
5 |
Complete resource provisioning |
6 |
Update proto resource to ready |
7 |
Application switches status in the ready range:
-
aps:ready -
aps:activating - Any status in custom namespace
|
8 |
|
9 |
Unprovision resource in one step |
10 |
Unprovision resource but keep it in database, for example, links are not removed yet |
11 |
Unregister resource but keep it in database, for example, links are not removed yet |
12 |
Unregister resource in one step |
13 |
|
14 |
Start upsell procedure |
15 |
Note
APS controller considers the following statuses as ready and allows applications to change resource status within this range as needed:
aps:ready
aps:activating
Any status in a custom namespace
An application may set own custom statuses for its resources and also change some of system statuses as specified in the table. It can influence a resource status using the following ways:
By default, if an application returns HTTP/1.1 200 OK code on a POST operation, the APS controller
sets the resource status to aps:ready
.
In response to POST or PUT operation over a resource, an application can return a required status in the JSON body, for example:
{ "aps": { "status": "aps:ready" }}
When registering or updating a resource through Application Alias Details, an application can explicitly specify the resource status in the JSON body as illustrated earlier.