» Quota HTTP API

The /quota endpoints are used to query for and interact with quotas.

» List Quota Specifications

This endpoint lists all quota specifications.

Method Path Produces
GET /v1/quotas application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
YES quota:read
namespace:* if namespace has quota attached

» Parameters

  • prefix (string: "")- Specifies a string to filter quota specifications on based on an index prefix. This is specified as a querystring parameter.

» Sample Request

$ curl \
    https://nomad.rocks/v1/quotas
$ curl \
    https://nomad.rocks/v1/quotas?prefix=sha

» Sample Response

[
  {
    "CreateIndex": 8,
    "Description": "Limit the shared default namespace",
    "Hash": "SgDCH7L5ZDqNSi2NmJlqdvczt/Q6mjyVwVJC0XjWglQ=",
    "Limits": [
      {
        "Hash": "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU=",
        "Region": "global",
        "RegionLimit": {
          "CPU": 2500,
          "DiskMB": 0,
          "IOPS": 0,
          "MemoryMB": 2000,
          "Networks": null
        }
      }
    ],
    "ModifyIndex": 56,
    "Name": "shared-quota"
  }
]

» Read Quota Specification

This endpoint reads information about a specific quota specification.

Method Path Produces
GET /v1/quota/:quota application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
YES quota:read
namespace:* if namespace has quota attached

» Parameters

  • :quota (string: <required>)- Specifies the quota specification to query where the identifier is the quota's name.

» Sample Request

$ curl \
    https://nomad.rocks/v1/quota/shared-quota

» Sample Response

{
  "CreateIndex": 8,
  "Description": "Limit the shared default namespace",
  "Hash": "SgDCH7L5ZDqNSi2NmJlqdvczt/Q6mjyVwVJC0XjWglQ=",
  "Limits": [
    {
      "Hash": "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU=",
      "Region": "global",
      "RegionLimit": {
        "CPU": 2500,
        "DiskMB": 0,
        "IOPS": 0,
        "MemoryMB": 2000,
        "Networks": null
      }
    }
  ],
  "ModifyIndex": 56,
  "Name": "shared-quota"
}

» Create or Update Quota Specification

This endpoint is used to create or update a quota specification.

Method Path Produces
POST /v1/quota/:quota
/v1/quota
application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
NO quota:write

» Body

The request body contains a valid, JSON quota specification. View the api package to see the definition of a QuotaSpec object.

» Sample Payload

{
  "Name": "shared-quota",
  "Description": "Limit the shared default namespace",
  "Limits": [
    {
      "Region": "global",
      "RegionLimit": {
        "CPU": 2500,
        "MemoryMB": 1000
      }
    }
  ]
}

» Sample Request

$ curl \
    --request POST \
    --data @spec.json \
    https://nomad.rocks/v1/quota/shared-quota
$ curl \
    --request POST \
    --data @spec.json \
    https://nomad.rocks/v1/quota

» Delete Quota Specification

This endpoint is used to delete a quota specification.

Method Path Produces
DELETE /v1/quota/:quota application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
NO quota:write

» Parameters

  • :quota (string: <required>)- Specifies the quota specification to delete where the identifier is the quota's name.

» Sample Request

$ curl \
    --request DELETE \
    https://nomad.rocks/v1/quota/shared-quota

» List Quota Usages

This endpoint lists all quota usages.

Method Path Produces
GET /v1/quota-usages application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
YES quota:read
namespace:* if namespace has quota attached

» Parameters

  • prefix (string: "")- Specifies a string to filter quota specifications on based on an index prefix. This is specified as a querystring parameter.

» Sample Request

$ curl \
    https://nomad.rocks/v1/quota-usages
$ curl \
    https://nomad.rocks/v1/quota-usages?prefix=sha

» Sample Response

[
  {
    "Used": {
      "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU=": {
        "Region": "global",
        "RegionLimit": {
          "CPU": 500,
          "MemoryMB": 256,
          "DiskMB": 0,
          "IOPS": 0,
          "Networks": null
        },
        "Hash": "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU="
      }
    },
    "Name": "default",
    "CreateIndex": 8,
    "ModifyIndex": 56
  }
]

» Read Quota Usage

This endpoint reads information about a specific quota usage.

Method Path Produces
GET /v1/quota/usage/:quota application/json

The table below shows this endpoint's support for blocking queries and required ACLs.

Blocking Queries ACL Required
YES quota:read
namespace:* if namespace has quota attached

» Parameters

  • :quota (string: <required>)- Specifies the quota specification to query where the identifier is the quota's name.

» Sample Request

$ curl \
    https://nomad.rocks/v1/quota/shared-quota

» Sample Response

{
  "Used": {
    "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU=": {
      "Region": "global",
      "RegionLimit": {
        "CPU": 500,
        "MemoryMB": 256,
        "DiskMB": 0,
        "IOPS": 0,
        "Networks": null
      },
      "Hash": "NLOoV2WBU8ieJIrYXXx8NRb5C2xU61pVVWRDLEIMxlU="
    }
  },
  "Name": "default",
  "CreateIndex": 8,
  "ModifyIndex": 56
}