opnsense_api 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/lib/opnsense_api/client.rb +125 -0
  3. data/lib/opnsense_api/core/captive_portal/access.rb +25 -0
  4. data/lib/opnsense_api/core/captive_portal/service.rb +33 -0
  5. data/lib/opnsense_api/core/captive_portal/session.rb +29 -0
  6. data/lib/opnsense_api/core/captive_portal/settings.rb +41 -0
  7. data/lib/opnsense_api/core/captive_portal/voucher.rb +41 -0
  8. data/lib/opnsense_api/core/captive_portal.rb +36 -0
  9. data/lib/opnsense_api/core/core/firmware.rb +70 -0
  10. data/lib/opnsense_api/core/core/menu.rb +21 -0
  11. data/lib/opnsense_api/core/core/system.rb +29 -0
  12. data/lib/opnsense_api/core/core.rb +26 -0
  13. data/lib/opnsense_api/core/cron/service.rb +17 -0
  14. data/lib/opnsense_api/core/cron/settings.rb +45 -0
  15. data/lib/opnsense_api/core/cron.rb +21 -0
  16. data/lib/opnsense_api/core/diagnostics/activity.rb +17 -0
  17. data/lib/opnsense_api/core/diagnostics/dns.rb +17 -0
  18. data/lib/opnsense_api/core/diagnostics/dns_diagnostics.rb +25 -0
  19. data/lib/opnsense_api/core/diagnostics/firewall.rb +57 -0
  20. data/lib/opnsense_api/core/diagnostics/interface.rb +81 -0
  21. data/lib/opnsense_api/core/diagnostics/lv_template.rb +41 -0
  22. data/lib/opnsense_api/core/diagnostics/netflow.rb +37 -0
  23. data/lib/opnsense_api/core/diagnostics/network_insight.rb +29 -0
  24. data/lib/opnsense_api/core/diagnostics/packet_capture.rb +53 -0
  25. data/lib/opnsense_api/core/diagnostics/system.rb +17 -0
  26. data/lib/opnsense_api/core/diagnostics/system_health.rb +21 -0
  27. data/lib/opnsense_api/core/diagnostics/traffic.rb +21 -0
  28. data/lib/opnsense_api/core/diagnostics.rb +71 -0
  29. data/lib/opnsense_api/core/firewall/alias.rb +83 -0
  30. data/lib/opnsense_api/core/firewall/alias_util.rb +43 -0
  31. data/lib/opnsense_api/core/firewall/category.rb +46 -0
  32. data/lib/opnsense_api/core/firewall/filter_util.rb +18 -0
  33. data/lib/opnsense_api/core/firewall.rb +31 -0
  34. data/lib/opnsense_api/core/ids/service.rb +58 -0
  35. data/lib/opnsense_api/core/ids/settings.rb +142 -0
  36. data/lib/opnsense_api/core/ids.rb +21 -0
  37. data/lib/opnsense_api/core/interfaces/base.rb +44 -0
  38. data/lib/opnsense_api/core/interfaces/loopback_settings.rb +12 -0
  39. data/lib/opnsense_api/core/interfaces/vip_settings.rb +16 -0
  40. data/lib/opnsense_api/core/interfaces/vlan_settings.rb +12 -0
  41. data/lib/opnsense_api/core/interfaces/vxlan_settings.rb +12 -0
  42. data/lib/opnsense_api/core/interfaces.rb +32 -0
  43. data/lib/opnsense_api/core/ipsec/key_pairs.rb +46 -0
  44. data/lib/opnsense_api/core/ipsec/leases.rb +22 -0
  45. data/lib/opnsense_api/core/ipsec/legacy_subsystem.rb +22 -0
  46. data/lib/opnsense_api/core/ipsec/pre_shared_keys.rb +46 -0
  47. data/lib/opnsense_api/core/ipsec/sad.rb +22 -0
  48. data/lib/opnsense_api/core/ipsec/service.rb +34 -0
  49. data/lib/opnsense_api/core/ipsec/sessions.rb +30 -0
  50. data/lib/opnsense_api/core/ipsec/spd.rb +22 -0
  51. data/lib/opnsense_api/core/ipsec/tunnel.rb +42 -0
  52. data/lib/opnsense_api/core/ipsec.rb +56 -0
  53. data/lib/opnsense_api/core/monit/service.rb +38 -0
  54. data/lib/opnsense_api/core/monit/settings.rb +98 -0
  55. data/lib/opnsense_api/core/monit/status.rb +18 -0
  56. data/lib/opnsense_api/core/monit.rb +26 -0
  57. data/lib/opnsense_api/core/open_vpn/export.rb +38 -0
  58. data/lib/opnsense_api/core/open_vpn.rb +16 -0
  59. data/lib/opnsense_api/core/proxy/service.rb +50 -0
  60. data/lib/opnsense_api/core/proxy/settings.rb +114 -0
  61. data/lib/opnsense_api/core/proxy/template.rb +26 -0
  62. data/lib/opnsense_api/core/proxy.rb +26 -0
  63. data/lib/opnsense_api/core/routes/gateway.rb +18 -0
  64. data/lib/opnsense_api/core/routes/routes.rb +50 -0
  65. data/lib/opnsense_api/core/routes.rb +21 -0
  66. data/lib/opnsense_api/core/syslog/service.rb +38 -0
  67. data/lib/opnsense_api/core/syslog/settings.rb +46 -0
  68. data/lib/opnsense_api/core/syslog.rb +21 -0
  69. data/lib/opnsense_api/core/traffic_shaping/service.rb +26 -0
  70. data/lib/opnsense_api/core/traffic_shaping/settings.rb +94 -0
  71. data/lib/opnsense_api/core/traffic_shaping.rb +21 -0
  72. data/lib/opnsense_api/core/unbound/diagnostics.rb +38 -0
  73. data/lib/opnsense_api/core/unbound/service.rb +38 -0
  74. data/lib/opnsense_api/core/unbound/settings.rb +122 -0
  75. data/lib/opnsense_api/core/unbound.rb +26 -0
  76. data/lib/opnsense_api/core.rb +27 -0
  77. data/lib/opnsense_api/error.rb +5 -0
  78. data/lib/opnsense_api/version.rb +5 -0
  79. data/lib/opnsense_api.rb +10 -0
  80. data/sig/lib/opnsense_api/client.rbs +55 -0
  81. data/sig/lib/opnsense_api/core/captive_portal/access.rbs +17 -0
  82. data/sig/lib/opnsense_api/core/captive_portal/service.rbs +21 -0
  83. data/sig/lib/opnsense_api/core/captive_portal/session.rbs +19 -0
  84. data/sig/lib/opnsense_api/core/captive_portal/settings.rbs +25 -0
  85. data/sig/lib/opnsense_api/core/captive_portal/voucher.rbs +25 -0
  86. data/sig/lib/opnsense_api/core/captive_portal.rbs +17 -0
  87. data/sig/lib/opnsense_api/core/core/firmware.rbs +37 -0
  88. data/sig/lib/opnsense_api/core/core/menu.rbs +15 -0
  89. data/sig/lib/opnsense_api/core/core/system.rbs +19 -0
  90. data/sig/lib/opnsense_api/core/core.rbs +13 -0
  91. data/sig/lib/opnsense_api/core/cron/service.rbs +13 -0
  92. data/sig/lib/opnsense_api/core/cron/settings.rbs +27 -0
  93. data/sig/lib/opnsense_api/core/cron.rbs +11 -0
  94. data/sig/lib/opnsense_api/core/diagnostics/activity.rbs +13 -0
  95. data/sig/lib/opnsense_api/core/diagnostics/dns.rbs +13 -0
  96. data/sig/lib/opnsense_api/core/diagnostics/dns_diagnostics.rbs +15 -0
  97. data/sig/lib/opnsense_api/core/diagnostics/firewall.rbs +33 -0
  98. data/sig/lib/opnsense_api/core/diagnostics/interface.rbs +45 -0
  99. data/sig/lib/opnsense_api/core/diagnostics/lv_template.rbs +25 -0
  100. data/sig/lib/opnsense_api/core/diagnostics/netflow.rbs +23 -0
  101. data/sig/lib/opnsense_api/core/diagnostics/network_insight.rbs +19 -0
  102. data/sig/lib/opnsense_api/core/diagnostics/packet_capture.rbs +29 -0
  103. data/sig/lib/opnsense_api/core/diagnostics/system.rbs +13 -0
  104. data/sig/lib/opnsense_api/core/diagnostics/system_health.rbs +15 -0
  105. data/sig/lib/opnsense_api/core/diagnostics/traffic.rbs +15 -0
  106. data/sig/lib/opnsense_api/core/diagnostics.rbs +31 -0
  107. data/sig/lib/opnsense_api/core/firewall/alias.rbs +45 -0
  108. data/sig/lib/opnsense_api/core/firewall/alias_util.rbs +25 -0
  109. data/sig/lib/opnsense_api/core/firewall/category.rbs +27 -0
  110. data/sig/lib/opnsense_api/core/firewall/filter_util.rbs +13 -0
  111. data/sig/lib/opnsense_api/core/firewall.rbs +15 -0
  112. data/sig/lib/opnsense_api/core/ids/service.rbs +33 -0
  113. data/sig/lib/opnsense_api/core/ids/settings.rbs +75 -0
  114. data/sig/lib/opnsense_api/core/ids.rbs +11 -0
  115. data/sig/lib/opnsense_api/core/interfaces/base.rbs +25 -0
  116. data/sig/lib/opnsense_api/core/interfaces/loopback_settings.rbs +9 -0
  117. data/sig/lib/opnsense_api/core/interfaces/vip_settings.rbs +11 -0
  118. data/sig/lib/opnsense_api/core/interfaces/vlan_settings.rbs +9 -0
  119. data/sig/lib/opnsense_api/core/interfaces/vxlan_settings.rbs +9 -0
  120. data/sig/lib/opnsense_api/core/interfaces.rbs +15 -0
  121. data/sig/lib/opnsense_api/core/ipsec/key_pairs.rbs +27 -0
  122. data/sig/lib/opnsense_api/core/ipsec/leases.rbs +15 -0
  123. data/sig/lib/opnsense_api/core/ipsec/legacy_subsystem.rbs +15 -0
  124. data/sig/lib/opnsense_api/core/ipsec/pre_shared_keys.rbs +27 -0
  125. data/sig/lib/opnsense_api/core/ipsec/sad.rbs +15 -0
  126. data/sig/lib/opnsense_api/core/ipsec/service.rbs +21 -0
  127. data/sig/lib/opnsense_api/core/ipsec/sessions.rbs +19 -0
  128. data/sig/lib/opnsense_api/core/ipsec/spd.rbs +15 -0
  129. data/sig/lib/opnsense_api/core/ipsec/tunnel.rbs +25 -0
  130. data/sig/lib/opnsense_api/core/ipsec.rbs +25 -0
  131. data/sig/lib/opnsense_api/core/monit/service.rbs +23 -0
  132. data/sig/lib/opnsense_api/core/monit/settings.rbs +53 -0
  133. data/sig/lib/opnsense_api/core/monit/status.rbs +13 -0
  134. data/sig/lib/opnsense_api/core/monit.rbs +13 -0
  135. data/sig/lib/opnsense_api/core/open_vpn/export.rbs +23 -0
  136. data/sig/lib/opnsense_api/core/open_vpn.rbs +9 -0
  137. data/sig/lib/opnsense_api/core/proxy/service.rbs +29 -0
  138. data/sig/lib/opnsense_api/core/proxy/settings.rbs +61 -0
  139. data/sig/lib/opnsense_api/core/proxy/template.rbs +17 -0
  140. data/sig/lib/opnsense_api/core/proxy.rbs +13 -0
  141. data/sig/lib/opnsense_api/core/routes/gateway.rbs +13 -0
  142. data/sig/lib/opnsense_api/core/routes/routes.rbs +29 -0
  143. data/sig/lib/opnsense_api/core/routes.rbs +11 -0
  144. data/sig/lib/opnsense_api/core/syslog/service.rbs +23 -0
  145. data/sig/lib/opnsense_api/core/syslog/settings.rbs +27 -0
  146. data/sig/lib/opnsense_api/core/syslog.rbs +11 -0
  147. data/sig/lib/opnsense_api/core/traffic_shaping/service.rbs +17 -0
  148. data/sig/lib/opnsense_api/core/traffic_shaping/settings.rbs +51 -0
  149. data/sig/lib/opnsense_api/core/traffic_shaping.rbs +11 -0
  150. data/sig/lib/opnsense_api/core/unbound/diagnostics.rbs +23 -0
  151. data/sig/lib/opnsense_api/core/unbound/service.rbs +23 -0
  152. data/sig/lib/opnsense_api/core/unbound/settings.rbs +65 -0
  153. data/sig/lib/opnsense_api/core/unbound.rbs +13 -0
  154. data/sig/lib/opnsense_api/core.rbs +7 -0
  155. data/sig/lib/opnsense_api/version.rbs +3 -0
  156. metadata +242 -0
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class Interface
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/interface'
10
+
11
+ def carp_status(status:)
12
+ @client.post("#{BASE_PATH}/carpStatus/#{status}")
13
+ end
14
+
15
+ def del_route(body = {})
16
+ @client.post("#{BASE_PATH}/delRoute", body)
17
+ end
18
+
19
+ def flush_arp(body = {})
20
+ @client.post("#{BASE_PATH}/flushArp", body)
21
+ end
22
+
23
+ def get_arp(params = {})
24
+ @client.get("#{BASE_PATH}/getArp", params)
25
+ end
26
+
27
+ def get_bpf_statistics(params = {})
28
+ @client.get("#{BASE_PATH}/getBpfStatistics", params)
29
+ end
30
+
31
+ def get_interface_config(params = {})
32
+ @client.get("#{BASE_PATH}/getInterfaceConfig", params)
33
+ end
34
+
35
+ def get_interface_names(params = {})
36
+ @client.get("#{BASE_PATH}/getInterfaceNames", params)
37
+ end
38
+
39
+ def get_memory_statistics(params = {})
40
+ @client.get("#{BASE_PATH}/getMemoryStatistics", params)
41
+ end
42
+
43
+ def get_ndp(params = {})
44
+ @client.get("#{BASE_PATH}/getNdp", params)
45
+ end
46
+
47
+ def get_netisr_statistics(params = {})
48
+ @client.get("#{BASE_PATH}/getNetisrStatistics", params)
49
+ end
50
+
51
+ def get_pf_sync_statistics(params = {})
52
+ @client.get("#{BASE_PATH}/getPfSyncStatistics", params)
53
+ end
54
+
55
+ def get_protocol_statistics(params = {})
56
+ @client.get("#{BASE_PATH}/getProtocolStatistics", params)
57
+ end
58
+
59
+ def get_routes(params = {})
60
+ @client.get("#{BASE_PATH}/getRoutes", params)
61
+ end
62
+
63
+ def get_socket_statistics(params = {})
64
+ @client.get("#{BASE_PATH}/getSocketStatistics", params)
65
+ end
66
+
67
+ def get_vip_status(params = {})
68
+ @client.get("#{BASE_PATH}/getVipStatus", params)
69
+ end
70
+
71
+ def search_arp(params = {})
72
+ @client.get("#{BASE_PATH}/searchArp", params)
73
+ end
74
+
75
+ def search_ndp(params = {})
76
+ @client.get("#{BASE_PATH}/searchNdp", params)
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class LVTemplate
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/lvtemplate'
10
+
11
+ def add_item(body = {})
12
+ @client.post("#{BASE_PATH}/addItem", body)
13
+ end
14
+
15
+ def del_item(uuid:)
16
+ @client.post("#{BASE_PATH}/delItem/#{uuid}")
17
+ end
18
+
19
+ def get(params = {})
20
+ @client.get("#{BASE_PATH}/get", params)
21
+ end
22
+
23
+ def get_item(uuid: nil)
24
+ @client.get("#{BASE_PATH}/getItem/#{uuid}")
25
+ end
26
+
27
+ def search_item(body = {})
28
+ @client.post("#{BASE_PATH}/searchItem", body)
29
+ end
30
+
31
+ def set(body = {})
32
+ @client.post("#{BASE_PATH}/set", body)
33
+ end
34
+
35
+ def set_item(uuid:, body: {})
36
+ @client.post("#{BASE_PATH}/setItem/#{uuid}", body)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class Netflow
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/netflow'
10
+
11
+ def cache_stats(params = {})
12
+ @client.get("#{BASE_PATH}/cacheStats", params)
13
+ end
14
+
15
+ def get_config(params = {})
16
+ @client.get("#{BASE_PATH}/getConfig", params)
17
+ end
18
+
19
+ def is_enabled(params = {})
20
+ @client.get("#{BASE_PATH}/isEnabled", params)
21
+ end
22
+
23
+ def reconfigure(body = {})
24
+ @client.post("#{BASE_PATH}/reconfigure", body)
25
+ end
26
+
27
+ def set_config(params = {})
28
+ @client.get("#{BASE_PATH}/setConfig", params)
29
+ end
30
+
31
+ def status(params = {})
32
+ @client.get("#{BASE_PATH}/status", params)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class NetworkInsight
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/networkinsight'
10
+
11
+ def get_interfaces(params = {})
12
+ @client.get("#{BASE_PATH}/getInterfaces", params)
13
+ end
14
+
15
+ def get_metadata(params = {})
16
+ @client.get("#{BASE_PATH}/getMetadata", params)
17
+ end
18
+
19
+ def get_protocols(params = {})
20
+ @client.get("#{BASE_PATH}/getProtocols", params)
21
+ end
22
+
23
+ def get_services(params = {})
24
+ @client.get("#{BASE_PATH}/getServices", params)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class PacketCapture
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/packet_capture'
10
+
11
+ def download(jobid:)
12
+ @client.get("#{BASE_PATH}/download/#{jobid}")
13
+ end
14
+
15
+ def get(params = {})
16
+ @client.get("#{BASE_PATH}/get", params)
17
+ end
18
+
19
+ def mac_info(macaddr:)
20
+ @client.get("#{BASE_PATH}/mac_info/#{macaddr}")
21
+ end
22
+
23
+ def remove(jobid:)
24
+ @client.post("#{BASE_PATH}/remove/#{jobid}")
25
+ end
26
+
27
+ def search_jobs(params = {})
28
+ @client.get("#{BASE_PATH}/searchJobs", params)
29
+ end
30
+
31
+ def set(params: {}, body: {})
32
+ if body.any?
33
+ @client.post("#{BASE_PATH}/set", body)
34
+ else
35
+ @client.get("#{BASE_PATH}/set", params)
36
+ end
37
+ end
38
+
39
+ def start(jobid:)
40
+ @client.post("#{BASE_PATH}/start/#{jobid}")
41
+ end
42
+
43
+ def stop(jobid:)
44
+ @client.post("#{BASE_PATH}/stop/#{jobid}")
45
+ end
46
+
47
+ def view(jobid:, detail: 'normal')
48
+ @client.get("#{BASE_PATH}/view/#{jobid}/#{detail}")
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class System
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/system'
10
+
11
+ def memory(params = {})
12
+ @client.get("#{BASE_PATH}/memory", params)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class SystemHealth
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/systemhealth'
10
+
11
+ def get_interfaces(params = {})
12
+ @client.get("#{BASE_PATH}/getInterfaces", params)
13
+ end
14
+
15
+ def get_rrd_list(params = {})
16
+ @client.get("#{BASE_PATH}/getRRDList", params)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Diagnostics
6
+ class Traffic
7
+ include OPNsenseAPI::Core
8
+
9
+ BASE_PATH = '/diagnostics/traffic'
10
+
11
+ def interface(params = {})
12
+ @client.get("#{BASE_PATH}/Interface", params)
13
+ end
14
+
15
+ def top(params = {})
16
+ @client.get("#{BASE_PATH}/Top", params)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/diagnostics.html
6
+ class Diagnostics
7
+ autoload :Activity, 'opnsense_api/core/diagnostics/activity'
8
+ autoload :DNS, 'opnsense_api/core/diagnostics/dns'
9
+ autoload :DNSDiagnostics, 'opnsense_api/core/diagnostics/dns_diagnostics'
10
+ autoload :Firewall, 'opnsense_api/core/diagnostics/firewall'
11
+ autoload :Interface, 'opnsense_api/core/diagnostics/interface'
12
+ autoload :LVTemplate, 'opnsense_api/core/diagnostics/lv_template'
13
+ autoload :Netflow, 'opnsense_api/core/diagnostics/netflow'
14
+ autoload :NetworkInsight, 'opnsense_api/core/diagnostics/network_insight'
15
+ autoload :PacketCapture, 'opnsense_api/core/diagnostics/packet_capture'
16
+ autoload :System, 'opnsense_api/core/diagnostics/system'
17
+ autoload :SystemHealth, 'opnsense_api/core/diagnostics/system_health'
18
+ autoload :Traffic, 'opnsense_api/core/diagnostics/traffic'
19
+
20
+ include OPNsenseAPI::Core
21
+
22
+ def activity
23
+ Activity.new(@client)
24
+ end
25
+
26
+ def dns
27
+ DNS.new(@client)
28
+ end
29
+
30
+ def dns_diagnostics
31
+ DNSDiagnostics.new(@client)
32
+ end
33
+
34
+ def firewall
35
+ Firewall.new(@client)
36
+ end
37
+
38
+ def interface
39
+ Interface.new(@client)
40
+ end
41
+
42
+ def lv_template
43
+ LVTemplate.new(@client)
44
+ end
45
+
46
+ def netflow
47
+ Netflow.new(@client)
48
+ end
49
+
50
+ def network_insight
51
+ NetworkInsight.new(@client)
52
+ end
53
+
54
+ def packet_capture
55
+ PacketCapture.new(@client)
56
+ end
57
+
58
+ def system
59
+ System.new(@client)
60
+ end
61
+
62
+ def system_health
63
+ SystemHealth.new(@client)
64
+ end
65
+
66
+ def traffic
67
+ Traffic.new(@client)
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Firewall
6
+ # @see https://docs.opnsense.org/development/api/core/firewall.html#id1
7
+ # @see https://github.com/opnsense/core/blob/master/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
8
+ class Alias
9
+ include OPNsenseAPI::Core
10
+
11
+ BASE_PATH = '/firewall/alias'
12
+
13
+ def add_item(body = {})
14
+ @client.post("#{BASE_PATH}/addItem", body)
15
+ end
16
+
17
+ def del_item(uuid:)
18
+ @client.post("#{BASE_PATH}/delItem/#{uuid}")
19
+ end
20
+
21
+ def export(params = {})
22
+ @client.get("#{BASE_PATH}/export", params)
23
+ end
24
+
25
+ def get(params = {})
26
+ @client.get("#{BASE_PATH}/get", params)
27
+ end
28
+
29
+ def get_alias_uuid(name:)
30
+ @client.get("#{BASE_PATH}/getAliasUUID/#{name}")
31
+ end
32
+
33
+ def get_geo_ip(params = {})
34
+ @client.get("#{BASE_PATH}/getGeoIP", params)
35
+ end
36
+
37
+ def get_item(uuid:)
38
+ @client.get("#{BASE_PATH}/getItem/#{uuid}")
39
+ end
40
+
41
+ def get_table_size(params = {})
42
+ @client.get("#{BASE_PATH}/getTableSize", params)
43
+ end
44
+
45
+ def import(body = {})
46
+ @client.post("#{BASE_PATH}/import", body)
47
+ end
48
+
49
+ def list_categories(params = {})
50
+ @client.get("#{BASE_PATH}/listCategories", params)
51
+ end
52
+
53
+ def list_countries(params = {})
54
+ @client.get("#{BASE_PATH}/listCountries", params)
55
+ end
56
+
57
+ def list_network_aliases(params = {})
58
+ @client.get("#{BASE_PATH}/listNetworkAliases", params)
59
+ end
60
+
61
+ def reconfigure(body = {})
62
+ @client.post("#{BASE_PATH}/reconfigure", body)
63
+ end
64
+
65
+ def search_item(body = {})
66
+ @client.post("#{BASE_PATH}/searchItem", body)
67
+ end
68
+
69
+ def set(body = {})
70
+ @client.post("#{BASE_PATH}/set", body)
71
+ end
72
+
73
+ def set_item(uuid:, body: {})
74
+ @client.post("#{BASE_PATH}/setItem/#{uuid}", body)
75
+ end
76
+
77
+ def toggle_item(uuid:, enabled: nil)
78
+ @client.post("#{BASE_PATH}/toggleItem/#{uuid}/#{enabled}")
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Firewall
6
+ # @see https://docs.opnsense.org/development/api/core/firewall.html#id2
7
+ # NOTE: using `id` instead of `alias` as it is a reserved keyword
8
+ class AliasUtil
9
+ include OPNsenseAPI::Core
10
+
11
+ BASE_PATH = '/firewall/alias_util'
12
+
13
+ def add(id:, body: {})
14
+ @client.post("#{BASE_PATH}/add/#{id}", body)
15
+ end
16
+
17
+ def aliases(params = {})
18
+ @client.get("#{BASE_PATH}/aliases", params)
19
+ end
20
+
21
+ def delete(id:)
22
+ @client.post("#{BASE_PATH}/delete/#{id}")
23
+ end
24
+
25
+ def find_references(body = {})
26
+ @client.post("#{BASE_PATH}/findReferences", body)
27
+ end
28
+
29
+ def flush(id:, body: {})
30
+ @client.post("#{BASE_PATH}/flush/#{id}", body)
31
+ end
32
+
33
+ def list(id:, params: {})
34
+ @client.get("#{BASE_PATH}/list/#{id}", params)
35
+ end
36
+
37
+ def update_bogons(params = {})
38
+ @client.get("#{BASE_PATH}/updateBogons", params)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Firewall
6
+ # @see https://docs.opnsense.org/development/api/core/firewall.html#id3
7
+ class Category
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/firewall/category'
11
+
12
+ def add_item(body = {})
13
+ @client.post("#{BASE_PATH}/addItem", body)
14
+ end
15
+
16
+ def del_item(uuid:)
17
+ @client.post("#{BASE_PATH}/delItem/#{uuid}")
18
+ end
19
+
20
+ def get(params = {})
21
+ @client.get("#{BASE_PATH}/get", params)
22
+ end
23
+
24
+ def get_item(uuid: nil)
25
+ @client.get("#{BASE_PATH}/getItem/#{uuid}")
26
+ end
27
+
28
+ def search_item(body = {})
29
+ @client.post("#{BASE_PATH}/searchItem", body)
30
+ end
31
+
32
+ def search_no_category_item(body = {})
33
+ @client.post("#{BASE_PATH}/searchNoCategoryItem", body)
34
+ end
35
+
36
+ def set(body = {})
37
+ @client.post("#{BASE_PATH}/set", body)
38
+ end
39
+
40
+ def set_item(uuid:, body: {})
41
+ @client.post("#{BASE_PATH}/setItem/#{uuid}", body)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Firewall
6
+ # @see https://docs.opnsense.org/development/api/core/firewall.html#id4
7
+ class FilterUtil
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/firewall/filter_util'
11
+
12
+ def rule_stats(params = {})
13
+ @client.get("#{BASE_PATH}/ruleStats", params)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/firewall.html
6
+ class Firewall
7
+ autoload :Alias, 'opnsense_api/core/firewall/alias'
8
+ autoload :AliasUtil, 'opnsense_api/core/firewall/alias_util'
9
+ autoload :Category, 'opnsense_api/core/firewall/category'
10
+ autoload :FilterUtil, 'opnsense_api/core/firewall/filter_util'
11
+
12
+ include OPNsenseAPI::Core
13
+
14
+ def alias
15
+ Alias.new(@client)
16
+ end
17
+
18
+ def alias_util
19
+ AliasUtil.new(@client)
20
+ end
21
+
22
+ def category
23
+ Category.new(@client)
24
+ end
25
+
26
+ def filter_util
27
+ FilterUtil.new(@client)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IDS
6
+ # @see https://docs.opnsense.org/development/api/core/ids.html#id1
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ids/service'
11
+
12
+ def drop_alert_log(body = {})
13
+ @client.post("#{BASE_PATH}/dropAlertLog", body)
14
+ end
15
+
16
+ def get_alert_info(alertid:, fileid: nil)
17
+ @client.get("#{BASE_PATH}/getAlertInfo/#{alertid}/#{fileid}")
18
+ end
19
+
20
+ def get_alert_logs(params = {})
21
+ @client.get("#{BASE_PATH}/getAlertLogs", params)
22
+ end
23
+
24
+ def query_alerts(body = {})
25
+ @client.post("#{BASE_PATH}/queryAlerts", body)
26
+ end
27
+
28
+ def reconfigure(body = {})
29
+ @client.post("#{BASE_PATH}/reconfigure", body)
30
+ end
31
+
32
+ def reload_rules(body = {})
33
+ @client.post("#{BASE_PATH}/reloadRules", body)
34
+ end
35
+
36
+ def restart(body = {})
37
+ @client.post("#{BASE_PATH}/restart", body)
38
+ end
39
+
40
+ def start(body = {})
41
+ @client.post("#{BASE_PATH}/start", body)
42
+ end
43
+
44
+ def status(params = {})
45
+ @client.get("#{BASE_PATH}/status", params)
46
+ end
47
+
48
+ def stop(body = {})
49
+ @client.post("#{BASE_PATH}/stop", body)
50
+ end
51
+
52
+ def update_rules(body = {}, wait: nil)
53
+ @client.post("#{BASE_PATH}/updateRules/#{wait}", body)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end