Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

FastAPI v0.1.0

Default

Index

GET /

Responses

StatusMeaningDescription
200OKSuccessful Response

Ready

GET /health/ready

Readiness probe endpoint.

Responses

StatusMeaningDescription
200OKSuccessful Response

Hub Names

GET /hub-names

Endpoint to query hub names.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Component Names

GET /component-names

Endpoint to serve component names.

Responses

StatusMeaningDescription
200OKSuccessful Response

Total Costs

GET /total-costs

Endpoint to query total costs.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

User Groups

GET /user-groups

Endpoint to serve user group memberships.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format
hubqueryanyfalseName of the hub to filter results
usernamequeryanyfalseName of the user to filter results
usergroupqueryanyfalseName of the group to filter results

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Users With Multiple Groups

GET /users-with-multiple-groups

Endpoint to serve users with multiple groups.

Parameters

NameInTypeRequiredDescription
hub_namequeryanyfalseName of the hub to filter results
user_namequeryanyfalseName of the user to filter results

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Users With No Groups

GET /users-with-no-groups

Endpoint to serve users with no groups.

Parameters

NameInTypeRequiredDescription
hub_namequeryanyfalseName of the hub to filter results
user_namequeryanyfalseName of the user to filter results

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Total Costs Per Hub

GET /total-costs-per-hub

Endpoint to query total costs per hub.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Total Costs Per Component

GET /total-costs-per-component

Endpoint to query total costs per component.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format
hubqueryanyfalseName of the hub to filter results
componentqueryanyfalseName of the component to filter results

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Total Costs Per Group

GET /total-costs-per-group

Endpoint to query total costs per user group.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Costs Per User

GET /costs-per-user

Endpoint to query costs per user by combining AWS costs with Prometheus usage data.

This endpoint calculates individual user costs by:

  1. Getting total AWS costs per component (compute, storage) from Cost Explorer

  2. Getting usage fractions per user from Prometheus metrics

  3. Multiplying total costs by each user’s usage fraction

Query Parameters: from (str): Start date in YYYY-MM-DD format (defaults to 30 days ago) to (str): End date in YYYY-MM-DD format (defaults to current date) hub (str, optional): Filter to specific hub namespace component (str, optional): Filter to specific component (compute, home storage) user (str, optional): Filter to specific user usergroup (str, optional): Filter to specific user group limit (int, optional): Limit number of results to top N users by total cost.

Returns: List of dicts with keys: date, hub, component, user, value (cost in USD) Results are sorted by date, hub, component, then value (highest cost first)

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format
hubqueryanyfalseName of the hub to filter results
componentqueryanyfalseName of the component to filter results
userqueryanyfalseName of the user to filter results
usergroupqueryanyfalseName of user group to filter results
limitqueryanyfalseLimit number of results to top N users by total cost.

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error

Total Usage

GET /total-usage

Endpoint to query total usage. Expects ‘from’ and ‘to’ query parameters in the api_provider YYYY-MM-DD. Optionally accepts ‘hub’, ‘component’ and ‘user’, query parameters.

Parameters

NameInTypeRequiredDescription
fromqueryanyfalseStart date in YYYY-MM-DDTHH:MMZ format
toqueryanyfalseEnd date in YYYY-MM-DDTHH:MMZ format
hubqueryanyfalseName of the hub to filter results
componentqueryanyfalseName of the component to filter results
userqueryanyfalseName of the user to filter results

Responses

StatusMeaningDescription
200OKSuccessful Response
422Unprocessable EntityValidation Error