Vantage

Cloud cost transparency platform

vantage.readme.io ↗
Version
2.0.0
OpenAPI
3.0.0
Endpoints
88
Schemas
79
Updated
3 days ago
Infrastructure infrastructure cost cloud
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.vantage.sh/v2

Authentication

oauth2

Endpoints

Accessgrants 5 endpoints

GET /access_grants

Return all Access Grants that the current API token has access to.

operationId: AccessGrants_listAccessible

Parameters

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.

Responses

200
GET /access_grants
POST /access_grants

Create an Access Grant.

operationId: AccessGrants_createGrant

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createAccessGrant"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
403 Forbidden
404 NotFound
406 NotAcceptable
422 UnprocessableEntity
POST /access_grants
DELETE /access_grants/{access_grant_token}

Delete an Access Grant.

operationId: AccessGrants_delete

Parameters

Name In Required Type Description
access_grant_token path required string

Responses

204
404 NotFound
DELETE /access_grants/{access_grant_token}
GET /access_grants/{access_grant_token}

Return a specific Access Grant.

operationId: AccessGrants_getSpecificGrant

Parameters

Name In Required Type Description
access_grant_token path required string

Responses

200
404 NotFound
GET /access_grants/{access_grant_token}
PUT /access_grants/{access_grant_token}

Update an AccessGrant.

operationId: AccessGrants_updateGrantToken

Parameters

Name In Required Type Description
access_grant_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateAccessGrant"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /access_grants/{access_grant_token}

Anomalyalerts 3 endpoints

GET /anomaly_alerts

Return all Anomaly Alerts that the current API token has access to.

operationId: AnomalyAlerts_listAccessible

Parameters

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.

Responses

200
GET /anomaly_alerts
GET /anomaly_alerts/{anomaly_alert_token}

Return an AnomalyAlert that the current API token has access to.

operationId: AnomalyAlerts_getByToken

Parameters

Name In Required Type Description
anomaly_alert_token path required string

Responses

200
404 NotFound
GET /anomaly_alerts/{anomaly_alert_token}
PUT /anomaly_alerts/{anomaly_alert_token}

Update an AnomalyAlert.

operationId: AnomalyAlerts_updateAlert

Parameters

Name In Required Type Description
anomaly_alert_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateAnomalyAlert"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
PUT /anomaly_alerts/{anomaly_alert_token}

Anomalynotifications 5 endpoints

GET /anomaly_notifications

Return all Anomaly Notifications.

operationId: AnomalyNotifications_listAll

Parameters

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.

Responses

200
GET /anomaly_notifications
POST /anomaly_notifications

Create an Anomaly Notification for a Cost Report.

operationId: AnomalyNotifications_createCostReportNotification

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createAnomalyNotification"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
POST /anomaly_notifications
DELETE /anomaly_notifications/{anomaly_notification_token}

Delete an Anomaly Notification.

operationId: AnomalyNotifications_deleteNotification

Parameters

Name In Required Type Description
anomaly_notification_token path required string

Responses

204
404 NotFound
DELETE /anomaly_notifications/{anomaly_notification_token}
GET /anomaly_notifications/{anomaly_notification_token}

Return an Anomaly Notification that the current API token has access to.

operationId: AnomalyNotifications_getByToken

Parameters

Name In Required Type Description
anomaly_notification_token path required string

Responses

200
404 NotFound
GET /anomaly_notifications/{anomaly_notification_token}
PUT /anomaly_notifications/{anomaly_notification_token}

Update an Anomaly Notification.

operationId: AnomalyNotifications_updateNotification

Parameters

Name In Required Type Description
anomaly_notification_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateAnomalyNotification"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
PUT /anomaly_notifications/{anomaly_notification_token}

Budgetalerts 5 endpoints

GET /budget_alerts

Return all BudgetAlerts.

operationId: BudgetAlerts_listAll

Parameters

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.

Responses

200
GET /budget_alerts
POST /budget_alerts

Create a Budget Alert.

operationId: BudgetAlerts_createAlert

Request Body

{
  "content": {
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/BudgetAlertsCreateAlertRequest"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
POST /budget_alerts
DELETE /budget_alerts/{budget_alert_token}

Delete a BudgetAlert.

operationId: BudgetAlerts_deleteAlert

Parameters

Name In Required Type Description
budget_alert_token path required string

Responses

204
404 NotFound
DELETE /budget_alerts/{budget_alert_token}
GET /budget_alerts/{budget_alert_token}

Return a BudgetAlert.

operationId: BudgetAlerts_getByToken

Parameters

Name In Required Type Description
budget_alert_token path required string

Responses

200
404 NotFound
GET /budget_alerts/{budget_alert_token}
PUT /budget_alerts/{budget_alert_token}

Updates an existing BudgetAlert.

operationId: BudgetAlerts_updateExistingAlert

Parameters

Name In Required Type Description
budget_alert_token path required string

Request Body

{
  "content": {
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/BudgetAlertsUpdateExistingAlertRequest"
      }
    }
  }
}

Responses

201
404 NotFound
PUT /budget_alerts/{budget_alert_token}

Budgets 5 endpoints

GET /budgets

Return all Budgets.

operationId: Budgets_getAll

Parameters

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.

Responses

200
GET /budgets
POST /budgets

