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,94 @@
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#id2
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/trafficshaper/settings'
11
+
12
+ def add_pipe(body = {})
13
+ @client.post("#{BASE_PATH}/addPipe", body)
14
+ end
15
+
16
+ def add_queue(body = {})
17
+ @client.post("#{BASE_PATH}/addQueue", body)
18
+ end
19
+
20
+ def add_rule(body = {})
21
+ @client.post("#{BASE_PATH}/addRule", body)
22
+ end
23
+
24
+ def del_pipe(body = {}, uuid:)
25
+ @client.post("#{BASE_PATH}/delPipe/#{uuid}", body)
26
+ end
27
+
28
+ def del_queue(body = {}, uuid:)
29
+ @client.post("#{BASE_PATH}/delQueue/#{uuid}", body)
30
+ end
31
+
32
+ def del_rule(body = {}, uuid:)
33
+ @client.post("#{BASE_PATH}/delRule/#{uuid}", body)
34
+ end
35
+
36
+ def get(params = {})
37
+ @client.get("#{BASE_PATH}/get", params)
38
+ end
39
+
40
+ def get_pipe(params = {}, uuid: nil)
41
+ @client.get("#{BASE_PATH}/getPipe/#{uuid}", params)
42
+ end
43
+
44
+ def get_queue(params = {}, uuid: nil)
45
+ @client.get("#{BASE_PATH}/getQueue/#{uuid}", params)
46
+ end
47
+
48
+ def get_rule(params = {}, uuid: nil)
49
+ @client.get("#{BASE_PATH}/getRule/#{uuid}", params)
50
+ end
51
+
52
+ def search_pipes(body = {})
53
+ @client.post("#{BASE_PATH}/searchPipes", body)
54
+ end
55
+
56
+ def search_queues(body = {})
57
+ @client.post("#{BASE_PATH}/searchQueues", body)
58
+ end
59
+
60
+ def search_rules(body = {})
61
+ @client.post("#{BASE_PATH}/searchRules", body)
62
+ end
63
+
64
+ def set(body = {})
65
+ @client.post("#{BASE_PATH}/set", body)
66
+ end
67
+
68
+ def set_pipe(body = {}, uuid:)
69
+ @client.post("#{BASE_PATH}/setPipe/#{uuid}", body)
70
+ end
71
+
72
+ def set_queue(body = {}, uuid:)
73
+ @client.post("#{BASE_PATH}/setQueue/#{uuid}", body)
74
+ end
75
+
76
+ def set_rule(body = {}, uuid:)
77
+ @client.post("#{BASE_PATH}/setRule/#{uuid}", body)
78
+ end
79
+
80
+ def toggle_pipe(body = {}, uuid:, enabled: nil)
81
+ @client.post("#{BASE_PATH}/togglePipe/#{uuid}/#{enabled}", body)
82
+ end
83
+
84
+ def toggle_queue(body = {}, uuid:, enabled: nil)
85
+ @client.post("#{BASE_PATH}/toggleQueue/#{uuid}/#{enabled}", body)
86
+ end
87
+
88
+ def toggle_rule(body = {}, uuid:, enabled: nil)
89
+ @client.post("#{BASE_PATH}/toggleRule/#{uuid}/#{enabled}", body)
90
+ end
91
+ end
92
+ end
93
+ end
94
+ 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/trafficshaper.html
6
+ class TrafficShaping
7
+ autoload :Service, 'opnsense_api/core/traffic_shaping/service'
8
+ autoload :Settings, 'opnsense_api/core/traffic_shaping/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,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Unbound
6
+ # @see https://docs.opnsense.org/development/api/core/unbound.html#id1
7
+ class Diagnostics
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/unbound/diagnostics'
11
+
12
+ def dump_cache(params = {})
13
+ @client.get("#{BASE_PATH}/dumpcache", params)
14
+ end
15
+
16
+ def dump_infra(params = {})
17
+ @client.get("#{BASE_PATH}/dumpinfra", params)
18
+ end
19
+
20
+ def list_insecure(params = {})
21
+ @client.get("#{BASE_PATH}/listinsecure", params)
22
+ end
23
+
24
+ def list_local_data(params = {})
25
+ @client.get("#{BASE_PATH}/listlocaldata", params)
26
+ end
27
+
28
+ def list_local_zones(params = {})
29
+ @client.get("#{BASE_PATH}/listlocalzones", params)
30
+ end
31
+
32
+ def stats(params = {})
33
+ @client.get("#{BASE_PATH}/stats", params)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Unbound
6
+ # @see https://docs.opnsense.org/development/api/core/unbound.html#id2
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/diagnostics/service'
11
+
12
+ def dnsbl(params = {})
13
+ @client.get("#{BASE_PATH}/dnsbl", params)
14
+ end
15
+
16
+ def reconfigure(params = {})
17
+ @client.get("#{BASE_PATH}/reconfigure", params)
18
+ end
19
+
20
+ def restart(body = {})
21
+ @client.post("#{BASE_PATH}/restart", body)
22
+ end
23
+
24
+ def start(body = {})
25
+ @client.post("#{BASE_PATH}/start", body)
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,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Unbound
6
+ # @see https://docs.opnsense.org/development/api/core/unbound.html#id3
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/diagnostics/settings'
11
+
12
+ def add_domain_override(body = {})
13
+ @client.post("#{BASE_PATH}/addDomainOverride", body)
14
+ end
15
+
16
+ def add_forward(body = {})
17
+ @client.post("#{BASE_PATH}/addForward", body)
18
+ end
19
+
20
+ def add_host_alias(body = {})
21
+ @client.post("#{BASE_PATH}/addHostAlias", body)
22
+ end
23
+
24
+ def add_host_override(body = {})
25
+ @client.post("#{BASE_PATH}/addHostOverride", body)
26
+ end
27
+
28
+ def del_domain_override(body = {}, uuid:)
29
+ @client.post("#{BASE_PATH}/delDomainOverride/#{uuid}", body)
30
+ end
31
+
32
+ def del_forward(body = {}, uuid:)
33
+ @client.post("#{BASE_PATH}/delForward/#{uuid}", body)
34
+ end
35
+
36
+ def del_host_alias(body = {}, uuid:)
37
+ @client.post("#{BASE_PATH}/delHostAlias/#{uuid}", body)
38
+ end
39
+
40
+ def del_host_override(body = {}, uuid:)
41
+ @client.post("#{BASE_PATH}/delHostOverride/#{uuid}", body)
42
+ end
43
+
44
+ def get(params = {})
45
+ @client.get("#{BASE_PATH}/get", params)
46
+ end
47
+
48
+ def get_domain_override(params = {}, uuid: nil)
49
+ @client.get("#{BASE_PATH}/getDomainOverride/#{uuid}", params)
50
+ end
51
+
52
+ def get_forward(params = {}, uuid: nil)
53
+ @client.get("#{BASE_PATH}/getForward/#{uuid}", params)
54
+ end
55
+
56
+ def get_host_alias(params = {}, uuid: nil)
57
+ @client.get("#{BASE_PATH}/getHostAlias/#{uuid}", params)
58
+ end
59
+
60
+ def get_host_override(params = {}, uuid: nil)
61
+ @client.get("#{BASE_PATH}/getHostOverride/#{uuid}", params)
62
+ end
63
+
64
+ def get_nameservers(params = {})
65
+ @client.get("#{BASE_PATH}/getNameservers", params)
66
+ end
67
+
68
+ def search_domain_override(body = {})
69
+ @client.post("#{BASE_PATH}/searchDomainOverride", body)
70
+ end
71
+
72
+ def search_forward(body = {})
73
+ @client.post("#{BASE_PATH}/searchForward", body)
74
+ end
75
+
76
+ def search_host_alias(body = {})
77
+ @client.post("#{BASE_PATH}/searchHostAlias", body)
78
+ end
79
+
80
+ def search_host_override(body = {})
81
+ @client.post("#{BASE_PATH}/searchHostOverride", body)
82
+ end
83
+
84
+ def set(body = {})
85
+ @client.post("#{BASE_PATH}/set", body)
86
+ end
87
+
88
+ def set_domain_override(body = {}, uuid:)
89
+ @client.post("#{BASE_PATH}/setDomainOverride/#{uuid}", body)
90
+ end
91
+
92
+ def set_forward(body = {}, uuid:)
93
+ @client.post("#{BASE_PATH}/setForward/#{uuid}", body)
94
+ end
95
+
96
+ def set_host_alias(body = {}, uuid:)
97
+ @client.post("#{BASE_PATH}/setHostAlias/#{uuid}", body)
98
+ end
99
+
100
+ def set_host_override(body = {}, uuid:)
101
+ @client.post("#{BASE_PATH}/setHostOverride/#{uuid}", body)
102
+ end
103
+
104
+ def toggle_domain_override(body = {}, uuid:, enabled: nil)
105
+ @client.post("#{BASE_PATH}/toggleDomainOverride/#{uuid}/#{enabled}", body)
106
+ end
107
+
108
+ def toggle_forward(body = {}, uuid:, enabled: nil)
109
+ @client.post("#{BASE_PATH}/toggleForward/#{uuid}/#{enabled}", body)
110
+ end
111
+
112
+ def toggle_host_alias(body = {}, uuid:, enabled: nil)
113
+ @client.post("#{BASE_PATH}/toggleHostAlias/#{uuid}/#{enabled}", body)
114
+ end
115
+
116
+ def toggle_host_override(body = {}, uuid:, enabled: nil)
117
+ @client.post("#{BASE_PATH}/toggleHostOverride/#{uuid}/#{enabled}", body)
118
+ end
119
+ end
120
+ end
121
+ end
122
+ 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/unbound.html
6
+ class Unbound
7
+ autoload :Diagnostics, 'opnsense_api/core/unbound/diagnostics'
8
+ autoload :Service, 'opnsense_api/core/unbound/service'
9
+ autoload :Settings, 'opnsense_api/core/unbound/settings'
10
+
11
+ include OPNsenseAPI::Core
12
+
13
+ def diagnostics
14
+ Diagnostics.new(@client)
15
+ end
16
+
17
+ def service
18
+ Service.new(@client)
19
+ end
20
+
21
+ def settings
22
+ Settings.new(@client)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ # @see https://docs.opnsense.org/development/api.html#core-api
5
+ module Core
6
+ autoload :CaptivePortal, 'opnsense_api/core/captive_portal'
7
+ autoload :Core, 'opnsense_api/core/core'
8
+ autoload :Cron, 'opnsense_api/core/cron'
9
+ autoload :Diagnostics, 'opnsense_api/core/diagnostics'
10
+ autoload :Firewall, 'opnsense_api/core/firewall'
11
+ autoload :Firmware, 'opnsense_api/core/firmware'
12
+ autoload :IDS, 'opnsense_api/core/ids'
13
+ autoload :Interfaces, 'opnsense_api/core/interfaces'
14
+ autoload :IPSec, 'opnsense_api/core/ipsec'
15
+ autoload :Monit, 'opnsense_api/core/monit'
16
+ autoload :OpenVPN, 'opnsense_api/core/open_vpn'
17
+ autoload :Proxy, 'opnsense_api/core/proxy'
18
+ autoload :Routes, 'opnsense_api/core/routes'
19
+ autoload :Syslog, 'opnsense_api/core/syslog'
20
+ autoload :TrafficShaper, 'opnsense_api/core/traffic_shaper'
21
+ autoload :Unbound, 'opnsense_api/core/unbound'
22
+
23
+ def initialize(client)
24
+ @client = client
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ class Error < StandardError; end
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'opnsense_api/error'
4
+ require_relative 'opnsense_api/version'
5
+
6
+ module OPNsenseAPI
7
+ autoload :Client, 'opnsense_api/client'
8
+
9
+ autoload :Core, 'opnsense_api/core'
10
+ end
@@ -0,0 +1,55 @@
1
+ module OPNsenseAPI
2
+ class Client
3
+ BASE_PATH: String
4
+
5
+ attr_reader host: URI
6
+ attr_reader api_key: String
7
+ attr_reader api_secret: String
8
+ attr_reader options: Hash[Symbol, untyped]
9
+
10
+ def initialize: (URI | String host, String api_key, String api_secret, **Hash[Symbol, untyped] options) -> void
11
+
12
+ def captive_portal: () -> Core::CaptivePortal
13
+
14
+ def core: () -> Core::Core
15
+
16
+ def cron: () -> Core::Cron
17
+
18
+ def diagnostics: () -> Core::Diagnostics
19
+
20
+ def firewall: () -> Core::Firewall
21
+
22
+ def ids: () -> Core::IDS
23
+
24
+ def interfaces: () -> Core::Interfaces
25
+
26
+ def ipsec: () -> Core::IPSec
27
+
28
+ def monit: () -> Core::Monit
29
+
30
+ def open_vpn: () -> Core::OpenVPN
31
+
32
+ def proxy: () -> Core::Proxy
33
+
34
+ def routes: () -> Core::Routes
35
+
36
+ def syslog: () -> Core::Syslog
37
+
38
+ def traffic_shaping: () -> Core::TrafficShaping
39
+
40
+ def unbound: () -> Core::Unbound
41
+
42
+ def get: (String path, ?Hash[untyped, untyped] params) -> untyped
43
+
44
+ def post: (String path, ?untyped body) -> untyped
45
+
46
+ private
47
+
48
+ @http: Net::HTTP
49
+ def http: -> Net::HTTP
50
+
51
+ def setup_request: (Net::HTTP::Get | Net::HTTP::Post request) -> void
52
+
53
+ def handle_response: (Net::HTTPResponse response) -> untyped
54
+ end
55
+ end
@@ -0,0 +1,17 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ class Access
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def logoff: (?zoneid: Integer) -> untyped
10
+
11
+ def logon: (?zoneid: Integer, ?body: Hash[untyped, untyped]) -> untyped
12
+
13
+ def status: (?zoneid: Integer, ?body: Hash[untyped, untyped]) -> untyped
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ class Service
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def del_template: (uuid: String) -> untyped
10
+
11
+ def get_template: (?fileid: String?) -> untyped
12
+
13
+ def reconfigure: (?Hash[untyped, untyped] body) -> untyped
14
+
15
+ def save_template: (?Hash[untyped, untyped] body) -> untyped
16
+
17
+ def search_templates: (?Hash[untyped, untyped] body) -> untyped
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ class Session
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def connect: (?zoneid: Integer, ?body: Hash[untyped, untyped]) -> untyped
10
+
11
+ def disconnect: (?zoneid: Integer, ?body: Hash[untyped, untyped]) -> untyped
12
+
13
+ def list: (?zoneid: Integer) -> untyped
14
+
15
+ def zones: () -> untyped
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,25 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ class Settings
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def add_zone: (?Hash[untyped, untyped] body) -> untyped
10
+
11
+ def del_zone: (uuid: String) -> untyped
12
+
13
+ def get: () -> untyped
14
+
15
+ def get_zone: (uuid: String) -> untyped
16
+
17
+ def search_zones: (?Hash[untyped, untyped] body) -> untyped
18
+
19
+ def set_zone: (uuid: String, ?body: Hash[untyped, untyped]) -> untyped
20
+
21
+ def toggle_zone: (uuid: String, ?enabled: bool?, ?body: Hash[untyped, untyped]) -> untyped
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ class Voucher
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def drop_expired_vouchers: (provider: String, group: String, ?body: Hash[untyped, untyped]) -> untyped
10
+
11
+ def drop_voucher_group: (provider: String, group: String, ?body: Hash[untyped, untyped]) -> untyped
12
+
13
+ def expire_voucher: (provider: String, ?body: Hash[untyped, untyped]) -> untyped
14
+
15
+ def generate_vouchers: (provider: String, ?body: Hash[untyped, untyped]) -> untyped
16
+
17
+ def list_providers: () -> untyped
18
+
19
+ def list_voucher_groups: (provider: String) -> untyped
20
+
21
+ def list_vouchers: (provider: String, group: String) -> untyped
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class CaptivePortal
4
+ include OPNsenseAPI::Core
5
+
6
+ def access: () -> Access
7
+
8
+ def service: () -> Service
9
+
10
+ def session: () -> Session
11
+
12
+ def settings: () -> Settings
13
+
14
+ def voucher: () -> Voucher
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,37 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class Core
4
+ class Firmware
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def poweroff: (?Hash[untyped, untyped] body) -> untyped
10
+
11
+ def reboot: (?Hash[untyped, untyped] body) -> untyped
12
+
13
+ def running: (?Hash[untyped, untyped] params) -> untyped
14
+
15
+ def get_firmware_config: (?Hash[untyped, untyped] params) -> untyped
16
+
17
+ def get_firmware_options: (?Hash[untyped, untyped] params) -> untyped
18
+
19
+ def set_firmware_config: (?Hash[untyped, untyped] body) -> untyped
20
+
21
+ def info: (?Hash[untyped, untyped] params) -> untyped
22
+
23
+ def status: (?params: Hash[untyped, untyped], ?body: Hash[untyped, untyped]) -> untyped
24
+
25
+ def audit: (?Hash[untyped, untyped] body) -> untyped
26
+
27
+ def update: (?Hash[untyped, untyped] body) -> untyped
28
+
29
+ def upgrade: (?Hash[untyped, untyped] body) -> untyped
30
+
31
+ def upgrade_status: (?Hash[untyped, untyped] params) -> untyped
32
+
33
+ def changelog: (version: String) -> untyped
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class Core
4
+ class Menu
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def search: () -> untyped
10
+
11
+ def tree: () -> untyped
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class Core
4
+ class System
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def dismiss_status: () -> untyped
10
+
11
+ def halt: () -> untyped
12
+
13
+ def reboot: () -> untyped
14
+
15
+ def status: () -> untyped
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class Core
4
+ include OPNsenseAPI::Core
5
+
6
+ def firmware: () -> Firmware
7
+
8
+ def menu: () -> Menu
9
+
10
+ def system: () -> System
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module OPNsenseAPI
2
+ module Core
3
+ class Cron
4
+ class Service
5
+ include OPNsenseAPI::Core
6
+
7
+ BASE_PATH: String
8
+
9
+ def reconfigure: (?body: Hash[untyped, untyped]) -> untyped
10
+ end
11
+ end
12
+ end
13
+ end