@@ -712,7 +712,7 @@ public function firewallRules(string $node)
712712 * @param array $data
713713 * @throws Exception
714714 */
715- public function createFirewallRule ($ node , $ data = array () )
715+ public function createFirewallRule ($ node , array $ data )
716716 {
717717 $ response = $ this ->makeRequest ( "POST " ,"nodes/ $ node/firewall/rules " , $ data );
718718
@@ -831,6 +831,52 @@ public function setFirewallRuleOptions(string $node, array $data)
831831 return ResponseHelper::generate (true ,'Set firewall options ' , $ response ['data ' ]);
832832 }
833833
834+ /**
835+ * Create new rule
836+ * from the Proxmox node's public interface to a VM/Container IP:Port.
837+ * @throws Exception
838+ */
839+ public function createQemuFirewallRule (string $ node , int $ vmid , array $ data )
840+ {
841+ $ response = $ this ->makeRequest ('POST ' , "nodes/ $ node/qemu/ $ vmid/firewall/rules " , $ data );
842+
843+ if (!isset ($ response ['data ' ])){
844+ return ResponseHelper::generate (true ,'Created Firewall ' , $ response ['data ' ]);
845+ }
846+ return ResponseHelper::generate (false ,'Create Firewall fail! ' );
847+ }
848+
849+ /**
850+ * List of rule.
851+ * from the Proxmox node's public interface to a VM/Container IP:Port.
852+ * @throws Exception
853+ */
854+ public function listQemuFirewallRule (string $ node , int $ vmid )
855+ {
856+ $ response = $ this ->makeRequest ('GET ' , "nodes/ $ node/qemu/ $ vmid/firewall/rules " );
857+
858+ if (!isset ($ response ['data ' ])){
859+ return ResponseHelper::generate (false ,'List Firewall fail! ' );
860+ }
861+
862+ return ResponseHelper::generate (true ,'List Firewall ' , $ response ['data ' ]);
863+ }
864+
865+ /**
866+ * Removing of rule.
867+ * from the Proxmox node's public interface to a VM/Container IP:Port.
868+ * @throws Exception
869+ */
870+ public function removeQemuFirewallRule (string $ node , int $ vmid , $ pos )
871+ {
872+ $ response = $ this ->makeRequest ('DELETE ' , "nodes/ $ node/qemu/ $ vmid/firewall/rules/ $ pos " );
873+
874+ if (!isset ($ response ['data ' ])){
875+ return ResponseHelper::generate (true ,'Removed Firewall ' , $ response ['data ' ]);
876+ }
877+ return ResponseHelper::generate (false ,'Remove Firewall fail! ' );
878+ }
879+
834880 /**
835881 * LXC container index (per node).
836882 * GET /api2/json/nodes/{node}/lxc
0 commit comments