Resource Statuses

Status Namespaces

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.

Status List

The following statuses are possible for a resource:

Status name

Who can assign it

Explanation

aps:proto

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.

aps:provisioning

Controller

Resource is being provisioned.

aps:ready

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.

aps:activating

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.

aps:unprovisioning

Controller

Resource is being unprovisioned or unregistered.

aps:deleted

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.

aps:upgrading

Controller

The status of the application root resource when the respective application instance is being upgraded.

aps:configuring

Controller

Resource properties are being updated by an async configuration operation.

aps:upsell

Controller

Resource is the key resource in an upsell process.

<namespace>:<status>

Application

Presents all application specific custom statuses

Transition Diagram

The below diagram shows resource statuses and transitions between them:

../../../../_images/status-diagram.png

Number

Transition

1

Start resource provisioning

2

Register prototype

3

Register ready resource

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

Start unprovisioning

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

Start upgrade procedure

14

Start upsell procedure

15

Start resource async configuration

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

Managing Statuses

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.