From 39a073eb35a3b0ac1380c86b85e01e0683e30ad9 Mon Sep 17 00:00:00 2001 From: "Dosyo.Koychev" Date: Fri, 28 Oct 2022 09:09:48 +0100 Subject: [PATCH 1/2] Add new log settings profiles Created the following classes and updated the relevant CHILDTYPE references: class LogSettingsGlobalProtect class LogSettingsUserId class LogSettingsIpTag class LogSettingsHipMatch class LogSettingsCorrelation --- panos/device.py | 285 ++++++++++++++++++++++++++++++++++++++++++++++ panos/firewall.py | 5 + panos/panorama.py | 10 ++ 3 files changed, 300 insertions(+) diff --git a/panos/device.py b/panos/device.py index 64435d83..cf8694f8 100644 --- a/panos/device.py +++ b/panos/device.py @@ -118,6 +118,11 @@ class Vsys(VersionedPanObject): "device.SyslogServerProfile", "device.HttpServerProfile", "device.LogSettingsSystem", + "LogSettingsGlobalProtect", + "LogSettingsUserId", + "LogSettingsIpTag", + "LogSettingsHipMatch", + "LogSettingsCorrelation", "device.LogSettingsConfig", "device.CertificateProfile", "device.SslDecrypt", @@ -509,6 +514,286 @@ def _setup(self): self._params = tuple(params) +class LogSettingsGlobalProtect(VersionedPanObject): + """Firewall or Panorama device log settings globalprotect + + Note: This is valid for PANS-OS 9.1+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/globalprotect/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsUserId(VersionedPanObject): + """Firewall or Panorama device log settings userid + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/userid/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsIpTag(VersionedPanObject): + """Firewall or Panorama device log settings iptag + + Note: This is valid for PANS-OS 9.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/iptag/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsHipMatch(VersionedPanObject): + """Firewall or Panorama device log settings hipmatch + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/hipmatch/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsCorrelation(VersionedPanObject): + """Firewall or Panorama device log settings correlation + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/correlation/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + class PasswordProfile(VersionedPanObject): """Password profile object diff --git a/panos/firewall.py b/panos/firewall.py index 49c8ae3a..41eaa5f2 100644 --- a/panos/firewall.py +++ b/panos/firewall.py @@ -64,6 +64,11 @@ class Firewall(PanDevice): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "LogSettingsGlobalProtect", + "LogSettingsUserId", + "LogSettingsIpTag", + "LogSettingsHipMatch", + "LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "device.Telemetry", diff --git a/panos/panorama.py b/panos/panorama.py index 91209b77..fe4b3a90 100644 --- a/panos/panorama.py +++ b/panos/panorama.py @@ -170,6 +170,11 @@ class Template(VersionedPanObject): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "LogSettingsGlobalProtect", + "LogSettingsUserId", + "LogSettingsIpTag", + "LogSettingsHipMatch", + "LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "device.SslDecrypt", @@ -261,6 +266,11 @@ class TemplateStack(VersionedPanObject): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "LogSettingsGlobalProtect", + "LogSettingsUserId", + "LogSettingsIpTag", + "LogSettingsHipMatch", + "LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "ha.HighAvailability", From a89f3c1a301b76300f520859d0d24ddf93cf078c Mon Sep 17 00:00:00 2001 From: "Dosyo.Koychev" Date: Fri, 28 Oct 2022 09:09:48 +0100 Subject: [PATCH 2/2] Add new log settings profiles Created the following classes and updated the relevant CHILDTYPE references: class LogSettingsGlobalProtect class LogSettingsUserId class LogSettingsIpTag class LogSettingsHipMatch class LogSettingsCorrelation --- panos/device.py | 285 ++++++++++++++++++++++++++++++++++++++++++++++ panos/firewall.py | 5 + panos/panorama.py | 10 ++ 3 files changed, 300 insertions(+) diff --git a/panos/device.py b/panos/device.py index 64435d83..be5ceec9 100644 --- a/panos/device.py +++ b/panos/device.py @@ -118,6 +118,11 @@ class Vsys(VersionedPanObject): "device.SyslogServerProfile", "device.HttpServerProfile", "device.LogSettingsSystem", + "device.LogSettingsGlobalProtect", + "device.LogSettingsUserId", + "device.LogSettingsIpTag", + "device.LogSettingsHipMatch", + "device.LogSettingsCorrelation", "device.LogSettingsConfig", "device.CertificateProfile", "device.SslDecrypt", @@ -509,6 +514,286 @@ def _setup(self): self._params = tuple(params) +class LogSettingsGlobalProtect(VersionedPanObject): + """Firewall or Panorama device log settings globalprotect + + Note: This is valid for PANS-OS 9.1+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/globalprotect/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsUserId(VersionedPanObject): + """Firewall or Panorama device log settings userid + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/userid/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsIpTag(VersionedPanObject): + """Firewall or Panorama device log settings iptag + + Note: This is valid for PANS-OS 9.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/iptag/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsHipMatch(VersionedPanObject): + """Firewall or Panorama device log settings hipmatch + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/hipmatch/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + +class LogSettingsCorrelation(VersionedPanObject): + """Firewall or Panorama device log settings correlation + + Note: This is valid for PANS-OS 8.0+. + + Args: + name (string): The name + filter (string): Valid values are "All logs" (default) or create your own filter + description (string): Description + send_to_panorama (bool): Send to panorama + send_email (list): Send email profile + send_snmp (list): Send snmp profile + send_syslog (list): Send syslog profile + send_http (list): Send http profile + + """ + + ROOT = Root.VSYS + SUFFIX = ENTRY + + def _setup(self): + # xpaths + self._xpaths.add_profile(value="/log-settings/correlation/match-list") + + # params + params = [] + + params.append(VersionedParamPath("filter", default="All Logs", path="filter")) + + params.append(VersionedParamPath("description", path="description")) + + params.append( + VersionedParamPath( + "send_to_panorama", vartype="yesno", path="send-to-panorama" + ) + ) + + params.append( + VersionedParamPath("send_email", vartype="member", path="send-email") + ) + + params.append( + VersionedParamPath("send_snmp", vartype="member", path="send-snmptrap") + ) + + params.append( + VersionedParamPath("send_syslog", vartype="member", path="send-syslog") + ) + + params.append( + VersionedParamPath("send_http", vartype="member", path="send-http") + ) + + self._params = tuple(params) + + class PasswordProfile(VersionedPanObject): """Password profile object diff --git a/panos/firewall.py b/panos/firewall.py index 49c8ae3a..e1f0fc30 100644 --- a/panos/firewall.py +++ b/panos/firewall.py @@ -64,6 +64,11 @@ class Firewall(PanDevice): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "device.LogSettingsGlobalProtect", + "device.LogSettingsUserId", + "device.LogSettingsIpTag", + "device.LogSettingsHipMatch", + "device.LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "device.Telemetry", diff --git a/panos/panorama.py b/panos/panorama.py index 91209b77..fdbbe27f 100644 --- a/panos/panorama.py +++ b/panos/panorama.py @@ -170,6 +170,11 @@ class Template(VersionedPanObject): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "device.LogSettingsGlobalProtect", + "device.LogSettingsUserId", + "device.LogSettingsIpTag", + "device.LogSettingsHipMatch", + "device.LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "device.SslDecrypt", @@ -261,6 +266,11 @@ class TemplateStack(VersionedPanObject): "device.SystemSettings", "device.LogSettingsSystem", "device.LogSettingsConfig", + "device.LogSettingsGlobalProtect", + "device.LogSettingsUserId", + "device.LogSettingsIpTag", + "device.LogSettingsHipMatch", + "device.LogSettingsCorrelation", "device.PasswordProfile", "device.Administrator", "ha.HighAvailability",