Create a Budget.

operationId: Budgets_createBudget

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createBudget"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
422 UnprocessableEntity
POST /budgets
DELETE /budgets/{budget_token}

Delete a Budget.

operationId: Budgets_deleteBudget

Parameters

Name In Required Type Description
budget_token path required string

Responses

204
404 NotFound
DELETE /budgets/{budget_token}
GET /budgets/{budget_token}

Return a Budget.

operationId: Budgets_getBudget

Parameters

Name In Required Type Description
budget_token path required string

Responses

200
404 NotFound
GET /budgets/{budget_token}
PUT /budgets/{budget_token}

Update a Budget.

operationId: Budgets_updateBudget

Parameters

Name In Required Type Description
budget_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateBudget"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /budgets/{budget_token}

Businessmetrics 6 endpoints

GET /business_metrics

Return all BusinessMetrics that the current API token has access to.

operationId: BusinessMetrics_getAllMetrics

Parameters

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.

Responses

200
GET /business_metrics
POST /business_metrics

Create a new BusinessMetric.

operationId: BusinessMetrics_createNewMetric

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createBusinessMetric"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
POST /business_metrics
DELETE /business_metrics/{business_metric_token}

Deletes an existing BusinessMetric.

operationId: BusinessMetrics_deleteExistingMetric

Parameters

Name In Required Type Description
business_metric_token path required string

Responses

204
403 Forbidden
404 NotFound
DELETE /business_metrics/{business_metric_token}
GET /business_metrics/{business_metric_token}

Return a specific BusinessMetrics.

operationId: BusinessMetrics_getMetricById

Parameters

Name In Required Type Description
business_metric_token path required string

Responses

200
404 NotFound
GET /business_metrics/{business_metric_token}
PUT /business_metrics/{business_metric_token}

Updates an existing BusinessMetric.

operationId: BusinessMetrics_updateExistingMetric

Parameters

Name In Required Type Description
business_metric_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateBusinessMetric"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
PUT /business_metrics/{business_metric_token}
PUT /business_metrics/{business_metric_token}/values.csv

Updates the values for an existing BusinessMetric from a CSV file.

operationId: BusinessMetrics_updateValuesCsv

Parameters

Name In Required Type Description
business_metric_token path required string

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/BusinessMetricsUpdateValuesCsvRequest"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
PUT /business_metrics/{business_metric_token}/values.csv

Costs 6 endpoints

GET /cost_reports

Return all CostReports.

operationId: Costs_getAllCostReports

Parameters

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.

Responses

200
GET /cost_reports
POST /cost_reports

Create a CostReport.

operationId: Costs_createReport

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createCostReport"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
422 UnprocessableEntity
POST /cost_reports
DELETE /cost_reports/{cost_report_token}

Delete a CostReport.

operationId: Costs_deleteCostReport

Parameters

Name In Required Type Description
cost_report_token path required string

Responses

204
404 NotFound
DELETE /cost_reports/{cost_report_token}
GET /cost_reports/{cost_report_token}

Return a CostReport.

operationId: Costs_getCostReport

Parameters

Name In Required Type Description
cost_report_token path required string

Responses

200
404 NotFound
GET /cost_reports/{cost_report_token}
PUT /cost_reports/{cost_report_token}

Update a CostReport.

operationId: Costs_updateReport

Parameters

Name In Required Type Description
cost_report_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateCostReport"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /cost_reports/{cost_report_token}
GET /costs

Return all Costs for a CostReport.

operationId: Costs_listCostReport

Parameters

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:<tag_value>. 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.

Responses

200
400 BadRequest
402 PaymentRequired
404 NotFound
GET /costs

Dashboards 5 endpoints

GET /dashboards

Return all Dashboards.

operationId: Dashboards_getAll

Parameters

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.

Responses

200
GET /dashboards
POST /dashboards

Create a Dashboard.

operationId: Dashboards_createDashboard

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createDashboard"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
POST /dashboards
DELETE /dashboards/{dashboard_token}

Delete a Dashboard.

operationId: Dashboards_deleteDashboard

Parameters

Name In Required Type Description
dashboard_token path required string

Responses

204
404 NotFound
DELETE /dashboards/{dashboard_token}
GET /dashboards/{dashboard_token}

Return a specific Dashboard.

operationId: Dashboards_getSpecificDashboard

Parameters

Name In Required Type Description
dashboard_token path required string

Responses

200
404 NotFound
GET /dashboards/{dashboard_token}
PUT /dashboards/{dashboard_token}

Update a Dashboard.

operationId: Dashboards_updateDashboard

Parameters

Name In Required Type Description
dashboard_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateDashboard"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /dashboards/{dashboard_token}

Filters 5 endpoints

GET /saved_filters

Return all SavedFilters that can be applied to a CostReport.

operationId: Filters_getCostReportFilters

Parameters

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.

Responses

200
GET /saved_filters
POST /saved_filters

Create a SavedFilter for CostReports.

operationId: Filters_createSavedFilterForCostReports

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createSavedFilter"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
422 UnprocessableEntity
POST /saved_filters
DELETE /saved_filters/{saved_filter_token}

Delete a SavedFilter for CostReports.

operationId: Filters_deleteSavedFilter

Parameters

Name In Required Type Description
saved_filter_token path required string

Responses

