Tenant Management

Tenant management including CRUD operations is available via the REST API. Management of tenants is through:

/api/tenants

Tenant Quota Management

Tenant Quota management is made available via the quotas subcollection of tenant resources as follows:

/api/tenants/:id/quotas

Creating Tenants

Creating a Tenant is done via the create action as follows:

POST /api/tenants
{
  "action" : "create",
  "resource" : {
    # New Tenant JSON
  }
}

And like other create actions, the new tenant data can simply be posted to the /api/tenants URL.

POST /api/tenants
{
  # New Tenant JSON
}

For example, creating a new tenant:

POST /api/tenants
{
  "name" : "Test Tenant",
  "description" : "Test Tenant Description",
  "parent" : { "href" : "http://localhost:3000/api/tenants/1" }
}

Parent can be specify by id or href

Note:

Please refer to the Resource Attributes page for a list of available attributes when creating Tenants.

Editing Tenants

Editing a Tenant is available via the edit action with the resource specifying the attributes to update for that tenant.

POST /api/tenants/:id
{
  "action" : "edit" ,
  "resource" : {
    "description" : "Updated Description for Tenant"
  }
}

Note:

type is a restricted attribute and cannot be edited.

Deleting Tenants

Deleting a Tenant is done via the delete method:

DELETE /api/tenants/:id

or via the delete action as follows:

POST /api/tenants/:id
{
  "action" : "delete"
}

or by href:

POST /api/tenants
{
  "action" : "delete",
  "resources" : [
    { "href" : "http://localhost:3000/api/tenants/:id" }
  ]
}

Creating Tenant Quotas

Creating a quota for a specific tenant is done as follows:

POST /api/tenants/:id/quotas
{
  "name" : "cpu_allocated",
  "value" : 1
}

Editing Tenant Quotas

POST /api/tenants/:id/quotas/:quota_id
{
  "action" : "edit",
  "resource" : {
    "value" : 5
  }
}

Multiple quotas for a tenant can also be edited in a single request as follows:

POST /api/tenants/1/quotas
{
  "action" : "edit",
  "resources" : [
    {
      "href" : "http://localhost:3000/api/tenants/1/quotas/5",
      "value" : 11
    },
    { "href" : "http://localhost:3000/api/tenants/1/quotas/6",
      "value" : 12
    },
    ...
  ]
}

Deleting Tenant Quotas

Quotas of a tenant can be deleted via the delete action as follows:

POST /api/tenants/:id/quotas/:quota_id
{
  "action" : "delete"
}

or via the DELETE HTTP method

DELETE /api/tenants/:id/quotas/:quota_id

Multiple quotas of a tenant can be deleted in a single request as shown in the following example:

POST /api/tenants/1/quotas
{
  "action" : "delete",
  "resources" : [
    { "href" : "http://localhost:3000/api/tenants/1/quotas/7" },
    { "href" : "http://localhost:3000/api/tenants/1/quotas/8" },
    ...
  ]
}