package prometheus

// PrometheusData represents an array of data points
type PrometheusData []PrometheusPoint

// PrometheusPoint represents a single data point
type PrometheusPoint struct {
	// Value of the metric at a specific point in time
	Value float64 `json:"value"`

	// Timestamp the Unix timestamp.
	Timestamp uint64 `json:"timestamp"`
}

// ComputesData represents an array of data points for computes
type ComputesData []ItemCompute

// ItemCompute represents a single data of compute
type ItemCompute struct {
	// Compute ID
	ComputeID uint64 `json:"computeId"`

	// Array of metrics
	Metrics []ItemMetric `json:"metrics"`

	// Error
	Error string `json:"error"`
}

// ItemMetric represents a single data point of metric
type ItemMetric struct {
	// Metric ID
	MetricID string `json:"metricId"`

	// Data represents an array of data points
	Data PrometheusData `json:"data"`

	// Error
	Error string `json:"error"`
}
