Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.vantage.sh/v2
/access_grants
Return all Access Grants that the current API token has access to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /access_grants
/access_grants
Create an Access Grant.
application/json
createAccessGrant
| Property | Type | Required |
|---|---|---|
| access | string | optional |
| team_token | string | required |
| resource_token | string | required |
BadRequest
Forbidden
NotFound
NotAcceptable
UnprocessableEntity
POST /access_grants
/access_grants/{access_grant_token}
Delete an Access Grant.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access_grant_token | path | required | string | — |
NotFound
DELETE /access_grants/{access_grant_token}
/access_grants/{access_grant_token}
Return a specific Access Grant.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access_grant_token | path | required | string | — |
NotFound
GET /access_grants/{access_grant_token}
/access_grants/{access_grant_token}
Update an AccessGrant.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access_grant_token | path | required | string | — |
application/json
updateAccessGrant
| Property | Type | Required |
|---|---|---|
| access | string | required |
BadRequest
NotFound
PUT /access_grants/{access_grant_token}
/anomaly_alerts
Return all Anomaly Alerts that the current API token has access to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /anomaly_alerts
/anomaly_alerts/{anomaly_alert_token}
Return an AnomalyAlert that the current API token has access to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| anomaly_alert_token | path | required | string | — |
NotFound
GET /anomaly_alerts/{anomaly_alert_token}
/anomaly_alerts/{anomaly_alert_token}
Update an AnomalyAlert.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| anomaly_alert_token | path | required | string | — |
application/json
updateAnomalyAlert
| Property | Type | Required |
|---|---|---|
| status | string | required |
| feedback | string | optional |
BadRequest
Forbidden
NotFound
UnprocessableEntity
PUT /anomaly_alerts/{anomaly_alert_token}
/anomaly_notifications
Return all Anomaly Notifications.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /anomaly_notifications
/anomaly_notifications
Create an Anomaly Notification for a Cost Report.
application/json
createAnomalyNotification
| Property | Type | Required |
|---|---|---|
| threshold | integer | optional |
| user_tokens | array | optional |
| cost_report_token | string | required |
| recipient_channels | array | optional |
BadRequest
POST /anomaly_notifications
/anomaly_notifications/{anomaly_notification_token}
Delete an Anomaly Notification.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| anomaly_notification_token | path | required | string | — |
NotFound
DELETE /anomaly_notifications/{anomaly_notification_token}
/anomaly_notifications/{anomaly_notification_token}
Return an Anomaly Notification that the current API token has access to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| anomaly_notification_token | path | required | string | — |
NotFound
GET /anomaly_notifications/{anomaly_notification_token}
/anomaly_notifications/{anomaly_notification_token}
Update an Anomaly Notification.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| anomaly_notification_token | path | required | string | — |
application/json
updateAnomalyNotification
| Property | Type | Required |
|---|---|---|
| threshold | integer | optional |
| user_tokens | array | optional |
| recipient_channels | array | optional |
BadRequest
PUT /anomaly_notifications/{anomaly_notification_token}
/budget_alerts
Return all BudgetAlerts.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The number of results to return. The maximum is 1000. |
GET /budget_alerts
/budget_alerts
Create a Budget Alert.
application/x-www-form-urlencoded
BudgetAlertsCreateAlertRequest
| Property | Type | Required |
|---|---|---|
| threshold | integer | required |
| user_tokens | array | optional |
| budget_tokens | array | required |
| period_to_track | string | optional |
| duration_in_days | integer | required |
| recipient_channels | array | optional |
BadRequest
POST /budget_alerts
/budget_alerts/{budget_alert_token}
Delete a BudgetAlert.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_alert_token | path | required | string | — |
NotFound
DELETE /budget_alerts/{budget_alert_token}
/budget_alerts/{budget_alert_token}
Return a BudgetAlert.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_alert_token | path | required | string | — |
NotFound
GET /budget_alerts/{budget_alert_token}
/budget_alerts/{budget_alert_token}
Updates an existing BudgetAlert.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_alert_token | path | required | string | — |
application/x-www-form-urlencoded
BudgetAlertsUpdateExistingAlertRequest
| Property | Type | Required |
|---|---|---|
| threshold | integer | optional |
| user_tokens | array | optional |
| budget_tokens | array | optional |
| period_to_track | string | optional |
| duration_in_days | integer | optional |
| recipient_channels | array | optional |
NotFound
PUT /budget_alerts/{budget_alert_token}
/budgets
Return all Budgets.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The number of results to return. The maximum is 1000. |
GET /budgets
/budgets
Create a Budget.
application/json
createBudget
| Property | Type | Required |
|---|---|---|
| name | string | required |
| periods | array | optional |
| └ amount | number | required |
| └ end_at | string | optional |
| └ start_at | string | required |
| workspace_token | string | optional |
| cost_report_token | string | optional |
BadRequest
UnprocessableEntity
POST /budgets
/budgets/{budget_token}
Delete a Budget.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_token | path | required | string | — |
NotFound
DELETE /budgets/{budget_token}
/budgets/{budget_token}
Return a Budget.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_token | path | required | string | — |
NotFound
GET /budgets/{budget_token}
/budgets/{budget_token}
Update a Budget.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| budget_token | path | required | string | — |
application/json
updateBudget
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| periods | array | optional |
| └ amount | number | required |
| └ end_at | string | optional |
| └ start_at | string | required |
| cost_report_token | string | optional |
BadRequest
NotFound
PUT /budgets/{budget_token}
/business_metrics
Return all BusinessMetrics that the current API token has access to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /business_metrics
/business_metrics
Create a new BusinessMetric.
application/json
createBusinessMetric
| Property | Type | Required |
|---|---|---|
| title | string | required |
| values | array | optional |
| └ date | string | required |
| └ amount | number | required |
| cost_report_tokens_with_metadata | array | optional |
| └ unit_scale | string | optional |
| └ cost_report_token | string | required |
BadRequest
Forbidden
NotFound
UnprocessableEntity
POST /business_metrics
/business_metrics/{business_metric_token}
Deletes an existing BusinessMetric.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| business_metric_token | path | required | string | — |
Forbidden
NotFound
DELETE /business_metrics/{business_metric_token}
/business_metrics/{business_metric_token}
Return a specific BusinessMetrics.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| business_metric_token | path | required | string | — |
NotFound
GET /business_metrics/{business_metric_token}
/business_metrics/{business_metric_token}
Updates an existing BusinessMetric.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| business_metric_token | path | required | string | — |
application/json
updateBusinessMetric
| Property | Type | Required |
|---|---|---|
| title | string | optional |
| values | array | optional |
| └ date | string | required |
| └ amount | number | required |
| cost_report_tokens_with_metadata | array | optional |
| └ unit_scale | string | optional |
| └ cost_report_token | string | required |
BadRequest
Forbidden
NotFound
UnprocessableEntity
PUT /business_metrics/{business_metric_token}
/business_metrics/{business_metric_token}/values.csv
Updates the values for an existing BusinessMetric from a CSV file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| business_metric_token | path | required | string | — |
multipart/form-data
BusinessMetricsUpdateValuesCsvRequest
| Property | Type | Required |
|---|---|---|
| csv | string | required |
BadRequest
Forbidden
NotFound
UnprocessableEntity
PUT /business_metrics/{business_metric_token}/values.csv
/cost_reports
Return all CostReports.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /cost_reports
/cost_reports
Create a CostReport.
application/json
createCostReport
| Property | Type | Required |
|---|---|---|
| title | string | required |
| filter | string | optional |
| settings | object | optional |
| └ amortize | boolean | optional |
| └ include_tax | boolean | optional |
| └ unallocated | boolean | optional |
| └ include_credits | boolean | optional |
| └ include_refunds | boolean | optional |
| └ include_discounts | boolean | optional |
| groupings | string | optional |
| folder_token | string | optional |
| workspace_token | string | optional |
| saved_filter_tokens | array | optional |
| business_metric_tokens_with_metadata | array | optional |
| └ unit_scale | string | optional |
| └ business_metric_token | string | required |
BadRequest
UnprocessableEntity
POST /cost_reports
/cost_reports/{cost_report_token}
Delete a CostReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cost_report_token | path | required | string | — |
NotFound
DELETE /cost_reports/{cost_report_token}
/cost_reports/{cost_report_token}
Return a CostReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cost_report_token | path | required | string | — |
NotFound
GET /cost_reports/{cost_report_token}
/cost_reports/{cost_report_token}
Update a CostReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cost_report_token | path | required | string | — |
application/json
updateCostReport
| Property | Type | Required |
|---|---|---|
| title | string | optional |
| filter | string | optional |
| settings | object | optional |
| └ amortize | boolean | optional |
| └ include_tax | boolean | optional |
| └ unallocated | boolean | optional |
| └ include_credits | boolean | optional |
| └ include_refunds | boolean | optional |
| └ include_discounts | boolean | optional |
| groupings | string | optional |
| folder_token | string | optional |
| saved_filter_tokens | array | optional |
| business_metric_tokens_with_metadata | array | optional |
| └ unit_scale | string | optional |
| └ business_metric_token | string | required |
BadRequest
NotFound
PUT /cost_reports/{cost_report_token}
/costs
Return all Costs for a CostReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cost_report_token | query | required | string | The CostReport token. |
| start_date | query | optional | string | First date you would like to filter costs from. ISO 8601 formatted. |
| end_date | query | optional | string | Last date you would like to filter costs to. ISO 8601 formatted. |
| groupings | query | optional | array | Group the results by specific field(s). Defaults to provider, service, account_id. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, tag:. If providing multiple groupings, join as comma separated values: groupings=provider,service,region |
| order | query | optional | string | Whether to order costs by date in an ascending or descending manner. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
BadRequest
PaymentRequired
NotFound
GET /costs
/dashboards
Return all Dashboards.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /dashboards
/dashboards
Create a Dashboard.
application/json
createDashboard
| Property | Type | Required |
|---|---|---|
| title | string | required |
| date_bin | string | optional |
| end_date | string | required |
| start_date | string | optional |
| date_interval | string | optional |
| widget_tokens | array | optional |
| workspace_token | string | optional |
| saved_filter_tokens | array | optional |
BadRequest
POST /dashboards
/dashboards/{dashboard_token}
Delete a Dashboard.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dashboard_token | path | required | string | — |
NotFound
DELETE /dashboards/{dashboard_token}
/dashboards/{dashboard_token}
Return a specific Dashboard.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dashboard_token | path | required | string | — |
NotFound
GET /dashboards/{dashboard_token}
/dashboards/{dashboard_token}
Update a Dashboard.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dashboard_token | path | required | string | — |
application/json
updateDashboard
| Property | Type | Required |
|---|---|---|
| title | string | optional |
| date_bin | string | optional |
| end_date | string | required |
| start_date | string | optional |
| date_interval | string | optional |
| widget_tokens | array | optional |
| saved_filter_tokens | array | optional |
BadRequest
NotFound
PUT /dashboards/{dashboard_token}
/saved_filters
Return all SavedFilters that can be applied to a CostReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /saved_filters
/saved_filters
Create a SavedFilter for CostReports.
application/json
createSavedFilter
| Property | Type | Required |
|---|---|---|
| title | string | required |
| filter | string | optional |
| workspace_token | string | optional |
BadRequest
UnprocessableEntity
POST /saved_filters
/saved_filters/{saved_filter_token}
Delete a SavedFilter for CostReports.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| saved_filter_token | path | required | string | — |
NotFound
DELETE /saved_filters/{saved_filter_token}
/saved_filters/{saved_filter_token}
Return a specific SavedFilter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| saved_filter_token | path | required | string | — |
NotFound
GET /saved_filters/{saved_filter_token}
/saved_filters/{saved_filter_token}
Update a SavedFilter for CostReports.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| saved_filter_token | path | required | string | — |
application/json
updateSavedFilter
| Property | Type | Required |
|---|---|---|
| title | string | optional |
| filter | string | optional |
BadRequest
NotFound
UnprocessableEntity
PUT /saved_filters/{saved_filter_token}
/financial_commitment_reports
Return all FinancialCommitmentReports.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /financial_commitment_reports
/financial_commitment_reports/{financial_commitment_report_token}
Delete a FinancialCommitmentReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| financial_commitment_report_token | path | required | string | — |
NotFound
DELETE /financial_commitment_reports/{financial_commitment_report_token}
/financial_commitment_reports/{financial_commitment_report_token}
Return a FinancialCommitmentReport.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| financial_commitment_report_token | path | required | string | — |
NotFound
GET /financial_commitment_reports/{financial_commitment_report_token}
/folders
Return all Folders for CostReports.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page of results to return. |
| limit | query | optional | integer | The amount of results to return. The maximum is 1000. |
GET /folders
/folders
Create a Folder for CostReports.
application/json
createFolder
| Property | Type | Required |
|---|---|---|
| title | string | required |
| workspace_token | string | optional |
| parent_folder_token | string | optional |
| saved_filter_tokens | array | optional |
BadRequest
POST /folders
AccessGrant
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"access": {
"type": "string",
"description": "The access status of the AccessGrant."
},
"created_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the AccessGrant was created. ISO 8601 Formatted."
},
"created_by": {
"type": "string",
"description": "The token for the User who created the AccessGrant."
},
"team_token": {
"type": "string",
"description": "The Team token for which an AccessGrant is applied to."
},
"resource_token": {
"type": "string",
"example": "rprt_abcd1234",
"description": "The token for any resource the AccessGrant is applied to."
}
},
"description": "AccessGrant model"
}
AccessGrants
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"access_grants": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccessGrant"
}
}
},
"description": "AccessGrants model"
}
AnomalyAlert
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"amount": {
"type": "string",
"description": "The amount observed."
},
"status": {
"type": "string",
"description": "The status of the AnomalyAlert."
},
"service": {
"type": "string",
"description": "The provider service causing the AnomalyAlert."
},
"category": {
"type": "string",
"description": "The category of the AnomalyAlert."
},
"feedback": {
"type": "string",
"description": "The user-provided feedback of why alert was ignored/archived."
},
"provider": {
"type": "string",
"description": "The provider of the service causing the AnomalyAlert."
},
"alerted_at": {
"type": "string",
"example": "2021-07-09T00:00:00Z",
"description": "The date and time, in UTC, the AnomalyAlert is sent. ISO 8601 Formatted."
},
"created_at": {
"type": "string",
"example": "2021-07-09T00:00:00Z",
"description": "The date and time, in UTC, the AnomalyAlert was created. ISO 8601 Formatted."
},
"previous_amount": {
"type": "string",
"description": "The previous amount observed."
},
"cost_report_token": {
"type": "string",
"description": "The token of the Report associated with the AnomalyAlert."
},
"seven_day_average": {
"type": "string",
"description": "The seven day average of the amount observed."
}
},
"description": "AnomalyAlert model"
}
AnomalyAlerts
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"anomaly_alerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AnomalyAlert"
}
}
},
"description": "AnomalyAlerts model"
}
AnomalyNotification
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"threshold": {
"type": "integer",
"format": "int32",
"description": "The threshold amount that must be met for the notification to fire."
},
"created_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the AnomalyNotification was created. ISO 8601 Formatted."
},
"updated_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the AnomalyNotification was last updated at. ISO 8601 Formatted."
},
"user_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the users that receive the notification."
},
"cost_report_token": {
"type": "string",
"description": "The token for the CostReport the AnomalyNotification is associated with."
},
"recipient_channels": {
"type": "array",
"items": {
"type": "string"
},
"description": "The channels that the notification is sent to."
}
},
"description": "AnomalyNotification model"
}
AnomalyNotifications
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"anomaly_notifications": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AnomalyNotification"
}
}
},
"description": "AnomalyNotifications model"
}
AttachedBusinessMetricForCostReport
{
"type": "object",
"properties": {
"unit_scale": {
"enum": [
"per_unit",
"per_hundred",
"per_thousand",
"per_million",
"per_billion"
],
"type": "string",
"example": "per_hundred",
"description": "Determines the scale of the BusinessMetric's values within a particular CostReport."
},
"business_metric_token": {
"type": "string",
"example": "bsnss_mtrc_1234",
"description": "The token of the BusinessMetric that's attached to the CostReport."
}
}
}
AttachedCostReportForBusinessMetric
{
"type": "object",
"properties": {
"unit_scale": {
"enum": [
"per_unit",
"per_hundred",
"per_thousand",
"per_million",
"per_billion"
],
"type": "string",
"example": "per_hundred",
"description": "Determines the scale of the BusinessMetric's values within a particular CostReport."
},
"cost_report_token": {
"type": "string",
"example": "rprt_1234",
"description": "The token of the CostReport the BusinessMetric is attached to."
}
}
}
Budget
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Acme123 Budget",
"description": "The name of the Budget."
},
"token": {
"type": "string"
},
"periods": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BudgetPeriod"
},
"description": "The budget periods associated with the Budget."
},
"created_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget was created. ISO 8601 Formatted."
},
"user_token": {
"type": "string",
"description": "The token for the User who created this Budget."
},
"performance": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BudgetPerformance"
},
"description": "The historical performance of the Budget."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the Budget is a part of."
},
"cost_report_token": {
"type": "string",
"description": "The token of the Report associated with the Budget."
},
"budget_alert_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"bdgt_alrt_c9cd4e1a7127461b"
]
},
"description": "The tokens of the BudgetAlerts associated with the Budget."
}
},
"description": "Budget model"
}
BudgetAlert
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"threshold": {
"type": "string",
"example": "75",
"description": "Alerts only send if they reach this number (as a percentage). When threshold is 100, that means alerts are triggered once costs reach 100% of the budget."
},
"created_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget Alert was created. ISO 8601 Formatted."
},
"user_token": {
"type": "string",
"description": "The token for the User who created this BudgetAlert."
},
"user_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"usr_abcd1234",
"usr_efgh5678"
]
},
"description": "The Users that receive the alert."
},
"budget_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"bdgt_22dc1ac6e000cd14",
"bdgt_e045e8d2c739cb2c"
]
},
"description": "The tokens for the Budgets that the Budget Alert is monitoring to trigger alerts on."
},
"period_to_track": {
"type": "string",
"example": "start_of_the_month",
"description": "The period tracked on the alert. Used with duration_in_days to determine the time window of the alert. Possible values: start_of_the_month, end_of_the_month."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the ResourceReport is a part of."
},
"duration_in_days": {
"type": "string",
"description": "The number of days from the start or end of the month to trigger the alert if the threshold is reached."
},
"recipient_channels": {
"type": "string",
"example": [
"#budget-notifications",
"#finance"
],
"description": "The channels receiving the alerts. Requires an integration provider to be connected."
},
"integration_provider": {
"type": "string",
"example": "slack",
"description": "The provider used for sending alerts. This must be configured in the console. Possible values are: slack, microsoft_graph."
}
},
"description": "BudgetAlert model"
}
BudgetAlerts
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"budget_alerts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BudgetAlert"
}
}
},
"description": "BudgetAlerts model"
}
BudgetAlertsCreateAlertRequest
{
"type": "object",
"required": [
"budget_tokens",
"threshold",
"duration_in_days"
],
"properties": {
"threshold": {
"type": "integer",
"format": "int32",
"description": "The threshold amount that must be met for the alert to fire."
},
"user_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the users that receive the alert."
},
"budget_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the Budget that has the alert."
},
"period_to_track": {
"type": "string",
"description": "The period tracked on the alert. Used with duration_in_days to determine the time window of the alert. Defaults to start_of_the_month if not passed. Possible values: start_of_the_month, end_of_the_month."
},
"duration_in_days": {
"type": "integer",
"format": "int32",
"description": "The number of days from the start or end of the month to trigger the alert if the threshold is reached. For the full month, pass an empty value."
},
"recipient_channels": {
"type": "array",
"items": {
"type": "string"
},
"description": "The channels receiving the alerts. Requires an integration provider to be connected."
}
}
}
BudgetAlertsUpdateExistingAlertRequest
{
"type": "object",
"properties": {
"threshold": {
"type": "integer",
"format": "int32",
"description": "The threshold amount that must be met for the alert to fire."
},
"user_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the users that receive the alert."
},
"budget_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the Budget that has the alert."
},
"period_to_track": {
"type": "string",
"description": "The period tracked on the alert. Used with duration_in_days to determine the time window of the alert. Defaults to start_of_the_month if not passed. Possible values: start_of_the_month, end_of_the_month."
},
"duration_in_days": {
"type": "integer",
"format": "int32",
"description": "The number of days from the start or end of the month to trigger the alert if the threshold is reached. For the full month, pass an empty value."
},
"recipient_channels": {
"type": "array",
"items": {
"type": "string"
},
"description": "The channels receiving the alerts. Requires an integration provider to be connected."
}
}
}
BudgetPerformance
{
"type": "object",
"properties": {
"date": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget was created. ISO 8601 Formatted."
},
"actual": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget was created. ISO 8601 Formatted."
},
"amount": {
"type": "string",
"example": "100.00",
"description": "The amount of the Budget Period as a string to ensure precision."
}
}
}
BudgetPeriod
{
"type": "object",
"properties": {
"amount": {
"type": "string",
"example": "100.00",
"description": "The amount of the Budget Period as a string to ensure precision."
},
"end_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget was created. ISO 8601 Formatted."
},
"start_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the Budget was created. ISO 8601 Formatted."
}
}
}
Budgets
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"budgets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Budget"
}
}
},
"description": "Budgets model"
}
BusinessMetric
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Total Revenue",
"description": "The title of the BusinessMetric."
},
"token": {
"type": "string",
"example": "bsnss_mtrc_1234",
"description": "The token of the BusinessMetric."
},
"values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BusinessMetricValue"
},
"description": "The dates and amounts for the BusinessMetric"
},
"created_by_token": {
"type": "string",
"example": "usr_1234",
"description": "The token of the User who created the BusinessMetric."
},
"cost_report_tokens_with_metadata": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AttachedCostReportForBusinessMetric"
},
"description": "The tokens for any CostReports that use the BusinessMetric, and the unit scale."
}
},
"description": "BusinessMetric model"
}
BusinessMetricValue
{
"type": "object",
"properties": {
"date": {
"type": "string",
"example": "2024-03-01+00:00",
"description": "The date of the Business Metric Value. ISO 8601 formatted."
},
"amount": {
"type": "string",
"example": "100.00",
"description": "The amount of the Business Metric Value as a string to ensure precision."
}
}
}
BusinessMetrics
{
"type": "object",
"properties": {
"business_metrics": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BusinessMetric"
}
}
},
"description": "BusinessMetrics model"
}
BusinessMetricsUpdateValuesCsvRequest
{
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string",
"format": "binary",
"description": "CSV file containing BusinessMetric dates and amounts"
}
}
}
Cost
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"example": "production",
"description": "The tag attached to the cost that was incurred.\nDEPRECATED: does not support multiple tags."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"example": [
"environment:production",
"aws:ecs:serviceName:frontend"
]
},
"description": "The tag pairs attached to the cost that was incurred."
},
"links": {
"type": "object"
},
"amount": {
"type": "string",
"example": "4.25",
"description": "The amount of the cost."
},
"region": {
"type": "string",
"example": "us-east-1",
"description": "The region which incurred the cost."
},
"service": {
"type": "string",
"example": "Amazon Elastic Compute Cloud - Compute",
"description": "The service which incurred the cost."
},
"currency": {
"type": "string",
"example": "USD",
"description": "The currency of the cost."
},
"provider": {
"enum": [
"aws",
"azure",
"gcp",
"snowflake",
"databricks",
"mongo",
"datadog",
"fastly",
"new_relic",
"opencost",
"open_ai",
"oracle",
"confluent",
"planetscale",
"coralogix",
"kubernetes"
],
"type": "string",
"example": "aws",
"description": "The cost provider which incurred the cost."
},
"account_id": {
"type": "string",
"example": "9109237192",
"description": "The cost provider's account id that incurred the cost."
},
"accrued_at": {
"type": "string",
"example": "2023-09-05+00:00",
"description": "The date the cost was accrued. ISO 8601 Formatted."
},
"resource_id": {
"type": "string",
"example": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0",
"description": "The resource id which incurred the cost."
},
"cost_category": {
"type": "string",
"example": "Data Transfer",
"description": "The category for the cost."
},
"cost_subcategory": {
"type": "string",
"example": "DataTransfer-Regional-Bytes",
"description": "The subcategory for the cost."
},
"billing_account_id": {
"type": "string",
"example": "9109237192",
"description": "The cost provider's billing account id that incurred the cost."
}
}
}
CostReport
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Production Environment",
"description": "The title of the CostReport."
},
"token": {
"type": "string"
},
"filter": {
"type": "string",
"description": "The filter applied to the CostReport. Additional documentation available at https://docs.vantage.sh/vql."
},
"settings": {
"type": "object",
"properties": {
"amortize": {
"type": "boolean",
"default": true,
"description": "Report will amortize."
},
"include_tax": {
"type": "boolean",
"default": true,
"description": "Report will include tax."
},
"unallocated": {
"type": "boolean",
"default": false,
"description": "Report will show unallocated costs."
},
"include_credits": {
"type": "boolean",
"default": false,
"description": "Report will include credits."
},
"include_refunds": {
"type": "boolean",
"default": false,
"description": "Report will include refunds."
},
"include_discounts": {
"type": "boolean",
"default": true,
"description": "Report will include discounts."
}
},
"description": "Report settings."
},
"groupings": {
"type": "string",
"example": "provider, service",
"description": "The grouping aggregations applied to the filtered data."
},
"created_at": {
"type": "string",
"example": "2021-07-09T00:00:00Z",
"description": "The date and time, in UTC, the report was created. ISO 8601 Formatted."
},
"folder_token": {
"type": "string",
"description": "The token for the Folder the CostReport is a part of."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the CostReport is a part of."
},
"saved_filter_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens for the SavedFilters assigned to the CostReport."
},
"business_metric_tokens_with_metadata": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AttachedBusinessMetricForCostReport"
},
"description": "The tokens for the BusinessMetrics assigned to the CostReport, and the unit scale."
}
},
"description": "CostReport model"
}
CostReports
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"cost_reports": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CostReport"
}
}
},
"description": "CostReports model"
}
Costs
{
"type": "object",
"properties": {
"costs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Cost"
}
},
"links": {
"type": "object"
},
"total_cost": {
"type": "string",
"description": "The sum of all costs for the CostReport for the requested period, rounded to 2 decimal places, alongside the ISO 4217 currency code."
}
},
"description": "Costs model"
}
Dashboard
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "AWS Dashboard",
"description": "The title of the Dashboard."
},
"token": {
"type": "string",
"example": "dshbrd_abcd1234567890"
},
"date_bin": {
"enum": [
"cumulative",
"day",
"week",
"month"
],
"type": "string",
"description": "Determines how to group costs in the Dashboard."
},
"end_date": {
"type": "string",
"example": "2023-09-04",
"description": "The end date for the date range for CostReports in the Dashboard. ISO 8601 Formatted. Overwrites 'date_interval' if set."
},
"created_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the Dashboard was created. ISO 8601 Formatted."
},
"start_date": {
"type": "string",
"example": "2023-08-04",
"description": "The start date for the date range for CostReports in the Dashboard. ISO 8601 Formatted. Overwrites 'date_interval' if set."
},
"updated_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the Dashboard was created. ISO 8601 Formatted."
},
"date_interval": {
"enum": [
"this_month",
"last_7_days",
"last_30_days",
"last_month",
"last_3_months",
"last_6_months",
"custom",
"last_12_months",
"last_24_months",
"last_36_months",
"next_month",
"next_3_months",
"next_6_months",
"next_12_months"
],
"type": "string",
"description": "Determines the date range in the Dashboard. Guaranteed to be set to 'custom' if 'start_date' and 'end_date' are set."
},
"widget_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the widgets displayed in the Dashboard. Currently only supports CostReport tokens."
},
"workspace_token": {
"type": "string",
"example": "wrkspc_abcd1234567890",
"description": "The token for the Workspace the Dashboard is a part of."
},
"saved_filter_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens of the Saved Filters used in the Dashboard."
}
},
"description": "Dashboard model"
}
Dashboards
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"dashboards": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Dashboard"
}
}
},
"description": "Dashboards model"
}
Errors
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"errors": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Errors model"
}
FinancialCommitmentReport
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Acme123 Financial Commitment Report",
"description": "The title of the FinancialCommitmentReport."
},
"token": {
"type": "string"
},
"default": {
"type": "boolean",
"description": "Indicates whether the FinancialCommitmentReport is the default report."
},
"end_date": {
"type": "string",
"example": "2024-03-20",
"description": "The end date for the FinancialCommitmentReport. Only set for custom date ranges. ISO 8601 Formatted."
},
"groupings": {
"type": "string",
"example": "cost_type, tag:account",
"description": "The grouping aggregations applied to the filtered data."
},
"created_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the report was created. ISO 8601 Formatted."
},
"start_date": {
"type": "string",
"example": "2024-03-01",
"description": "The start date for the FinancialCommitmentReport. Only set for custom date ranges. ISO 8601 Formatted."
},
"user_token": {
"type": "string",
"description": "The token for the User who created this FinancialCommitmentReport."
},
"date_bucket": {
"type": "string",
"example": "month",
"description": "How costs are grouped and displayed in the FinancialCommitmentReport. Possible values: day, week, month."
},
"date_interval": {
"type": "string",
"example": "last_month",
"description": "The date range for the FinancialCommitmentReport. Only present if a custom date range is not specified."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the FinancialCommitmentReport is a part of."
},
"on_demand_costs_scope": {
"type": "string",
"example": "discountable",
"description": "The scope for the costs. Possible values: discountable, all."
}
},
"description": "FinancialCommitmentReport model"
}
FinancialCommitmentReports
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"financial_commitment_reports": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FinancialCommitmentReport"
}
}
},
"description": "FinancialCommitmentReports model"
}
Folder
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Platform Team Reports",
"description": "The title of the Folder."
},
"token": {
"type": "string"
},
"created_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the Folder was created. ISO 8601 Formatted."
},
"updated_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the Folder was last updated at. ISO 8601 Formatted."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the Folder is a part of."
},
"parent_folder_token": {
"type": "string",
"description": "The token for the parent Folder, if any."
},
"saved_filter_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tokens for the SavedFilters assigned to the Folder."
}
},
"description": "Folder model"
}
Folders
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"folders": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Folder"
}
}
},
"description": "Folders model"
}
KubernetesEfficiencyReport
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Acme123 Kubernetes Efficiency Metrics",
"description": "The title of the KubernetesEfficiencyReport."
},
"token": {
"type": "string"
},
"default": {
"type": "boolean",
"description": "Indicates whether the KubernetesEfficiencyReport is the default report."
},
"end_date": {
"type": "string",
"example": "2024-03-20",
"description": "The end date for the KubernetesEfficiencyReport. Only set for custom date ranges. ISO 8601 Formatted."
},
"groupings": {
"type": "string",
"example": "cluster_id, namespace",
"description": "The grouping aggregations applied to the filtered data."
},
"created_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the report was created. ISO 8601 Formatted."
},
"start_date": {
"type": "string",
"example": "2024-03-01",
"description": "The start date for the KubernetesEfficiencyReport. Only set for custom date ranges. ISO 8601 Formatted."
},
"user_token": {
"type": "string",
"description": "The token for the User who created this KubernetesEfficiencyReport."
},
"date_bucket": {
"type": "string",
"example": "month",
"description": "How costs are grouped and displayed in the KubernetesEfficiencyReport. Possible values: day, week, month."
},
"aggregated_by": {
"type": "string",
"description": "How costs are aggregated by. Possible values: idle_costs, amount."
},
"date_interval": {
"type": "string",
"example": "last_month",
"description": "The date range for the KubernetesEfficiencyReport. Only present if a custom date range is not specified."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the KubernetesEfficiencyReport is a part of."
}
},
"description": "KubernetesEfficiencyReport model"
}
KubernetesEfficiencyReports
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"kubernetes_efficiency_reports": {
"type": "array",
"items": {
"$ref": "#/components/schemas/KubernetesEfficiencyReport"
}
}
},
"description": "KubernetesEfficiencyReports model"
}
Price
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"unit": {
"type": "string",
"example": "hour",
"description": "The unit in which the amount is billed."
},
"amount": {
"type": "number",
"example": 1.324,
"description": "The amount of money this specific product price costs."
},
"region": {
"type": "string",
"example": "us-east-1",
"description": "The region the price is specific to."
},
"details": {
"type": "object",
"example": {
"platform": "linux-enterprise",
"lifecycle": "on-demand"
},
"description": "Service specific metadata."
},
"currency": {
"type": "string",
"example": "USD",
"description": "The currency of the amount."
},
"rate_type": {
"type": "string",
"example": "compute",
"description": "The part of the product the price applies to. (compute, transfer, etc..)"
}
},
"description": "Price model"
}
Prices
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"prices": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Price"
}
}
},
"description": "Prices model"
}
Product
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"example": "EC2",
"description": "The common name of the product."
},
"details": {
"type": "object",
"example": {
"gpu": 0,
"name": "M5 General Purpose 16xlarge",
"vcpu": 64,
"memory": 256,
"clock_speed_ghz": 3.1,
"physical_processor_description": "Intel Xeon Platinum 8175 (Skylake)",
"network_performance_description": "20 Gigabit"
},
"description": "An object of metadata about the product."
},
"category": {
"type": "string",
"example": "compute",
"description": "The category of the cloud product"
},
"service_id": {
"type": "string",
"example": "aws-ec2",
"description": "A unique slug for the service the product belongs to."
},
"provider_id": {
"type": "string",
"example": "aws",
"description": "A unique slug for the provider the product belongs to."
}
},
"description": "Product model"
}
Products
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"products": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Product"
}
}
},
"description": "Products model"
}
ReportNotification
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Acme Report Notification",
"description": "The title of the ReportNotification."
},
"token": {
"type": "string"
},
"change": {
"enum": [
"percentage",
"dollars"
],
"type": "string",
"example": "percentage",
"description": "The type of change the ReportNotification is tracking."
},
"frequency": {
"enum": [
"daily",
"weekly",
"monthly"
],
"type": "string",
"example": "weekly",
"description": "The frequency the ReportNotification is sent."
},
"user_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"usr_abcd1234",
"usr_efgh5678"
]
},
"description": "The Users that receive the notification."
},
"cost_report_token": {
"type": "string",
"example": "rprt_abcd1234",
"description": "The token for a CostReport the ReportNotification is applied to."
},
"recipient_channels": {
"type": "array",
"items": {
"type": "string",
"example": [
"#notifications-channel"
]
},
"description": "The Slack or Microsoft Teams channels that receive the notification."
}
},
"description": "ReportNotification model"
}
ReportNotifications
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"report_notifications": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReportNotification"
}
}
},
"description": "ReportNotifications model"
}
ResourceReport
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Acme123 Active Resources",
"description": "The title of the ResourceReport."
},
"token": {
"type": "string"
},
"default": {
"type": "boolean",
"description": "Indicates whether the ResourceReport is the default report."
},
"created_at": {
"type": "string",
"example": "2024-03-19T00:00:00Z",
"description": "The date and time, in UTC, the report was created. ISO 8601 Formatted."
},
"user_token": {
"type": "string",
"description": "The token for the User who created this ResourceReport."
},
"segment_token": {
"type": "string",
"description": "The token for the Segment the ResourceReport is a part of."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the ResourceReport is a part of."
}
},
"description": "ResourceReport model"
}
ResourceReports
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"resource_reports": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ResourceReport"
}
}
},
"description": "ResourceReports model"
}
SavedFilter
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "Platform Team Reports",
"description": "The title of the SavedFilter."
},
"token": {
"type": "string"
},
"filter": {
"type": "string",
"example": "costs.provider = 'azure'",
"description": "The SavedFilter's filter, applied to any relevant CostReports. Additional documentation available at https://docs.vantage.sh/vql."
},
"created_at": {
"type": "string",
"example": "2023-08-04T00:00:00Z",
"description": "The date and time, in UTC, the report was created. ISO 8601 Formatted."
},
"created_by": {
"type": "string",
"description": "The User who created the SavedFilter."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the SavedFilter is a part of."
},
"cost_report_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"rprt_abcd1234",
"rprt_efgh5678"
]
},
"description": "The tokens for any CostReports the SavedFilter is applied to."
}
},
"description": "SavedFilter model"
}
SavedFilters
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"saved_filters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SavedFilter"
}
}
},
"description": "SavedFilters model"
}
Segment
{
"type": "object",
"properties": {
"title": {
"type": "string",
"example": "OPEX",
"description": "The title of the Segment."
},
"token": {
"type": "string"
},
"filter": {
"type": "string",
"description": "The filter applied to the Segment. Additional documentation available at https://docs.vantage.sh/vql."
},
"priority": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Costs are assigned in priority order across all Segments with assigned filters."
},
"created_at": {
"type": "string",
"example": "2021-07-09T00:00:00Z",
"description": "The date and time, in UTC, the Segment was created. ISO 8601 Formatted."
},
"description": {
"type": "string",
"example": "Operating expenses",
"description": "The description of the Segment."
},
"report_settings": {
"type": "object",
"properties": {
"amortize": {
"type": "boolean"
},
"include_tax": {
"type": "boolean"
},
"include_credits": {
"type": "boolean"
},
"include_refunds": {
"type": "boolean"
},
"include_discounts": {
"type": "boolean"
}
},
"description": "Report settings configurable on top-level Segments."
},
"workspace_token": {
"type": "string",
"description": "The token for the Workspace the Segment is a part of."
},
"track_unallocated": {
"type": "boolean",
"example": false,
"description": "Track Unallocated Costs which are not assigned to any of the created Segments."
},
"parent_segment_token": {
"type": "string",
"description": "The token of the parent Segment of this Segment."
}
},
"description": "Segment model"
}
Segments
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"segments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Segment"
}
}
},
"description": "Segments model"
}
Team
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Cost Savers",
"description": "The name of the Team."
},
"token": {
"type": "string"
},
"description": {
"type": "string",
"example": "The Team that saves costs",
"description": "The description of the Team."
},
"user_emails": {
"type": "array",
"items": {
"type": "string",
"example": [
"wileycoyote@acme.com",
"roadrunner@acme.com"
]
},
"description": "The email addresses for Users that belong to the Team"
},
"user_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"usr_abcd1234",
"usr_efgh5678"
]
},
"description": "The tokens for Users that belong to the Team"
},
"workspace_tokens": {
"type": "array",
"items": {
"type": "string",
"example": [
"wrkspc_abcd1234",
"wrkspc_efgh5678"
]
},
"description": "The tokens for any Workspaces that the Team belongs to"
}
},
"description": "Team model"
}
Teams
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Team"
}
}
},
"description": "Teams model"
}
User
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Doe",
"description": "The name of the User."
},
"role": {
"type": "string",
"example": "Admin",
"description": "The role of the User."
},
"email": {
"type": "string",
"example": "john_doe@acme.com",
"description": "The email of the User."
},
"token": {
"type": "string"
}
},
"description": "User model"
}
Users
{
"type": "object",
"properties": {
"links": {
"type": "object"
},
"users": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User"
}
}
},
"description": "Users model"
}
VirtualTagConfig
{
"type": "object",
"properties": {
"key": {
"type": "string",
"example": "Cost Center",
"description": "The key of the VirtualTagConfig."
},
"token": {
"type": "string",
"example": "vtag_1234",
"description": "The token of the VirtualTagConfig."
},
"values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualTagConfigValue"
},
"description": "Values for the VirtualTagConfig, with match precedence determined by their relative order in the list."
},
"overridable": {
"type": "boolean",
"description": "Whether the VirtualTagConfig can override a provider-supplied tag on a matching Cost."
},
"backfill_until": {
"type": "string",
"example": "2023-10-01",
"description": "The earliest month VirtualTagConfig should be backfilled to."
},
"created_by_token": {
"type": "string",
"example": "usr_1234",
"description": "The token of the User who created the VirtualTagConfig."
}
},
"description": "VirtualTagConfig model"
}