windmill_api/models/
contract_warning.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ContractWarning {
17 #[serde(rename = "kind")]
18 pub kind: Kind,
19 #[serde(rename = "asset_path")]
20 pub asset_path: String,
21 #[serde(rename = "column", skip_serializing_if = "Option::is_none")]
22 pub column: Option<String>,
23 #[serde(rename = "expected_type", skip_serializing_if = "Option::is_none")]
24 pub expected_type: Option<String>,
25 #[serde(rename = "found_type", skip_serializing_if = "Option::is_none")]
26 pub found_type: Option<String>,
27 #[serde(rename = "schema_version", skip_serializing_if = "Option::is_none")]
28 pub schema_version: Option<i64>,
29 #[serde(rename = "captured_at", skip_serializing_if = "Option::is_none")]
30 pub captured_at: Option<String>,
31 #[serde(rename = "message")]
32 pub message: String,
33}
34
35impl ContractWarning {
36 pub fn new(kind: Kind, asset_path: String, message: String) -> ContractWarning {
38 ContractWarning {
39 kind,
40 asset_path,
41 column: None,
42 expected_type: None,
43 found_type: None,
44 schema_version: None,
45 captured_at: None,
46 message,
47 }
48 }
49}
50#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
52pub enum Kind {
53 #[serde(rename = "missing_column")]
54 MissingColumn,
55 #[serde(rename = "missing_lineage_source")]
56 MissingLineageSource,
57 #[serde(rename = "missing_relationship_column")]
58 MissingRelationshipColumn,
59 #[serde(rename = "relationship_type_mismatch")]
60 RelationshipTypeMismatch,
61 #[serde(rename = "suppressed")]
62 Suppressed,
63}
64
65impl Default for Kind {
66 fn default() -> Kind {
67 Self::MissingColumn
68 }
69}
70