use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceSku {
pub name: String,
}
impl WorkspaceSku {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-workspace_sku".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_in_days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sku: Option<WorkspaceSku>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_network_access_for_ingestion: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_network_access_for_query: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provisioning_state: Option<String>,
}
impl WorkspaceProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
retention_in_days: Some(100),
sku: Some(WorkspaceSku::fixture()),
public_network_access_for_ingestion: Some(
"test-public_network_access_for_ingestion".into(),
),
public_network_access_for_query: Some("test-public_network_access_for_query".into()),
customer_id: Some("test-customer_id".into()),
provisioning_state: Some("test-provisioning_state".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Workspace {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
pub location: String,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<WorkspaceProperties>,
}
impl Workspace {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-workspace".into()),
r#type: Some("test-type".into()),
location: "test-location".into(),
tags: Default::default(),
properties: Some(WorkspaceProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<Workspace>,
}
impl WorkspaceListResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { value: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WorkspaceCreateRequest {
pub location: String,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<WorkspaceProperties>,
}
impl WorkspaceCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
location: "test-location".into(),
tags: Default::default(),
properties: Some(WorkspaceProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogQueryBody {
pub query: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub timespan: Option<String>,
}
impl LogQueryBody {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
query: "test-query".into(),
timespan: Some("test-timespan".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogQueryColumn {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
impl LogQueryColumn {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-log_query_column".into()),
r#type: Some("test-type".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogQueryTable {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub columns: Vec<LogQueryColumn>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub rows: Vec<serde_json::Value>,
}
impl LogQueryTable {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-log_query_table".into()),
columns: vec![],
rows: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogQueryResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub tables: Vec<LogQueryTable>,
}
impl LogQueryResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { tables: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SavedSearchProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i32>,
}
impl SavedSearchProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
display_name: Some("test-display_name".into()),
category: Some("test-category".into()),
query: Some("test-query".into()),
version: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SavedSearch {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<SavedSearchProperties>,
}
impl SavedSearch {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-saved_search".into()),
etag: Some("test-etag".into()),
properties: Some(SavedSearchProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SavedSearchListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<SavedSearch>,
}
impl SavedSearchListResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { value: vec![] }
}
}