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

Clear filters

Accessgrants 1 endpoints

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 1 endpoints

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 1 endpoints

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 1 endpoints

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 1 endpoints

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 2 endpoints

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 1 endpoints

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}

Dashboards 1 endpoints

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 1 endpoints

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}

Folders 1 endpoints

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}

Notifications 1 endpoints

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}

Segments 1 endpoints

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 1 endpoints

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}

Virtualtags 1 endpoints

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}

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."
}