at.happyproto.fleet.getTenantUsage

happyproto.at

Documentation

One tenant's metered usage by hour or day, with the hours that have no report. Proxied from the provisioner. Admin only.

main query

One tenant's metered usage by hour or day, with the hours that have no report. Proxied from the provisioner. Admin only.

Parameters

from string datetime Optional

Start of the range. Defaults to one day before `to` at hour grain, 30 days at day grain.

grain string Optional

Defaults to hour. Hour ranges may span 31 days, day ranges 400.

tenant string Required

The instance id.

to string datetime Optional

End of the range. Defaults to now.

Output

Encodingapplication/json
gaps array Required

No description available.

grain string Required

No description available.

Known values: hour, day
rows array Required

No description available.

tenant string Required

No description available.

Errors

AuthRequired This endpoint requires an authenticated caller.
Forbidden The caller is not HappyProto staff, or the provisioner does not treat them as staff.
InvalidRequest The provisioner refused the range or grain, for example a range that runs backwards or is too long.
NotFound Passed through from the provisioner.
InvalidSlug Passed through from the provisioner.
SlugTaken Passed through from the provisioner.
NotEntitled Passed through from the provisioner.
InstanceLimit Passed through from the provisioner.
NoCapacity Passed through from the provisioner.
OperationInProgress Passed through from the provisioner.
Upstream The provisioner could not complete the request.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://api.bsky.social)
Parameters
Start of the range. Defaults to one day before `to` at hour grain, 30 days at day grain.
Defaults to hour. Hour ranges may span 31 days, day ranges 400.
The instance id.
End of the range. Defaults to now.
View raw schema
{
  "description": "One tenant's metered usage by hour or day, with the hours that have no report. Proxied from the provisioner. Admin only.",
  "errors": [
    {
      "description": "This endpoint requires an authenticated caller.",
      "name": "AuthRequired"
    },
    {
      "description": "The caller is not HappyProto staff, or the provisioner does not treat them as staff.",
      "name": "Forbidden"
    },
    {
      "description": "The provisioner refused the range or grain, for example a range that runs backwards or is too long.",
      "name": "InvalidRequest"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "NotFound"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "InvalidSlug"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "SlugTaken"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "NotEntitled"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "InstanceLimit"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "NoCapacity"
    },
    {
      "description": "Passed through from the provisioner.",
      "name": "OperationInProgress"
    },
    {
      "description": "The provisioner could not complete the request.",
      "name": "Upstream"
    }
  ],
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "gaps": {
          "items": {
            "ref": "#gap",
            "type": "ref"
          },
          "type": "array"
        },
        "grain": {
          "knownValues": [
            "hour",
            "day"
          ],
          "type": "string"
        },
        "rows": {
          "items": {
            "ref": "#row",
            "type": "ref"
          },
          "type": "array"
        },
        "tenant": {
          "type": "string"
        }
      },
      "required": [
        "tenant",
        "grain",
        "rows",
        "gaps"
      ],
      "type": "object"
    }
  },
  "parameters": {
    "properties": {
      "from": {
        "description": "Start of the range. Defaults to one day before `to` at hour grain, 30 days at day grain.",
        "format": "datetime",
        "type": "string"
      },
      "grain": {
        "description": "Defaults to hour. Hour ranges may span 31 days, day ranges 400.",
        "enum": [
          "hour",
          "day"
        ],
        "knownValues": [
          "hour",
          "day"
        ],
        "type": "string"
      },
      "tenant": {
        "description": "The instance id.",
        "type": "string"
      },
      "to": {
        "description": "End of the range. Defaults to now.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "tenant"
    ],
    "type": "params"
  },
  "type": "query"
}
gap object

No description available.

Properties

hour string datetime Required

An RFC 3339 formatted timestamp.

reason string Required

No description available.

Known values: missing, agent_unreachable
View raw schema
{
  "properties": {
    "hour": {
      "format": "datetime",
      "type": "string"
    },
    "reason": {
      "knownValues": [
        "missing",
        "agent_unreachable"
      ],
      "type": "string"
    }
  },
  "required": [
    "hour",
    "reason"
  ],
  "type": "object"
}
row object

One hour or day of usage, summed across the tenant's hosts. `hour` is set at hour grain and `day` at day grain.

Properties

apiClients integer Optional

No description available.

cpuUsec integer Required

No description available.

day string Optional

UTC date, YYYY-MM-DD.

diskAvgBytes integer Optional

No description available.

diskPeakBytes integer Optional

No description available.

egressBytes integer Required

No description available.

hour string datetime Optional

An RFC 3339 formatted timestamp.

ingressBytes integer Required

No description available.

memByteSeconds integer Required

No description available.

memPeakBytes integer Required

No description available.

partial boolean Required

Some samples for this period were missing.

runningSeconds integer Required

No description available.

seats integer Optional

No description available.

View raw schema
{
  "description": "One hour or day of usage, summed across the tenant's hosts. `hour` is set at hour grain and `day` at day grain.",
  "properties": {
    "apiClients": {
      "type": "integer"
    },
    "cpuUsec": {
      "type": "integer"
    },
    "day": {
      "description": "UTC date, YYYY-MM-DD.",
      "type": "string"
    },
    "diskAvgBytes": {
      "type": "integer"
    },
    "diskPeakBytes": {
      "type": "integer"
    },
    "egressBytes": {
      "type": "integer"
    },
    "hour": {
      "format": "datetime",
      "type": "string"
    },
    "ingressBytes": {
      "type": "integer"
    },
    "memByteSeconds": {
      "type": "integer"
    },
    "memPeakBytes": {
      "type": "integer"
    },
    "partial": {
      "description": "Some samples for this period were missing.",
      "type": "boolean"
    },
    "runningSeconds": {
      "type": "integer"
    },
    "seats": {
      "type": "integer"
    }
  },
  "required": [
    "runningSeconds",
    "cpuUsec",
    "memByteSeconds",
    "memPeakBytes",
    "egressBytes",
    "ingressBytes",
    "partial"
  ],
  "type": "object"
}

Lexicon Garden

@