gitbundle_sdk/models/
rule_metadata.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct RuleMetadata {
17 #[serde(rename = "group_path")]
18 pub group_path: String,
19 #[serde(rename = "repo_path")]
20 pub repo_path: String,
21 #[serde(rename = "rule_definition", deserialize_with = "Option::deserialize")]
22 pub rule_definition: Option<serde_json::Value>,
23 #[serde(rename = "rule_id")]
24 pub rule_id: i64,
25 #[serde(rename = "rule_name")]
26 pub rule_name: String,
27 #[serde(rename = "rule_pattern", deserialize_with = "Option::deserialize")]
28 pub rule_pattern: Option<serde_json::Value>,
29 #[serde(rename = "rule_state")]
30 pub rule_state: models::RuleState,
31 #[serde(rename = "rule_type")]
32 pub rule_type: models::RuleType,
33}
34
35impl RuleMetadata {
36 pub fn new(
37 group_path: String,
38 repo_path: String,
39 rule_definition: Option<serde_json::Value>,
40 rule_id: i64,
41 rule_name: String,
42 rule_pattern: Option<serde_json::Value>,
43 rule_state: models::RuleState,
44 rule_type: models::RuleType,
45 ) -> RuleMetadata {
46 RuleMetadata {
47 group_path,
48 repo_path,
49 rule_definition,
50 rule_id,
51 rule_name,
52 rule_pattern,
53 rule_state,
54 rule_type,
55 }
56 }
57}