use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BigQueryOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub use_partitioned_tables: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub uses_timestamp_column_partitioning: Option<bool>,
}
impl BigQueryOptions {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
use_partitioned_tables: Some(false),
uses_timestamp_column_partitioning: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogSink {
pub name: String,
pub destination: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub writer_identity: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_children: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bigquery_options: Option<BigQueryOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_time: Option<String>,
}
impl LogSink {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-log_sink".into(),
destination: "test-destination".into(),
filter: Some("test-filter".into()),
description: Some("test-description".into()),
disabled: Some(false),
writer_identity: Some("test-writer_identity".into()),
include_children: Some(false),
bigquery_options: Some(BigQueryOptions::fixture()),
create_time: Some("test-create_time".into()),
update_time: Some("test-update_time".into()),
}
}
}
#[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 MetricDescriptor {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<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>,
}
impl MetricDescriptor {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("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()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogMetric {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub filter: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_descriptor: Option<MetricDescriptor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value_extractor: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub label_extractors: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_time: Option<String>,
}
impl LogMetric {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-log_metric".into(),
description: Some("test-description".into()),
filter: "test-filter".into(),
disabled: Some(false),
metric_descriptor: Some(MetricDescriptor::fixture()),
value_extractor: Some("test-value_extractor".into()),
label_extractors: Default::default(),
create_time: Some("test-create_time".into()),
update_time: Some("test-update_time".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LoggingEmpty {}
impl LoggingEmpty {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListSinksResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub sinks: Vec<LogSink>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListSinksResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
sinks: vec![],
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListLogMetricsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub metrics: Vec<LogMetric>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListLogMetricsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metrics: vec![],
next_page_token: Some("test-next_page_token".into()),
}
}
}