Limits

This schema file defines types related to preconfigured limits. Limits are used to manage the capacity of the API and to prevent abuse. The API defines two kinds of limits RateLimits and AbsoluteLimits. RateLimits are thresholds that are reset after a certain amount of time passes. Absolute limits are fixed.

The limits element contains information on both rate and absolute limits.

A container that holds a list of rate limits, followed by a list of absolute limits.

The element hold a list of RateLimits.

The element hold a list of AbsoluteLimits.

A sequence of RateLimit elements.

A sequence of AbsoluteLimit elements.

A rate limit is a threshold that is reset after a certain amount of time. Rate limits are imposed on the HTTP protocol and they are based on an HTTPVerb and a regular expression applied to a URI. For example, the rate limit below…

]]>

…indicates that only 25 posts per day are allowed on any API URI ending in /servers. The 26 post will raise an OverLimitFault until the resetTime arrives.

It is important to note that rate limits should be applied in order relative to the verb, going from least to most specific. Thus, although the threshold for POST to */servers, below, is 25 per day, one cannot POST to */servers more than 10 times within a single minute because the rate limits for any POST is 10/min.

The HTTPVerb the limit applies to.

A human readable wild-card URI. Here "*" matches any character.

A machine processable regular expression URI. The regular expression boundary matcher "^" takes affect after the root URI path. For example, the regular expression ^/servers would match the bold portion of the following URI:
https://servers.api.rackspacecloud.com/v1.0/3542812/servers

The unit of time (RateLimitUnit) associated with the rate value.

The rate limit in RateLimitUnits.

The number of units remaining before an OverLimitFault is raised.

The time in Unix time (the number of seconds since January 1, 1970 00:00:00 UTC) when the rate limit will reset.

Absolute limits are predefined fixed limits. We define each of these limits as a key/value pair. Please consult the API Specification for a list of absolute limits used by the system.

The name (or key) of the absolute limit. Currently, the following names are available:

  • maxTotalRAMSize
  • maxIPGroups
  • maxIPGroupMemebers

This may not be an exhaustive list. Please consult the API Specification. We do not define absolute limit names as an enumeration in this schema because we may need to impose new limits quickly without the need to modifying the schema document.

A value specifying the absolute limit.The name of the absolute limit determines the unit type. For example, the key maxIPGroups implies that the value is in terms of IPGroups.

The HTTP verbs (or methods) on which rate-limits may be enforced.

Units of time supported by rate limits.