use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimeSeries {
#[serde(skip_serializing_if = "Option::is_none")]
pub metric: Option<Metric>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resource: Option<MonitoredResource>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub points: Vec<Point>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<MonitoredResourceMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
impl TimeSeries {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric: Some(Metric::fixture()),
resource: Some(MonitoredResource::fixture()),
metric_kind: Some("test-metric_kind".into()),
value_type: Some("test-value_type".into()),
points: vec![],
metadata: Some(MonitoredResourceMetadata::fixture()),
unit: Some("test-unit".into()),
description: Some("test-description".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Point {
#[serde(skip_serializing_if = "Option::is_none")]
pub interval: Option<TimeInterval>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<TypedValue>,
}
impl Point {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
interval: Some(TimeInterval::fixture()),
value: Some(TypedValue::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimeInterval {
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
}
impl TimeInterval {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
end_time: Some("test-end_time".into()),
start_time: Some("test-start_time".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TypedValue {
#[serde(skip_serializing_if = "Option::is_none")]
pub int64_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub double_value: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub string_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bool_value: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub distribution_value: Option<serde_json::Value>,
}
impl TypedValue {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
int64_value: Some("test-int64_value".into()),
string_value: Some("test-string_value".into()),
bool_value: Some(false),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Metric {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
}
impl Metric {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric_type: Some("test-type".into()),
labels: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MonitoredResource {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
}
impl MonitoredResource {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
resource_type: Some("test-type".into()),
labels: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MonitoredResourceMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub system_labels: Option<serde_json::Value>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub user_labels: HashMap<String, String>,
}
impl MonitoredResourceMetadata {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
system_labels: Default::default(),
user_labels: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MetricDescriptor {
pub name: String,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub labels: Vec<LabelDescriptor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<MetricDescriptorMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_stage: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub monitored_resource_types: Vec<String>,
}
impl MetricDescriptor {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-metric_descriptor".into(),
metric_type: Some("test-type".into()),
labels: vec![],
metric_kind: Some("test-metric_kind".into()),
value_type: Some("test-value_type".into()),
unit: Some("test-unit".into()),
description: Some("test-description".into()),
display_name: Some("test-display_name".into()),
metadata: Some(MetricDescriptorMetadata::fixture()),
launch_stage: Some("test-launch_stage".into()),
monitored_resource_types: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LabelDescriptor {
pub key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub value_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
impl LabelDescriptor {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
key: "test-key".into(),
value_type: Some("test-value_type".into()),
description: Some("test-description".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MetricDescriptorMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_stage: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_period: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ingest_delay: Option<String>,
}
impl MetricDescriptorMetadata {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
launch_stage: Some("test-launch_stage".into()),
sample_period: Some("test-sample_period".into()),
ingest_delay: Some("test-ingest_delay".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListTimeSeriesResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub time_series: Vec<TimeSeries>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
}
impl ListTimeSeriesResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
time_series: vec![],
next_page_token: Some("test-next_page_token".into()),
unit: Some("test-unit".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MonitoredResourceDescriptor {
pub name: String,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub labels: Vec<LabelDescriptor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launch_stage: Option<String>,
}
impl MonitoredResourceDescriptor {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-monitored_resource_descriptor".into(),
resource_type: Some("test-type".into()),
display_name: Some("test-display_name".into()),
description: Some("test-description".into()),
labels: vec![],
launch_stage: Some("test-launch_stage".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Documentation {
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mime_type: Option<String>,
}
impl Documentation {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
content: Some("test-content".into()),
subject: Some("test-subject".into()),
mime_type: Some("test-mime_type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Condition {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub condition_threshold: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub condition_absent: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub condition_matched_log: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub condition_monitoring_query_language: Option<serde_json::Value>,
}
impl Condition {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-condition".into()),
display_name: Some("test-display_name".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AlertPolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub conditions: Vec<Condition>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub notification_channels: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub combiner: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_labels: Option<std::collections::HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documentation: Option<Documentation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
}
impl AlertPolicy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-alert_policy".into()),
display_name: Some("test-display_name".into()),
enabled: Some(false),
conditions: vec![],
notification_channels: vec![],
combiner: Some("test-combiner".into()),
user_labels: Default::default(),
documentation: Some(Documentation::fixture()),
severity: Some("test-severity".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NotificationChannel {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<std::collections::HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification_status: Option<String>,
}
impl NotificationChannel {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-notification_channel".into()),
display_name: Some("test-display_name".into()),
channel_type: Some("test-type".into()),
description: Some("test-description".into()),
enabled: Some(false),
labels: Default::default(),
verification_status: Some("test-verification_status".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAlertPoliciesResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub alert_policies: Vec<AlertPolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_size: Option<i32>,
}
impl ListAlertPoliciesResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
alert_policies: vec![],
next_page_token: Some("test-next_page_token".into()),
total_size: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListNotificationChannelsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub notification_channels: Vec<NotificationChannel>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_size: Option<i32>,
}
impl ListNotificationChannelsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
notification_channels: vec![],
next_page_token: Some("test-next_page_token".into()),
total_size: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MonitoringEmpty {}
impl MonitoringEmpty {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListMetricDescriptorsResponse {
#[serde(default)]
pub metric_descriptors: Vec<MetricDescriptor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListMetricDescriptorsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric_descriptors: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListMonitoredResourceDescriptorsResponse {
#[serde(default)]
pub resource_descriptors: Vec<MonitoredResourceDescriptor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListMonitoredResourceDescriptorsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
resource_descriptors: vec![],
next_page_token: None,
}
}
}