204
404 NotFound
DELETE /saved_filters/{saved_filter_token}
GET /saved_filters/{saved_filter_token}

Return a specific SavedFilter.

operationId: Filters_getSavedFilter

Parameters

Name In Required Type Description
saved_filter_token path required string

Responses

200
404 NotFound
GET /saved_filters/{saved_filter_token}
PUT /saved_filters/{saved_filter_token}

Update a SavedFilter for CostReports.

operationId: Filters_updateSavedFilterForCostReports

Parameters

Name In Required Type Description
saved_filter_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateSavedFilter"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
422 UnprocessableEntity
PUT /saved_filters/{saved_filter_token}

Financialcommitmentreports 3 endpoints

GET /financial_commitment_reports

Return all FinancialCommitmentReports.

operationId: FinancialCommitmentReports_getAllReports

Parameters

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.

Responses

200
GET /financial_commitment_reports
DELETE /financial_commitment_reports/{financial_commitment_report_token}

Delete a FinancialCommitmentReport.

operationId: FinancialCommitmentReports_deleteReport

Parameters

Name In Required Type Description
financial_commitment_report_token path required string

Responses

204
404 NotFound
DELETE /financial_commitment_reports/{financial_commitment_report_token}
GET /financial_commitment_reports/{financial_commitment_report_token}

Return a FinancialCommitmentReport.

operationId: FinancialCommitmentReports_get

Parameters

Name In Required Type Description
financial_commitment_report_token path required string

Responses

200
404 NotFound
GET /financial_commitment_reports/{financial_commitment_report_token}

Folders 5 endpoints

GET /folders

Return all Folders for CostReports.

operationId: Folders_listCostReports

Parameters

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.

Responses

200
GET /folders
POST /folders

Create a Folder for CostReports.

operationId: Folders_createFolderForCostReports

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createFolder"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
POST /folders
DELETE /folders/{folder_token}

Delete a Folder for CostReports.

operationId: Folders_deleteFolderForCostReports

Parameters

Name In Required Type Description
folder_token path required string

Responses

204
404 NotFound
DELETE /folders/{folder_token}
GET /folders/{folder_token}

Return a specific Folder for CostReports.

operationId: Folders_getSpecificFolder

Parameters

Name In Required Type Description
folder_token path required string

Responses

200
404 NotFound
GET /folders/{folder_token}
PUT /folders/{folder_token}

Update a Folder for CostReports.

operationId: Folders_updateFolderForCostReports

Parameters

Name In Required Type Description
folder_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateFolder"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /folders/{folder_token}

Kubernetesefficiencyreports 3 endpoints

GET /kubernetes_efficiency_reports

Return all KubernetesEfficiencyReports.

operationId: KubernetesEfficiencyReports_getAll

Parameters

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.

Responses

200
GET /kubernetes_efficiency_reports
DELETE /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token}

Delete a KubernetesEfficiencyReport.

operationId: KubernetesEfficiencyReports_deleteReport

Parameters

Name In Required Type Description
kubernetes_efficiency_report_token path required string

Responses

204
404 NotFound
DELETE /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token}
GET /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token}

Return a KubernetesEfficiencyReport.

operationId: KubernetesEfficiencyReports_getReport

Parameters

Name In Required Type Description
kubernetes_efficiency_report_token path required string

Responses

200
404 NotFound
GET /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token}

Notifications 5 endpoints

GET /report_notifications

Return all ReportNotifications.

operationId: Notifications_getAllReportNotifications

Parameters

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.

Responses

200
GET /report_notifications
POST /report_notifications

Create a ReportNotification.

operationId: Notifications_createReportNotification

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createReportNotification"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
422 UnprocessableEntity
POST /report_notifications
DELETE /report_notifications/{report_notification_token}

Delete a ReportNotification.

operationId: Notifications_deleteReportNotification

Parameters

Name In Required Type Description
report_notification_token path required string

Responses

204
404 NotFound
DELETE /report_notifications/{report_notification_token}
GET /report_notifications/{report_notification_token}

Return a ReportNotification.

operationId: Notifications_getReportNotification

Parameters

Name In Required Type Description
report_notification_token path required string

Responses

200
404 NotFound
GET /report_notifications/{report_notification_token}
PUT /report_notifications/{report_notification_token}

Update a ReportNotification.

operationId: Notifications_updateReportNotification

Parameters

Name In Required Type Description
report_notification_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateReportNotification"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /report_notifications/{report_notification_token}

Ping 1 endpoints

GET /ping

This is a health check endpoint that can be used to determine Vantage API healthiness. It will return 200 if everything is running smoothly.

operationId: Ping_healthCheck

Responses

200 This is a health check endpoint that can be used to determine Vantage API healthiness. It will return 200 if everything is running smoothly.
GET /ping

Prices 4 endpoints

GET /products

Return available Products for a Service. For example, with a Provider of AWS and a Service of EC2, Products will be a list of all EC2 Instances. By default, this endpoint returns all Products across all Services and Providers but has optional query parameters for filtering listed below.

operationId: Prices_listAvailableProducts

Parameters

Name In Required Type Description
provider_id query optional string Query by Provider to list all Products across all Services for a Provider. e.g. aws
service_id query optional string Query by Service to list all Products for a specific provider service. e.g. aws-ec2
name query optional string Query by name of the Product to see a list of products which match that name. e.g. m5a.16xlarge
page query optional integer The page of results to return.
limit query optional integer The amount of results to return. The maximum is 1000

