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,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Monit
6
+ # @see https://docs.opnsense.org/development/api/core/monit.html#id2
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/monit/settings'
11
+
12
+ def add_alert(body = {})
13
+ @client.post("#{BASE_PATH}/addAlert", body)
14
+ end
15
+
16
+ def add_service(body = {})
17
+ @client.post("#{BASE_PATH}/addService", body)
18
+ end
19
+
20
+ def add_test(body = {})
21
+ @client.post("#{BASE_PATH}/addTest", body)
22
+ end
23
+
24
+ def del_alert(body = {}, uuid:)
25
+ @client.post("#{BASE_PATH}/delAlert/#{uuid}", body)
26
+ end
27
+
28
+ def del_service(body = {}, uuid:)
29
+ @client.post("#{BASE_PATH}/delService/#{uuid}", body)
30
+ end
31
+
32
+ def del_test(body = {}, uuid:)
33
+ @client.post("#{BASE_PATH}/delTest/#{uuid}", body)
34
+ end
35
+
36
+ def dirty(params = {})
37
+ @client.get("#{BASE_PATH}/dirty", params)
38
+ end
39
+
40
+ def get(params = {})
41
+ @client.get("#{BASE_PATH}/get", params)
42
+ end
43
+
44
+ def get_alert(params = {}, uuid: nil)
45
+ @client.get("#{BASE_PATH}/getAlert/#{uuid}", params)
46
+ end
47
+
48
+ def get_general(params = {})
49
+ @client.get("#{BASE_PATH}/getGeneral", params)
50
+ end
51
+
52
+ def get_service(params = {}, uuid: nil)
53
+ @client.get("#{BASE_PATH}/getService/#{uuid}", params)
54
+ end
55
+
56
+ def get_test(params = {}, uuid: nil)
57
+ @client.get("#{BASE_PATH}/getTest/#{uuid}", params)
58
+ end
59
+
60
+ def search_alert(body = {})
61
+ @client.post("#{BASE_PATH}/searchAlert", body)
62
+ end
63
+
64
+ def search_service(body = {})
65
+ @client.post("#{BASE_PATH}/searchService", body)
66
+ end
67
+
68
+ def search_test(body = {})
69
+ @client.post("#{BASE_PATH}/searchTest", body)
70
+ end
71
+
72
+ def set(body = {})
73
+ @client.post("#{BASE_PATH}/set", body)
74
+ end
75
+
76
+ def set_alert(body = {}, uuid:)
77
+ @client.post("#{BASE_PATH}/setAlert/#{uuid}", body)
78
+ end
79
+
80
+ def set_service(body = {}, uuid:)
81
+ @client.post("#{BASE_PATH}/setService/#{uuid}", body)
82
+ end
83
+
84
+ def set_test(body = {}, uuid:)
85
+ @client.post("#{BASE_PATH}/setTest/#{uuid}", body)
86
+ end
87
+
88
+ def toggle_alert(body = {}, uuid:, enabled: nil)
89
+ @client.post("#{BASE_PATH}/toggleAlert/#{uuid}/#{enabled}", body)
90
+ end
91
+
92
+ def toggle_service(body = {}, uuid:, enabled: nil)
93
+ @client.post("#{BASE_PATH}/toggleService/#{uuid}/#{enabled}", body)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Monit
6
+ # @see https://docs.opnsense.org/development/api/core/monit.html#id3
7
+ class Status
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/monit/status'
11
+
12
+ def get(params = {})
13
+ @client.get("#{BASE_PATH}/get", params)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/monit.html
6
+ class Monit
7
+ autoload :Service, 'opnsense_api/core/monit/service'
8
+ autoload :Settings, 'opnsense_api/core/monit/settings'
9
+ autoload :Status, 'opnsense_api/core/monit/status'
10
+
11
+ include OPNsenseAPI::Core
12
+
13
+ def service
14
+ Service.new(@client)
15
+ end
16
+
17
+ def settings
18
+ Settings.new(@client)
19
+ end
20
+
21
+ def status
22
+ Status.new(@client)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class OpenVPN
6
+ # @see https://docs.opnsense.org/development/api/core/openvpn.html#id1
7
+ class Export
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/openvpn/export'
11
+
12
+ def accounts(params = {}, vpnid: nil)
13
+ @client.get("#{BASE_PATH}/accounts/#{vpnid}", params)
14
+ end
15
+
16
+ def download(body = {}, vpnid:, certref: nil)
17
+ @client.post("#{BASE_PATH}/download/#{vpnid}/#{certref}", body)
18
+ end
19
+
20
+ def providers(params = {})
21
+ @client.get("#{BASE_PATH}/providers", params)
22
+ end
23
+
24
+ def store_presets(body = {}, vpnid:)
25
+ @client.post("#{BASE_PATH}/storePresets/#{vpnid}", body)
26
+ end
27
+
28
+ def templates(params = {})
29
+ @client.get("#{BASE_PATH}/templates", params)
30
+ end
31
+
32
+ def validate_presets(body = {}, vpnid:)
33
+ @client.post("#{BASE_PATH}/validatePresets/#{vpnid}", body)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/openvpn.html
6
+ class OpenVPN
7
+ autoload :Export, 'opnsense_api/core/open_vpn/export'
8
+
9
+ include OPNsenseAPI::Core
10
+
11
+ def export
12
+ Export.new(@client)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Proxy
6
+ # @see https://docs.opnsense.org/development/api/core/proxy.html#id1
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/proxy/service'
11
+
12
+ def download_acls(body = {})
13
+ @client.post("#{BASE_PATH}/downloadacls", body)
14
+ end
15
+
16
+ def fetch_acls(body = {})
17
+ @client.post("#{BASE_PATH}/fetchacls", body)
18
+ end
19
+
20
+ def reconfigure(body = {})
21
+ @client.post("#{BASE_PATH}/reconfigure", body)
22
+ end
23
+
24
+ def refresh_template(body = {})
25
+ @client.post("#{BASE_PATH}/refreshTemplate", body)
26
+ end
27
+
28
+ def reset(body = {})
29
+ @client.post("#{BASE_PATH}/reset", body)
30
+ end
31
+
32
+ def restart(body = {})
33
+ @client.post("#{BASE_PATH}/restart", body)
34
+ end
35
+
36
+ def start(body = {})
37
+ @client.post("#{BASE_PATH}/start", body)
38
+ end
39
+
40
+ def status(body = {})
41
+ @client.post("#{BASE_PATH}/status", body)
42
+ end
43
+
44
+ def stop(body = {})
45
+ @client.post("#{BASE_PATH}/stop", body)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Proxy
6
+ # @see https://docs.opnsense.org/development/api/core/proxy.html#id2
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/proxy/settings'
11
+
12
+ def add_pac_match(body = {})
13
+ @client.post("#{BASE_PATH}/addPACMatch", body)
14
+ end
15
+
16
+ def add_pac_proxy(body = {})
17
+ @client.post("#{BASE_PATH}/addPACProxy", body)
18
+ end
19
+
20
+ def add_pac_rule(body = {})
21
+ @client.post("#{BASE_PATH}/addPACRule", body)
22
+ end
23
+
24
+ def add_remote_blacklist(body = {})
25
+ @client.post("#{BASE_PATH}/addRemoteBlacklist", body)
26
+ end
27
+
28
+ def del_pac_match(body = {}, uuid:)
29
+ @client.post("#{BASE_PATH}/delPACMatch/#{uuid}", body)
30
+ end
31
+
32
+ def del_pac_proxy(body = {}, uuid:)
33
+ @client.post("#{BASE_PATH}/delPACProxy/#{uuid}", body)
34
+ end
35
+
36
+ def del_pac_rule(body = {}, uuid:)
37
+ @client.post("#{BASE_PATH}/delPACRule/#{uuid}", body)
38
+ end
39
+
40
+ def del_remote_blacklist(body = {}, uuid:)
41
+ @client.post("#{BASE_PATH}/delRemoteBlacklist/#{uuid}", body)
42
+ end
43
+
44
+ def fetch_rb_cron(body = {})
45
+ @client.post("#{BASE_PATH}/fetchRBCron", body)
46
+ end
47
+
48
+ def get(params = {})
49
+ @client.get("#{BASE_PATH}/get", params)
50
+ end
51
+
52
+ def get_pac_match(params = {}, uuid: nil)
53
+ @client.get("#{BASE_PATH}/getPACMatch/#{uuid}", params)
54
+ end
55
+
56
+ def get_pac_proxy(params = {}, uuid: nil)
57
+ @client.get("#{BASE_PATH}/getPACProxy/#{uuid}", params)
58
+ end
59
+
60
+ def get_pac_rule(params = {}, uuid: nil)
61
+ @client.get("#{BASE_PATH}/getPACRule/#{uuid}", params)
62
+ end
63
+
64
+ def get_remote_blacklist(params = {}, uuid: nil)
65
+ @client.get("#{BASE_PATH}/getRemoteBlacklist/#{uuid}", params)
66
+ end
67
+
68
+ def search_pac_match(body = {})
69
+ @client.post("#{BASE_PATH}/searchPACMatch", body)
70
+ end
71
+
72
+ def search_pac_proxy(body = {})
73
+ @client.post("#{BASE_PATH}/searchPACProxy", body)
74
+ end
75
+
76
+ def search_pac_rule(body = {})
77
+ @client.post("#{BASE_PATH}/searchPACRule", body)
78
+ end
79
+
80
+ def search_remote_blacklists(body = {})
81
+ @client.post("#{BASE_PATH}/searchRemoteBlacklists", body)
82
+ end
83
+
84
+ def set(body = {})
85
+ @client.post("#{BASE_PATH}/set", body)
86
+ end
87
+
88
+ def set_pac_match(body = {}, uuid:)
89
+ @client.post("#{BASE_PATH}/setPACMatch/#{uuid}", body)
90
+ end
91
+
92
+ def set_pac_proxy(body = {}, uuid:)
93
+ @client.post("#{BASE_PATH}/setPACProxy/#{uuid}", body)
94
+ end
95
+
96
+ def set_pac_rule(body = {}, uuid:)
97
+ @client.post("#{BASE_PATH}/setPACRule/#{uuid}", body)
98
+ end
99
+
100
+ def set_remote_blacklist(body = {}, uuid:)
101
+ @client.post("#{BASE_PATH}/setRemoteBlacklist/#{uuid}", body)
102
+ end
103
+
104
+ def toggle_pac_rule(body = {}, uuid:)
105
+ @client.post("#{BASE_PATH}/togglePACRule/#{uuid}", body)
106
+ end
107
+
108
+ def toggle_remote_blacklist(body = {}, uuid:)
109
+ @client.post("#{BASE_PATH}/toggleRemoteBlacklist/#{uuid}", body)
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Proxy
6
+ # @see https://docs.opnsense.org/development/api/core/proxy.html#id3
7
+ class Template
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/proxy/template'
11
+
12
+ def get(params = {})
13
+ @client.get("#{BASE_PATH}/get", params)
14
+ end
15
+
16
+ def reset(body = {})
17
+ @client.post("#{BASE_PATH}/reset", body)
18
+ end
19
+
20
+ def set(body = {})
21
+ @client.post("#{BASE_PATH}/set", body)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/proxy.html
6
+ class Proxy
7
+ autoload :Service, 'opnsense_api/core/proxy/service'
8
+ autoload :Settings, 'opnsense_api/core/proxy/settings'
9
+ autoload :Template, 'opnsense_api/core/proxy/template'
10
+
11
+ include OPNsenseAPI::Core
12
+
13
+ def service
14
+ Service.new(@client)
15
+ end
16
+
17
+ def settings
18
+ Settings.new(@client)
19
+ end
20
+
21
+ def template
22
+ Template.new(@client)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Routes
6
+ # @see https://docs.opnsense.org/development/api/core/routes.html#id1
7
+ class Gateway
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/routes/gateway'
11
+
12
+ def status(params = {})
13
+ @client.get("#{BASE_PATH}/status", params)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Routes
6
+ # @see https://docs.opnsense.org/development/api/core/routes.html#id2
7
+ class Routes
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/routes/routes'
11
+
12
+ def add_route(body = {})
13
+ @client.post("#{BASE_PATH}/addroute", body)
14
+ end
15
+
16
+ def del_route(body = {}, uuid:)
17
+ @client.post("#{BASE_PATH}/delroute/#{uuid}", body)
18
+ end
19
+
20
+ def get(params = {})
21
+ @client.get("#{BASE_PATH}/get", params)
22
+ end
23
+
24
+ def get_route(params = {}, uuid: nil)
25
+ @client.get("#{BASE_PATH}/getroute/#{uuid}", params)
26
+ end
27
+
28
+ def reconfigure(body = {})
29
+ @client.post("#{BASE_PATH}/reconfigure", body)
30
+ end
31
+
32
+ def search_route(body = {})
33
+ @client.post("#{BASE_PATH}/searchroute", body)
34
+ end
35
+
36
+ def set(body = {})
37
+ @client.post("#{BASE_PATH}/set", body)
38
+ end
39
+
40
+ def set_route(body = {}, uuid:)
41
+ @client.post("#{BASE_PATH}/setroute/#{uuid}", body)
42
+ end
43
+
44
+ def toggle_route(body = {}, uuid:, disabled: nil)
45
+ @client.post("#{BASE_PATH}/toggleRoute/#{uuid}/#{disabled}", body)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/routes.html
6
+ class Routes
7
+ autoload :Gateway, 'opnsense_api/core/routes/gateway'
8
+ autoload :Routes, 'opnsense_api/core/routes/routes'
9
+
10
+ include OPNsenseAPI::Core
11
+
12
+ def gateway
13
+ Gateway.new(@client)
14
+ end
15
+
16
+ def routes
17
+ Routes.new(@client)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Syslog
6
+ # @see https://docs.opnsense.org/development/api/core/syslog.html#id1
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/syslog/service'
11
+
12
+ def reconfigure(body = {})
13
+ @client.post("#{BASE_PATH}/reconfigure", body)
14
+ end
15
+
16
+ def restart(body = {})
17
+ @client.post("#{BASE_PATH}/restart", body)
18
+ end
19
+
20
+ def start(body = {})
21
+ @client.post("#{BASE_PATH}/start", body)
22
+ end
23
+
24
+ def stats(params = {})
25
+ @client.get("#{BASE_PATH}/stats", params)
26
+ end
27
+
28
+ def status(params = {})
29
+ @client.get("#{BASE_PATH}/status", params)
30
+ end
31
+
32
+ def stop(body = {})
33
+ @client.post("#{BASE_PATH}/stop", body)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Syslog
6
+ # @see https://docs.opnsense.org/development/api/core/syslog.html#id2
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/syslog/settings'
11
+
12
+ def add_destination(body = {})
13
+ @client.post("#{BASE_PATH}/addDestination", body)
14
+ end
15
+
16
+ def del_destination(body = {})
17
+ @client.post("#{BASE_PATH}/delDestination", body)
18
+ end
19
+
20
+ def get(params = {})
21
+ @client.get("#{BASE_PATH}/get", params)
22
+ end
23
+
24
+ def get_destination(params = {})
25
+ @client.get("#{BASE_PATH}/getDestination", params)
26
+ end
27
+
28
+ def search_destination(body = {})
29
+ @client.post("#{BASE_PATH}/searchDestination", body)
30
+ end
31
+
32
+ def set(body = {})
33
+ @client.post("#{BASE_PATH}/set", body)
34
+ end
35
+
36
+ def set_destination(body = {}, uuid:)
37
+ @client.post("#{BASE_PATH}/setDestination/#{uuid}", body)
38
+ end
39
+
40
+ def toggle_destination(body = {}, uuid:, enabled: nil)
41
+ @client.post("#{BASE_PATH}/toggleDestination/#{uuid}/#{enabled}", body)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/syslog.html
6
+ class Syslog
7
+ autoload :Service, 'opnsense_api/core/syslog/service'
8
+ autoload :Settings, 'opnsense_api/core/syslog/settings'
9
+
10
+ include OPNsenseAPI::Core
11
+
12
+ def service
13
+ Service.new(@client)
14
+ end
15
+
16
+ def settings
17
+ Settings.new(@client)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class TrafficShaping
6
+ # @see https://docs.opnsense.org/development/api/core/trafficshaper.html#id1
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/trafficshaper/service'
11
+
12
+ def flush_reload(body = {})
13
+ @client.post("#{BASE_PATH}/flushReload", body)
14
+ end
15
+
16
+ def reconfigure(body = {})
17
+ @client.post("#{BASE_PATH}/reconfigure", body)
18
+ end
19
+
20
+ def statistics(params = {})
21
+ @client.get("#{BASE_PATH}/statistics", params)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end