clientapi_pve/models/cluster_firewall_create_rule_request.rs
1/*
2 * Proxmox Virtual Environment API
3 *
4 * Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
5 *
6 * The version of the OpenAPI document: 9.x
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ClusterFirewallCreateRuleRequest {
16
17 /// Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.
18 #[serde(rename = "action")]
19 pub action: String,
20
21 /// Descriptive comment.
22 #[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
23 pub comment: Option<String>,
24
25 /// Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.
26 #[serde(rename = "dest", skip_serializing_if = "Option::is_none")]
27 pub dest: Option<String>,
28
29 /// Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.
30 #[serde(rename = "digest", skip_serializing_if = "Option::is_none")]
31 pub digest: Option<String>,
32
33 /// Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.
34 #[serde(rename = "dport", skip_serializing_if = "Option::is_none")]
35 pub dport: Option<String>,
36
37 /// Flag to enable/disable a rule.
38 #[serde(rename = "enable", skip_serializing_if = "Option::is_none")]
39 pub enable: Option<i64>,
40
41 /// Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.
42 #[serde(rename = "icmp-type", skip_serializing_if = "Option::is_none")]
43 pub icmp_type: Option<String>,
44
45 /// Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.
46 #[serde(rename = "iface", skip_serializing_if = "Option::is_none")]
47 pub iface: Option<String>,
48
49 /// Log level for firewall rule.
50 #[serde(rename = "log", skip_serializing_if = "Option::is_none")]
51 pub log: Option<models::PveLogEnum>,
52
53 /// Use predefined standard macro.
54 #[serde(rename = "macro", skip_serializing_if = "Option::is_none")]
55 pub r#macro: Option<String>,
56
57 /// Update rule at position <pos>.
58 #[serde(rename = "pos", skip_serializing_if = "Option::is_none")]
59 pub pos: Option<i64>,
60
61 /// IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.
62 #[serde(rename = "proto", skip_serializing_if = "Option::is_none")]
63 pub proto: Option<String>,
64
65 /// Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.
66 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
67 pub source: Option<String>,
68
69 /// Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.
70 #[serde(rename = "sport", skip_serializing_if = "Option::is_none")]
71 pub sport: Option<String>,
72
73 /// Rule type.
74 #[serde(rename = "type")]
75 pub r#type: models::PveClusterFirewallTypeEnum,
76
77
78}
79
80impl ClusterFirewallCreateRuleRequest {
81 pub fn new(action: String, r#type: models::PveClusterFirewallTypeEnum) -> ClusterFirewallCreateRuleRequest {
82 ClusterFirewallCreateRuleRequest {
83
84 action,
85
86 comment: None,
87
88 dest: None,
89
90 digest: None,
91
92 dport: None,
93
94 enable: None,
95
96 icmp_type: None,
97
98 iface: None,
99
100 log: None,
101
102 r#macro: None,
103
104 pos: None,
105
106 proto: None,
107
108 source: None,
109
110 sport: None,
111
112 r#type,
113
114 }
115 }
116}
117
118