Responses

200
GET /products
GET /products/{id}

Return a product

operationId: Prices_getProduct

Parameters

Name In Required Type Description
id path required string

Responses

200
GET /products/{id}
GET /products/{product_id}/prices

Return available Prices across all Regions for a Product.

operationId: Prices_getProductPrices

Parameters

Name In Required Type Description
product_id path required string
page query optional integer The page of results to return.
limit query optional integer The amount of results to return. The maximum is 1000

Responses

200
GET /products/{product_id}/prices
GET /products/{product_id}/prices/{id}

Returns a price

operationId: Prices_getProductPrice

Parameters

Name In Required Type Description
product_id path required string
id path required string

Responses

200
GET /products/{product_id}/prices/{id}

Resourcereports 3 endpoints

GET /resource_reports

Return all ResourceReports.

operationId: ResourceReports_getAll

Parameters

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.

Responses

200
GET /resource_reports
DELETE /resource_reports/{resource_report_token}

Delete a ResourceReport.

operationId: ResourceReports_removeReport

Parameters

Name In Required Type Description
resource_report_token path required string

Responses

204
404 NotFound
DELETE /resource_reports/{resource_report_token}
GET /resource_reports/{resource_report_token}

Return a ResourceReport.

operationId: ResourceReports_getResourceReport

Parameters

Name In Required Type Description
resource_report_token path required string

Responses

200
404 NotFound
GET /resource_reports/{resource_report_token}

Segments 5 endpoints

GET /segments

Return all Segments.

operationId: Segments_list

Parameters

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.

Responses

200
GET /segments
POST /segments

Create a Segment.

operationId: Segments_createSegment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createSegment"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
422 UnprocessableEntity
POST /segments
DELETE /segments/{segment_token}

Delete a Segment.

operationId: Segments_removeSegment

Parameters

Name In Required Type Description
segment_token path required string

Responses

204
404 NotFound
DELETE /segments/{segment_token}
GET /segments/{segment_token}

Return a Segment.

operationId: Segments_getSegmentById

Parameters

Name In Required Type Description
segment_token path required string

Responses

200
404 NotFound
GET /segments/{segment_token}
PUT /segments/{segment_token}

Update a Segment.

operationId: Segments_updateSegmentById

Parameters

Name In Required Type Description
segment_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateSegment"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
404 NotFound
PUT /segments/{segment_token}

Teams 5 endpoints

GET /teams

Return all Teams that the current API token has access to.

operationId: Teams_listAccessible

Parameters

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.

Responses

200
GET /teams
POST /teams

Create a new Team.

operationId: Teams_createNewTeam

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createTeam"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
POST /teams
DELETE /teams/{team_token}

Delete a Team.

operationId: Teams_removeTeam

Parameters

Name In Required Type Description
team_token path required string

Responses

204
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
DELETE /teams/{team_token}
GET /teams/{team_token}

Return a specific Team.

operationId: Teams_getSpecificTeam

Parameters

Name In Required Type Description
team_token path required string

Responses

200
404 NotFound
GET /teams/{team_token}
PUT /teams/{team_token}

Update a Team.

operationId: Teams_updateTeam

Parameters

Name In Required Type Description
team_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateTeam"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
PUT /teams/{team_token}

Users 2 endpoints

GET /users

Return all Users that the current API token has access to.

operationId: Users_listAccessible

Parameters

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.

Responses

200
403 Forbidden
GET /users
GET /users/{user_token}

Return a specific User.

operationId: Users_getSpecificUser

Parameters

Name In Required Type Description
user_token path required string

Responses

200
404 NotFound
GET /users/{user_token}

Virtualtags 5 endpoints

GET /virtual_tag_configs

Return all VirtualTagConfigs that the current API token has access to.

operationId: VirtualTags_getAll

Responses

200
GET /virtual_tag_configs
POST /virtual_tag_configs

Create a new VirtualTagConfig.

operationId: VirtualTags_createNewConfig

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/createVirtualTagConfig"
      }
    }
  },
  "required": true
}

Responses

201
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
POST /virtual_tag_configs
DELETE /virtual_tag_configs/{virtual_tag_config_token}

Deletes an existing VirtualTagConfig.

operationId: VirtualTags_deleteConfig

Parameters

Name In Required Type Description
virtual_tag_config_token path required string

Responses

204
403 Forbidden
404 NotFound
DELETE /virtual_tag_configs/{virtual_tag_config_token}
GET /virtual_tag_configs/{virtual_tag_config_token}

Return a specific VirtualTagConfig.

operationId: VirtualTags_getSpecificConfig

Parameters

Name In Required Type Description
virtual_tag_config_token path required string

Responses

200
404 NotFound
GET /virtual_tag_configs/{virtual_tag_config_token}
PUT /virtual_tag_configs/{virtual_tag_config_token}

Updates an existing VirtualTagConfig.

operationId: VirtualTags_updateConfig

Parameters

Name In Required Type Description
virtual_tag_config_token path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/updateVirtualTagConfig"
      }
    }
  },
  "required": true
}

Responses

