Skip to main content

clientapi_pve/models/
cluster_firewall_get_rules_response_data_inner.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 ClusterFirewallGetRulesResponseDataInner {
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
26    #[serde(rename = "dest", skip_serializing_if = "Option::is_none")]
27    pub dest: Option<String>,
28
29    /// Restrict TCP/UDP destination port
30    #[serde(rename = "dport", skip_serializing_if = "Option::is_none")]
31    pub dport: Option<String>,
32
33    /// Flag to enable/disable a rule
34    #[serde(rename = "enable", skip_serializing_if = "Option::is_none")]
35    pub enable: Option<i64>,
36
37    /// Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'
38    #[serde(rename = "icmp-type", skip_serializing_if = "Option::is_none")]
39    pub icmp_type: Option<String>,
40
41    /// Network interface name. You have to use network configuration key names for VMs and containers
42    #[serde(rename = "iface", skip_serializing_if = "Option::is_none")]
43    pub iface: Option<String>,
44
45    /// IP version (4 or 6) - automatically determined from source/dest addresses
46    #[serde(rename = "ipversion", skip_serializing_if = "Option::is_none")]
47    pub ipversion: Option<i64>,
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    /// Rule position in the ruleset
58    #[serde(rename = "pos")]
59    pub pos: 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
66    #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
67    pub source: Option<String>,
68
69    /// Restrict TCP/UDP source port
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: String,
76
77
78}
79
80impl ClusterFirewallGetRulesResponseDataInner {
81    pub fn new(action: String, pos: i64, r#type: String) -> ClusterFirewallGetRulesResponseDataInner {
82        ClusterFirewallGetRulesResponseDataInner {
83            
84            action,
85            
86            comment: None,
87            
88            dest: None,
89            
90            dport: None,
91            
92            enable: None,
93            
94            icmp_type: None,
95            
96            iface: None,
97            
98            ipversion: None,
99            
100            log: None,
101            
102            r#macro: None,
103            
104            pos,
105            
106            proto: None,
107            
108            source: None,
109            
110            sport: None,
111            
112            r#type,
113            
114        }
115    }
116}
117
118