// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WorkflowTableProfileColumn {
    pub name: String,
    /// Defaults to `{}`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub json_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
    pub row_count: i64,
    pub null_count: i64,
    pub empty_count: i64,
    pub distinct_count: i64,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub min: Option<serde_json::Value>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub max: Option<serde_json::Value>,
    /// Defaults to `[]`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub sample_values: Option<Vec<String>>,
    /// Defaults to `false`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub is_estimated: Option<bool>,
}
impl WorkflowTableProfileColumn {
    /// Construct a new `WorkflowTableProfileColumn` with the required fields set.
    #[allow(deprecated)]
    pub fn new(
        name: impl Into<String>,
        row_count: i64,
        null_count: i64,
        empty_count: i64,
        distinct_count: i64,
    ) -> Self {
        Self {
            name: name.into(),
            json_schema: Default::default(),
            row_count,
            null_count,
            empty_count,
            distinct_count,
            min: Default::default(),
            max: Default::default(),
            sample_values: Default::default(),
            is_estimated: Default::default(),
        }
    }
}
