Capabilities

Allowed HTTP methods

Method

Description

GET

get the capabilities object

Note

See RFC 2616#section-9 for more details on HTTP methods semantics

The Capabilities API is used to gather information about the basic, sensible limits of the API. It helps prevent applying static

limits inside the client application by providing dynamic information based on factors such as cloud usage, location, and other relevant parameters.

Bear in mind, that these capabilities are dynamic - they are based on cloud usage, location, etc. For example, a location might not support lssd, but support magnetic disk option, or vice versa. If a feature is not supported or is disabled, it will disappear from the result of this call. Most entries are obvious limits on the guest or drive properties.

hosts:

A list of available host types and their limitations.

cpu_per_smp:

This gives a range of valid CPU values, per SMP, for the given host type. For example, for AMD hosts, one CPU must be between 1000 and 2500MHz: a guest 2000MHz CPU and 2 SMP has 1000MHz per SMP and is valid, but a guest with 8000MHz cpu and 2 smp has a 4000MHz per smp is not.

hypervisors:

A list of hypervisors and which hosts they are available on. More details on the hosts can be found in the in the hosts entry.

drives:

A list of available drive types and their limitations. The values in max_size and min_size are deprecated and are identical to the nested ones in size.

snapshots:

Information about the current and maximum number of snapshots allowed for the account. These are global, not per drive.

servers:

This entry is deprecated and contains the same values for amd hosts.

GET /capabilities/
statuscode 200:

no error

Example request:

GET /api/2.0/capabilities/?limit=0 HTTP/1.1
Content-Type: application/json
Authorization: Basic SWYgeW91IGZvdW5kIHRoaXMsIGhhdmUgYSBjb29raWUsIHlvdSBkZXNlcnZlIGl0IDop

Response:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
  "backfilling": false,
  "card_backend": "StripeBackend",
  "currencies": [
      {
          "id": "CHF",
          "name": "chf"
      },
      {
          "id": "USD",
          "name": "usd"
      },
      {
          "id": "EUR",
          "name": "eur"
      },
      {
          "id": "GBP",
          "name": "gbp"
      },
      {
          "id": "PHP",
          "name": "php"
      },
      {
          "id": "AUD",
          "name": "aud"
      },
      {
          "id": "SAR",
          "name": "sar"
      },
      {
          "id": "JPY",
          "name": "jpy"
      }
  ],
  "default_inactive_period": 45,
  "default_storage_type": "dssd",
  "drives": {
      "dssd": {
          "iops": {
              "base": 30000,
              "max": 60000,
              "min": 1
          },
          "max_size": 15492389427364,
          "min_size": 536870912,
          "size": {
              "max": 15492389427364,
              "min": 536870912
          }
      },
      "nvme": {
          "iops": {
              "base": 30000,
              "max": 60000,
              "min": 1
          },
          "max_size": 12074020121525,
          "min_size": 536870912,
          "size": {
              "max": 12074020121525,
              "min": 536870912
          }
      },
      "zadara": {
          "iops": {
              "base": 4000,
              "max": 8000,
              "min": 1
          },
          "max_size": 14180205493621,
          "min_size": 1073741824.0,
          "size": {
              "max": 14180205493621,
              "min": 1073741824.0
          }
      }
  },
  "hosts": {
      "amd": {
          "cpu": {
              "max": 96000,
              "min": 250
          },
          "cpu_per_smp": {
              "max": 2893,
              "min": 1000
          },
          "mem": {
              "max": 558345748480,
              "min": 268435456
          },
          "smp": {
              "max": 32,
              "min": 1
          }
      },
      "intel": {
          "cpu": {
              "max": 96000,
              "min": 250
          },
          "cpu_per_smp": {
              "max": 3000,
              "min": 1000
          },
          "mem": {
              "max": 558345748480,
              "min": 268435456
          },
          "smp": {
              "max": 32,
              "min": 1
          }
      }
  },
  "hypervisors": {
      "kvm": [
          "intel",
          "amd"
      ]
  },
  "inactive_period_range": {
      "max": 250,
      "min": 0
  },
  "remote_snapshots": {
      "current": 0,
      "max": 600,
      "remote_locations": [
          "TBC"
      ]
  },
  "servers": {
      "cpu": {
          "max": 96000,
          "min": 250
      },
      "cpu_per_smp": {
          "max": 3000,
          "min": 1000
      },
      "default_start_method": "regular",
      "mem": {
          "max": 558345748480,
          "min": 268435456
      },
      "smp": {
          "max": 32,
          "min": 1
      },
      "start_methods": [
          "eager",
          "lazy",
          "regular"
      ]
  },
  "snapshots": {
      "current": 0,
      "max": 700,
      "max_per_drive": 90
  }
}

This is a detailed explanation of the key parameters of the API response for listing capabilities endpoint:

  1. Backfilling: Indicates whether backfilling is enabled (true) or not (false).

Backfilling is a feature that allows you to start servers without guaranteeing how long they will run. For more information https://docs.cloudsigma.com/en/latest/backfilling.html

  1. currencies: Lists the supported currencies with their IDs and names.

  2. id: It is the unique identifier for the currency. In this case, “CHF” represents the Swiss Franc.

  3. Name: It is the common or display name for the currency. In this case, “CHF” represents the abbreviation or name used to refer to the Swiss Franc.

So, this entry indicates that the system supports the Swiss Franc (CHF) as a currency, and “CHF” is the identifier or name used within the system for this currency.

  1. default_inactive_period: The default inactive period is defined as days. A value of 45 indicates the inactive period is 45 days.

This value is used to find the users with the last login made 45 days ago(using the value in the previous paragraph) and mark them as INACTIVE users.

  1. default_storage_type: Indicates the default storage type (e.g., “dssd”).

  2. drives: Provides detailed information about available drive types and their limitations, including IOPS and size ranges.

  3. EPC: The EPC values are related to the Intel SGX enclaves.

  4. epc_mem_ratio: The epc_mem_ratio represents the ratio of memory needed to start a guest that supports SGX.

  5. max_per_host: Represents the maximum free Enclave Page Cache (EPC) available in the location. The value is in bytes.

  6. GPUs: Lists GPU models with their maximum CPU, memory, SMP, and other relevant configurations.

  7. hosts: Details limitations for different host types (e.g., AMD, Intel) concerning CPU, CPU per SMP, memory, and SMP.

  8. Hypervisors: Specifies which hypervisors (e.g., KVM) are available on particular host types (e.g., Intel, AMD).

The “hypervisors” parameter informs users about the available hypervisors and the types of hosts (architectures) each hypervisor supports. In this specific case, the KVM hypervisor supports both “intel” and “amd” architectures.

  1. inactive_period_range: Defines the maximum and minimum values accepted for the Inactivation Timeout defined by the user, for further information please check https://tbc.cloudsigma.com/ui/5.0/security

15. remote_snapshots:Contains information about remote snapshots, including the current count, the maximum allowed, and locations. The difference between a snapshot and a remote snapshot is that the snapshot is stored in the same location as the source drive; the remote snapshot is stored in a different location.

  1. servers: Details about server properties, including CPU, memory, SMP, and start methods.

17. snapshots: Specifies the current count, maximum allowed, and maximum per drive for snapshots. A “snapshot” refers to a point-in-time copy of the state of a virtual machine or a storage drive. Snapshots are typically used for backup, recovery, or cloning purposes.

  1. vmware_drives: Provides details about VMware drive storage capacity limits.

  2. vmware_servers: Indicates VMware server compute capacity limits for CPU and memory.