zabbix_api/usergroup/
model.rs1use serde::{Deserialize, Serialize};
2use crate::user::model::ZabbixUser;
3
4#[derive(Serialize, Deserialize, Debug, Clone, Default)]
7pub struct UserGroupPermission {
8 pub id: String,
10 pub permission: i32,
16}
17
18#[derive(Serialize, Deserialize, Debug, Clone)]
19pub struct ZabbixUserGroup {
20 #[serde(rename = "usrgrpid")]
21 pub usrgrp_id: String,
22 pub name: String,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub gui_access: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub users_status: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub debug_mode: Option<String>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub users: Option<Vec<ZabbixUser>>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub rights: Option<Vec<UserGroupPermission>>,
33}
34
35#[derive(Serialize, Deserialize, Debug, Clone, Default)]
38pub struct UserGroupTagFilter {
39 pub groupid: String,
41 pub tag: String,
43 pub value: String,
45}
46
47#[derive(Serialize, Deserialize, Debug, Clone, Default)]
50pub struct UserGroupUser {
51 #[serde(rename = "userid")]
52 pub user_id: String,
53}
54
55#[derive(Serialize, Deserialize, Debug, Clone, Default)]
58pub struct CreateUserGroupRequest {
59 pub name: String,
61
62 #[serde(skip_serializing_if = "Option::is_none")]
66 pub debug_mode: Option<i32>,
67
68 #[serde(skip_serializing_if = "Option::is_none")]
74 pub gui_access: Option<i32>,
75
76 #[serde(skip_serializing_if = "Option::is_none")]
80 pub users_status: Option<i32>,
81
82 #[serde(skip_serializing_if = "Option::is_none")]
84 pub hostgroup_rights: Option<Vec<UserGroupPermission>>,
85
86 #[serde(skip_serializing_if = "Option::is_none")]
88 pub templategroup_rights: Option<Vec<UserGroupPermission>>,
89
90 #[serde(skip_serializing_if = "Option::is_none")]
92 pub tag_filters: Option<Vec<UserGroupTagFilter>>,
93
94 #[serde(skip_serializing_if = "Option::is_none")]
96 pub users: Option<Vec<UserGroupUser>>,
97}
98
99#[derive(Serialize, Deserialize, Debug, Clone)]
101pub struct CreateUserGroupResponse {
102 #[serde(rename = "usrgrpids")]
103 pub user_group_ids: Vec<String>,
104}