200
400 BadRequest
403 Forbidden
404 NotFound
422 UnprocessableEntity
PUT /virtual_tag_configs/{virtual_tag_config_token}

Workspaces 2 endpoints

GET /workspaces

Return all Workspaces that the current API token has access to.

operationId: Workspaces_listAccessible

Parameters

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.

Responses

200
GET /workspaces
GET /workspaces/{workspace_token}

Return a specific Workspace.

operationId: Workspaces_getSpecificWorkspace

Parameters

Name In Required Type Description
workspace_token path required string

Responses

200
404 NotFound
GET /workspaces/{workspace_token}

Schemas

object 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"
}
object AccessGrants
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "access_grants": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AccessGrant"
      }
    }
  },
  "description": "AccessGrants model"
}
object 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"
}
object AnomalyAlerts
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "anomaly_alerts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AnomalyAlert"
      }
    }
  },
  "description": "AnomalyAlerts model"
}
object 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"
}
object AnomalyNotifications
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "anomaly_notifications": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AnomalyNotification"
      }
    }
  },
  "description": "AnomalyNotifications model"
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object 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"
}
object 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"
}
object BudgetAlerts
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "budget_alerts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BudgetAlert"
      }
    }
  },
  "description": "BudgetAlerts model"
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object Budgets
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "budgets": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Budget"
      }
    }
  },
  "description": "Budgets model"
}
object 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"
}
object 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."
    }
  }
}
object BusinessMetrics
{
  "type": "object",
  "properties": {
    "business_metrics": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BusinessMetric"
      }
    }
  },
  "description": "BusinessMetrics model"
}
object BusinessMetricsUpdateValuesCsvRequest
{
  "type": "object",
  "required": [
    "csv"
  ],
  "properties": {
    "csv": {
      "type": "string",
      "format": "binary",
      "description": "CSV file containing BusinessMetric dates and amounts"
    }
  }
}
object 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."
    }
  }
}
object 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"
}
object CostReports
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "cost_reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CostReport"
      }
    }
  },
  "description": "CostReports model"
}
object 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"
}
object 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"
}
object Dashboards
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "dashboards": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Dashboard"
      }
    }
  },
  "description": "Dashboards model"
}
object Errors
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "description": "Errors model"
}
object 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"
}
object FinancialCommitmentReports
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "financial_commitment_reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FinancialCommitmentReport"
      }
    }
  },
  "description": "FinancialCommitmentReports model"
}
object 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"
}
object Folders
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "folders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Folder"
      }
    }
  },
  "description": "Folders model"
}
object 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"
}
object KubernetesEfficiencyReports
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "kubernetes_efficiency_reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/KubernetesEfficiencyReport"
      }
    }
  },
  "description": "KubernetesEfficiencyReports model"
}
object 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"
}
object Prices
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "prices": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Price"
      }
    }
  },
  "description": "Prices model"
}
object 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"
}
object Products
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "products": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Product"
      }
    }
  },
  "description": "Products model"
}
object 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"
}
object ReportNotifications
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "report_notifications": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportNotification"
      }
    }
  },
  "description": "ReportNotifications model"
}
object 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"
}
object ResourceReports
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "resource_reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ResourceReport"
      }
    }
  },
  "description": "ResourceReports model"
}
object 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"
}
object SavedFilters
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "saved_filters": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SavedFilter"
      }
    }
  },
  "description": "SavedFilters model"
}
object 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"
}
object Segments
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "segments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Segment"
      }
    }
  },
  "description": "Segments model"
}
object 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"
}
object Teams
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "teams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Team"
      }
    }
  },
  "description": "Teams model"
}
object 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"
}
object Users
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "users": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/User"
      }
    }
  },
  "description": "Users model"
}
object 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"
}
object VirtualTagConfigValue
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Informatics",
      "description": "The name of the Value."
    },
    "filter": {
      "type": "string",
      "example": "costs.provider = 'aws' AND costs.service = 'Amazon Simple Storage Service'",
      "description": "The filter VQL for the Value."
    }
  }
}
object VirtualTagConfigs
{
  "type": "object",
  "properties": {
    "virtual_tag_configs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VirtualTagConfig"
      }
    }
  },
  "description": "VirtualTagConfigs model"
}
object Workspace
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Acme Corp.",
      "description": "The name of the Workspace."
    },
    "token": {
      "type": "string"
    }
  },
  "description": "Workspace model"
}
object Workspaces
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object"
    },
    "workspaces": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Workspace"
      }
    }
  },
  "description": "Workspaces model"
}
object createAccessGrant
{
  "type": "object",
  "required": [
    "resource_token",
    "team_token"
  ],
  "properties": {
    "access": {
      "enum": [
        "denied",
        "allowed"
      ],
      "type": "string",
      "description": "The access level you want to grant. Defaults to 'allowed'."
    },
    "team_token": {
      "type": "string",
      "description": "The token of the Team you want to grant access to."
    },
    "resource_token": {
      "type": "string",
      "description": "The token of the resource for which you are granting access."
    }
  },
  "description": "Create an Access Grant."
}
object createAnomalyNotification
{
  "type": "object",
  "required": [
    "cost_report_token"
  ],
  "properties": {
    "threshold": {
      "type": "integer",
      "format": "int32",
      "description": "The threshold amount that must be met for the notification to fire."
    },
    "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 of the Cost Report folder that has the notification."
    },
    "recipient_channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Slack/MS Teams channels that receive the notification."
    }
  },
  "description": "Create an Anomaly Notification for a Cost Report."
}
object createBudget
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Budget."
    },
    "periods": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "start_at",
          "amount"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "The amount of the period."
          },
          "end_at": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "The end date of the period."
          },
          "start_at": {
            "type": "string",
            "format": "date",
            "description": "The start date of the period."
          }
        }
      },
      "description": "The periods for the Budget. The start_at and end_at must be iso8601 formatted e.g. YYYY-MM-DD."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the Budget to."
    },
    "cost_report_token": {
      "type": "string",
      "description": "The CostReport token."
    }
  },
  "description": "Create a Budget."
}
object createBusinessMetric
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the BusinessMetrics."
    },
    "values": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "amount"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "description": "The dates and amounts for the BusinessMetric."
    },
    "cost_report_tokens_with_metadata": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "cost_report_token"
        ],
        "properties": {
          "unit_scale": {
            "enum": [
              "per_unit",
              "per_hundred",
              "per_thousand",
              "per_million",
              "per_billion"
            ],
            "type": "string",
            "default": "per_unit",
            "description": "Determines the scale of the BusinessMetric's values within the CostReport."
          },
          "cost_report_token": {
            "type": "string",
            "description": "The token of the CostReport the BusinessMetric is attached to."
          }
        }
      },
      "description": "The tokens for any CostReports that use the BusinessMetric, and the unit scale."
    }
  },
  "description": "Create a new BusinessMetric."
}
object createCostReport
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the CostReport."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply 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",
      "description": "Grouping values for aggregating costs on the report. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, tag:<tag_value>. If providing multiple groupings, join as comma separated values: groupings=provider,service,region"
    },
    "folder_token": {
      "type": "string",
      "description": "The token of the Folder to add the CostReport to. Determines the Workspace the report is assigned to."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the Cost Report to. Ignored if 'folder_token' is set. Required if the API token is associated with multiple Workspaces."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the SavedFilters to apply to the CostReport."
    },
    "business_metric_tokens_with_metadata": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "business_metric_token"
        ],
        "properties": {
          "unit_scale": {
            "enum": [
              "per_unit",
              "per_hundred",
              "per_thousand",
              "per_million",
              "per_billion"
            ],
            "type": "string",
            "default": "per_unit",
            "description": "Determines the scale of the BusinessMetric's values within the CostReport."
          },
          "business_metric_token": {
            "type": "string",
            "description": "The token of the BusinessMetric to attach to the CostReport."
          }
        }
      },
      "description": "The tokens for any BusinessMetrics to attach to the CostReport, and the unit scale."
    }
  },
  "description": "Create a CostReport."
}
object createDashboard
{
  "type": "object",
  "required": [
    "title",
    "end_date"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Dashboard."
    },
    "date_bin": {
      "enum": [
        "cumulative",
        "day",
        "week",
        "month"
      ],
      "type": "string",
      "description": "Determines how to group costs in the Dashboard."
    },
    "end_date": {
      "type": "string",
      "description": "The end date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter."
    },
    "start_date": {
      "type": "string",
      "description": "The start date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter."
    },
    "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. Incompatible with 'start_date' and 'end_date' parameters."
    },
    "widget_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the widgets to add to the Dashboard. Currently only supports CostReport tokens."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the Dashboard to. Required if the API token is associated with multiple Workspaces."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the Saved Filters used in the Dashboard."
    }
  },
  "description": "Create a Dashboard."
}
object createFolder
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Folder."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the Folder to. Ignored if 'parent_folder_token' is set. Required if the API token is associated with multiple Workspaces."
    },
    "parent_folder_token": {
      "type": "string",
      "description": "The token of the parent Folder."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the SavedFilters to apply to any Cost Report contained within the Folder."
    }
  },
  "description": "Create a Folder for CostReports."
}
object createReportNotification
{
  "type": "object",
  "required": [
    "title",
    "cost_report_token",
    "frequency",
    "change"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the ReportNotification."
    },
    "change": {
      "type": "string",
      "description": "The type of change the ReportNotification is tracking. Possible values: percentage, dollars."
    },
    "frequency": {
      "type": "string",
      "description": "The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly."
    },
    "user_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Users that receive the notification."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the ReportNotification to. Required if the API token is associated with multiple Workspaces."
    },
    "cost_report_token": {
      "type": "string",
      "description": "The CostReport token."
    },
    "recipient_channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Slack or Microsoft Teams channels that receive the notification."
    }
  },
  "description": "Create a ReportNotification."
}
object createSavedFilter
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the SavedFilter."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply to the SavedFilter, which subsequently gets applied to a CostReport. Additional documentation available at https://docs.vantage.sh/vql."
    },
    "workspace_token": {
      "type": "string",
      "description": "The Workspace to associate the SavedFilter with. Required if the API token is associated with multiple Workspaces."
    }
  },
  "description": "Create a SavedFilter for CostReports."
}
object createSegment
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Segment."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply to the Segment. Additional documentation available at https://docs.vantage.sh/vql."
    },
    "priority": {
      "type": "integer",
      "format": "int32",
      "description": "The priority of the Segment."
    },
    "description": {
      "type": "string",
      "description": "The description of the Segment."
    },
    "report_settings": {
      "type": "object",
      "properties": {
        "amortize": {
          "type": "boolean",
          "description": "Reports created under this Segment will amortize."
        },
        "include_tax": {
          "type": "boolean",
          "description": "Reports created under this Segment will include tax."
        },
        "include_credits": {
          "type": "boolean",
          "description": "Reports created under this Segment will include credits."
        },
        "include_refunds": {
          "type": "boolean",
          "description": "Reports created under this Segment will include refunds."
        },
        "include_discounts": {
          "type": "boolean",
          "description": "Reports created under this Segment will include discounts."
        }
      },
      "description": "Report settings configurable on top-level Segments."
    },
    "workspace_token": {
      "type": "string",
      "description": "The token of the Workspace to add the Segment to. Ignored if 'segment_token' is set. Required if the API token is associated with multiple Workspaces."
    },
    "track_unallocated": {
      "type": "boolean",
      "default": 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 this new Segment belongs to. Determines the Workspace the segment is assigned to."
    }
  },
  "description": "Create a Segment."
}
object createTeam
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Team."
    },
    "role": {
      "enum": [
        "owner",
        "editor",
        "viewer"
      ],
      "type": "string",
      "description": "The role to assign to the provided Users. Defaults to 'editor' which has editor permissions."
    },
    "description": {
      "type": "string",
      "description": "The description of the Team."
    },
    "user_emails": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The User emails to associate to the Team."
    },
    "user_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The User tokens to associate to the Team."
    },
    "workspace_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Workspace tokens to associate to the Team."
    }
  },
  "description": "Create a new Team."
}
object createVirtualTagConfig
{
  "type": "object",
  "required": [
    "key",
    "overridable"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "The key of the VirtualTagConfig."
    },
    "values": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the value."
          },
          "filter": {
            "type": "string",
            "description": "The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql."
          }
        }
      },
      "description": "Values for the VirtualTagConfig, with match precedence determined by 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",
      "format": "date",
      "description": "The earliest month the VirtualTagConfig should be backfilled to."
    }
  },
  "description": "Create a new VirtualTagConfig."
}
object updateAccessGrant
{
  "type": "object",
  "required": [
    "access"
  ],
  "properties": {
    "access": {
      "enum": [
        "denied",
        "allowed"
      ],
      "type": "string",
      "description": "Allowed or denied access to resource."
    }
  },
  "description": "Update an AccessGrant."
}
object updateAnomalyAlert
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "description": "The status of the Anomaly Alert."
    },
    "feedback": {
      "type": "string",
      "description": "Optional additional comments for why this alert is ignored."
    }
  },
  "description": "Update an AnomalyAlert."
}
object updateAnomalyNotification
{
  "type": "object",
  "properties": {
    "threshold": {
      "type": "integer",
      "format": "int32",
      "description": "The threshold amount that must be met for the notification to fire."
    },
    "user_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the users that receive the notification."
    },
    "recipient_channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Slack/MS Teams channels that receive the notification."
    }
  },
  "description": "Update an Anomaly Notification."
}
object updateBudget
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Budget."
    },
    "periods": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "start_at",
          "amount"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "The amount of the period."
          },
          "end_at": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "The end date of the period."
          },
          "start_at": {
            "type": "string",
            "format": "date",
            "description": "The start date of the period."
          }
        }
      },
      "description": "The periods for the Budget. The start_at and end_at must be iso8601 formatted e.g. YYYY-MM-DD."
    },
    "cost_report_token": {
      "type": "string",
      "description": "The CostReport token."
    }
  },
  "description": "Update a Budget."
}
object updateBusinessMetric
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the BusinessMetric."
    },
    "values": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "amount"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "description": "The dates and amounts for the BusinessMetric."
    },
    "cost_report_tokens_with_metadata": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "cost_report_token"
        ],
        "properties": {
          "unit_scale": {
            "enum": [
              "per_unit",
              "per_hundred",
              "per_thousand",
              "per_million",
              "per_billion"
            ],
            "type": "string",
            "default": "per_unit",
            "description": "Determines the scale of the BusinessMetric's values within the CostReport."
          },
          "cost_report_token": {
            "type": "string",
            "description": "The token of the CostReport the BusinessMetric is attached to."
          }
        }
      },
      "description": "The tokens for any CostReports that use the BusinessMetric, and the unit scale."
    }
  },
  "description": "Updates an existing BusinessMetric."
}
object updateCostReport
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the CostReport."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply to the CostReport. Additional documentation available at https://docs.vantage.sh/vql."
    },
    "settings": {
      "type": "object",
      "properties": {
        "amortize": {
          "type": "boolean",
          "description": "Report will amortize."
        },
        "include_tax": {
          "type": "boolean",
          "description": "Report will include tax."
        },
        "unallocated": {
          "type": "boolean",
          "description": "Report will show unallocated costs."
        },
        "include_credits": {
          "type": "boolean",
          "description": "Report will include credits."
        },
        "include_refunds": {
          "type": "boolean",
          "description": "Report will include refunds."
        },
        "include_discounts": {
          "type": "boolean",
          "description": "Report will include discounts."
        }
      },
      "description": "Report settings."
    },
    "groupings": {
      "type": "string",
      "description": "Grouping values for aggregating costs on the report. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, tag:<tag_value>. If providing multiple groupings, join as comma separated values: groupings=provider,service,region"
    },
    "folder_token": {
      "type": "string",
      "description": "The token of the Folder to add the CostReport to. Determines the Workspace the report is assigned to."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the SavedFilters to apply to the CostReport."
    },
    "business_metric_tokens_with_metadata": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "business_metric_token"
        ],
        "properties": {
          "unit_scale": {
            "enum": [
              "per_unit",
              "per_hundred",
              "per_thousand",
              "per_million",
              "per_billion"
            ],
            "type": "string",
            "default": "per_unit",
            "description": "Determines the scale of the BusinessMetric's values within the CostReport."
          },
          "business_metric_token": {
            "type": "string",
            "description": "The token of the BusinessMetric to attach to the CostReport."
          }
        }
      },
      "description": "The tokens for any BusinessMetrics to attach to the CostReport, and the unit scale."
    }
  },
  "description": "Update a CostReport."
}
object updateDashboard
{
  "type": "object",
  "required": [
    "end_date"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Dashboard."
    },
    "date_bin": {
      "enum": [
        "cumulative",
        "day",
        "week",
        "month"
      ],
      "type": "string",
      "description": "Determines how to group costs in the Dashboard."
    },
    "end_date": {
      "type": "string",
      "description": "The end date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter."
    },
    "start_date": {
      "type": "string",
      "description": "The start date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter."
    },
    "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. Incompatible with 'start_date' and 'end_date' parameters."
    },
    "widget_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the widgets to add to the Dashboard. Currently only supports CostReport tokens."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the Saved Filters used in the Dashboard."
    }
  },
  "description": "Update a Dashboard."
}
object updateFolder
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Folder."
    },
    "parent_folder_token": {
      "type": "string",
      "description": "The token of the parent Folder."
    },
    "saved_filter_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The tokens of the SavedFilters to apply to any Cost Report contained within the Folder."
    }
  },
  "description": "Update a Folder for CostReports."
}
object updateReportNotification
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the ReportNotification."
    },
    "change": {
      "type": "string",
      "description": "The type of change the ReportNotification is tracking. Possible values: percentage, dollars."
    },
    "frequency": {
      "type": "string",
      "description": "The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly."
    },
    "user_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Users that receive the notification."
    },
    "cost_report_token": {
      "type": "string",
      "description": "The CostReport token."
    },
    "recipient_channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Slack or Microsoft Teams channels that receive the notification."
    }
  },
  "description": "Update a ReportNotification."
}
object updateSavedFilter
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the SavedFilter."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply to the SavedFilter, which subsequently gets applied to a CostReport. Additional documentation available at https://docs.vantage.sh/vql."
    }
  },
  "description": "Update a SavedFilter for CostReports."
}
object updateSegment
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The title of the Segment."
    },
    "filter": {
      "type": "string",
      "description": "The filter query language to apply to the Segment. Additional documentation available at https://docs.vantage.sh/vql."
    },
    "priority": {
      "type": "integer",
      "format": "int32",
      "description": "The priority of the Segment."
    },
    "description": {
      "type": "string",
      "description": "The description of the Segment."
    },
    "report_settings": {
      "type": "object",
      "properties": {
        "amortize": {
          "type": "boolean",
          "description": "Reports created under this Segment will amortize."
        },
        "include_tax": {
          "type": "boolean",
          "description": "Reports created under this Segment will include tax."
        },
        "include_credits": {
          "type": "boolean",
          "description": "Reports created under this Segment will include credits."
        },
        "include_refunds": {
          "type": "boolean",
          "description": "Reports created under this Segment will include refunds."
        },
        "include_discounts": {
          "type": "boolean",
          "description": "Reports created under this Segment will include discounts."
        }
      },
      "description": "Report settings configurable on top-level Segments."
    },
    "track_unallocated": {
      "type": "boolean",
      "default": 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 this new Segment belongs to. Determines the Workspace the segment is assigned to."
    }
  },
  "description": "Update a Segment."
}
object updateTeam
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Team."
    },
    "role": {
      "enum": [
        "owner",
        "editor",
        "viewer"
      ],
      "type": "string",
      "description": "The role to assign to the provided Users. Defaults to 'editor' which has editor permissions."
    },
    "description": {
      "type": "string",
      "description": "The description of the Team."
    },
    "user_emails": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The User emails to associate to the Team."
    },
    "user_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The User tokens to associate to the Team."
    },
    "workspace_tokens": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The Workspace tokens to associate to the Team."
    }
  },
  "description": "Update a Team."
}
object updateVirtualTagConfig
{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "The key of the VirtualTagConfig."
    },
    "values": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the value."
          },
          "filter": {
            "type": "string",
            "description": "The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql."
          }
        }
      },
      "description": "Values for the VirtualTagConfig, with match precedence determined by order in the list."
    },
    "overridable": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether the VirtualTagConfig can override a provider-supplied tag on a matching Cost."
    },
    "backfill_until": {
      "type": "string",
      "format": "date",
      "nullable": true,
      "description": "The earliest month the VirtualTagConfig should be backfilled to."
    }
  },
  "description": "Updates an existing VirtualTagConfig."
}