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,142 @@
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#id2
7
+ class Settings
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ids/settings'
11
+
12
+ def add_policy(body = {})
13
+ @client.post("#{BASE_PATH}/addPolicy", body)
14
+ end
15
+
16
+ def add_policy_rule(body = {})
17
+ @client.post("#{BASE_PATH}/addPolicyRule", body)
18
+ end
19
+
20
+ def add_user_rule(body = {})
21
+ @client.post("#{BASE_PATH}/addUserRule", body)
22
+ end
23
+
24
+ def check_policy_rule(params = {})
25
+ @client.get("#{BASE_PATH}/checkPolicyRule", params)
26
+ end
27
+
28
+ def del_policy(uuid:)
29
+ @client.post("#{BASE_PATH}/delPolicy/#{uuid}")
30
+ end
31
+
32
+ def del_policy_rule(uuid:)
33
+ @client.post("#{BASE_PATH}/delPolicyRule/#{uuid}")
34
+ end
35
+
36
+ def del_user_rule(uuid:)
37
+ @client.post("#{BASE_PATH}/delUserRule/#{uuid}")
38
+ end
39
+
40
+ def get(params = {})
41
+ @client.get("#{BASE_PATH}/get", params)
42
+ end
43
+
44
+ def get_policy(uuid: nil)
45
+ @client.get("#{BASE_PATH}/getPolicy/#{uuid}")
46
+ end
47
+
48
+ def get_policy_rule(uuid: nil)
49
+ @client.get("#{BASE_PATH}/getPolicyRule/#{uuid}")
50
+ end
51
+
52
+ def get_rule_info(sid: nil)
53
+ @client.get("#{BASE_PATH}/getRuleInfo/#{sid}")
54
+ end
55
+
56
+ def get_ruleset(id:)
57
+ @client.get("#{BASE_PATH}/getRuleset/#{id}")
58
+ end
59
+
60
+ def get_ruleset_properties(params = {})
61
+ @client.get("#{BASE_PATH}/getRulesetProperties", params)
62
+ end
63
+
64
+ def get_user_rule(uuid: nil)
65
+ @client.get("#{BASE_PATH}/getUserRule/#{uuid}")
66
+ end
67
+
68
+ def list_rule_metadata(params = {})
69
+ @client.get("#{BASE_PATH}/listRuleMetadata", params)
70
+ end
71
+
72
+ def list_rulesets(params = {})
73
+ @client.get("#{BASE_PATH}/listRulesets", params)
74
+ end
75
+
76
+ def search_installed_rules(body = {})
77
+ @client.post("#{BASE_PATH}/searchInstalledRules", body)
78
+ end
79
+
80
+ def search_policy(body = {})
81
+ @client.post("#{BASE_PATH}/searchPolicy", body)
82
+ end
83
+
84
+ def search_policy_rule(body = {})
85
+ @client.post("#{BASE_PATH}/searchPolicyRule", body)
86
+ end
87
+
88
+ def search_user_rule(body = {})
89
+ @client.post("#{BASE_PATH}/searchUserRule", body)
90
+ end
91
+
92
+ def set(body = {})
93
+ @client.post("#{BASE_PATH}/set", body)
94
+ end
95
+
96
+ def set_policy(body = {}, uuid:)
97
+ @client.post("#{BASE_PATH}/setPolicy/#{uuid}", body)
98
+ end
99
+
100
+ def set_policy_rule(body = {}, uuid:)
101
+ @client.post("#{BASE_PATH}/setPolicyRule/#{uuid}", body)
102
+ end
103
+
104
+ def set_rule(body = {}, sid:)
105
+ @client.post("#{BASE_PATH}/setRule/#{sid}", body)
106
+ end
107
+
108
+ def set_ruleset(body = {}, filename:)
109
+ @client.post("#{BASE_PATH}/setRuleset/#{filename}", body)
110
+ end
111
+
112
+ def set_ruleset_properties(body = {})
113
+ @client.post("#{BASE_PATH}/setRulesetProperties", body)
114
+ end
115
+
116
+ def set_user_rule(body = {}, uuid:)
117
+ @client.post("#{BASE_PATH}/setUserRule/#{uuid}", body)
118
+ end
119
+
120
+ def toggle_policy(uuid:, enabled: nil)
121
+ @client.post("#{BASE_PATH}/togglePolicy/#{uuid}/#{enabled}")
122
+ end
123
+
124
+ def toggle_policy_rule(uuid:, enabled: nil)
125
+ @client.post("#{BASE_PATH}/togglePolicyRule/#{uuid}/#{enabled}")
126
+ end
127
+
128
+ def toggle_rule(sid:, enabled: nil)
129
+ @client.post("#{BASE_PATH}/toggleRule/#{sid}/#{enabled}")
130
+ end
131
+
132
+ def toggle_ruleset(id:, enabled: nil)
133
+ @client.post("#{BASE_PATH}/toggleRuleset/#{id}/#{enabled}")
134
+ end
135
+
136
+ def toggle_user_rule(uuid:, enabled: nil)
137
+ @client.post("#{BASE_PATH}/toggleUserRule/#{uuid}/#{enabled}")
138
+ end
139
+ end
140
+ end
141
+ end
142
+ 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/ids.html
6
+ class IDS
7
+ autoload :Service, 'opnsense_api/core/ids/service'
8
+ autoload :Settings, 'opnsense_api/core/ids/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,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Interfaces
6
+ # Common methods for all interface types
7
+ class Base
8
+ include OPNsenseAPI::Core
9
+
10
+ def add_item(body = {})
11
+ @client.post("#{BASE_PATH}/addItem", body)
12
+ end
13
+
14
+ def del_item(uuid:)
15
+ @client.post("#{BASE_PATH}/delItem/#{uuid}")
16
+ end
17
+
18
+ def get(params = {})
19
+ @client.get("#{BASE_PATH}/get", params)
20
+ end
21
+
22
+ def get_item(uuid: nil)
23
+ @client.get("#{BASE_PATH}/getItem/#{uuid}")
24
+ end
25
+
26
+ def reconfigure(body = {})
27
+ @client.post("#{BASE_PATH}/reconfigure", body)
28
+ end
29
+
30
+ def search_item(body = {})
31
+ @client.post("#{BASE_PATH}/searchItem", body)
32
+ end
33
+
34
+ def set(body = {})
35
+ @client.post("#{BASE_PATH}/set", body)
36
+ end
37
+
38
+ def set_item(uuid:, body: {})
39
+ @client.post("#{BASE_PATH}/setItem/#{uuid}", body)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Interfaces
6
+ # @see https://docs.opnsense.org/development/api/core/interfaces.html#id1
7
+ class LoopbackSettings < Base
8
+ BASE_PATH = '/interfaces/loopback_settings'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Interfaces
6
+ # @see https://docs.opnsense.org/development/api/core/interfaces.html#id2
7
+ class VIPSettings < Base
8
+ BASE_PATH = '/interfaces/vip_settings'
9
+
10
+ def get_unused_vhid(params = {})
11
+ @client.get("#{BASE_PATH}/getUnusedVhid", params)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Interfaces
6
+ # @see https://docs.opnsense.org/development/api/core/interfaces.html#id3
7
+ class VLANSettings < Base
8
+ BASE_PATH = '/interfaces/vlan_settings'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class Interfaces
6
+ # @see https://docs.opnsense.org/development/api/core/interfaces.html#id4
7
+ class VXLANSettings < Base
8
+ BASE_PATH = '/interfaces/vxlan_settings'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/interfaces.html
6
+ class Interfaces
7
+ autoload :Base, 'opnsense_api/core/interfaces/base'
8
+ autoload :LoopbackSettings, 'opnsense_api/core/interfaces/loopback_settings'
9
+ autoload :VIPSettings, 'opnsense_api/core/interfaces/vip_settings'
10
+ autoload :VLANSettings, 'opnsense_api/core/interfaces/vlan_settings'
11
+ autoload :VXLANSettings, 'opnsense_api/core/interfaces/vxlan_settings'
12
+
13
+ include OPNsenseAPI::Core
14
+
15
+ def loopback_settings
16
+ LoopbackSettings.new(@client)
17
+ end
18
+
19
+ def vip_settings
20
+ VIPSettings.new(@client)
21
+ end
22
+
23
+ def vlan_settings
24
+ VLANSettings.new(@client)
25
+ end
26
+
27
+ def vxlan_settings
28
+ VXLANSettings.new(@client)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id1
7
+ class KeyPairs
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/key_pairs'
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_key_pair(type:, size: nil)
21
+ @client.get("#{BASE_PATH}/getKeyPair/#{type}/#{size}")
22
+ end
23
+
24
+ def get(params = {})
25
+ @client.get("#{BASE_PATH}/get", params)
26
+ end
27
+
28
+ def get_item(uuid: nil)
29
+ @client.get("#{BASE_PATH}/getItem/#{uuid}")
30
+ end
31
+
32
+ def search_item(body = {})
33
+ @client.post("#{BASE_PATH}/searchItem", 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,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id2
7
+ class Leases
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/key_pairs'
11
+
12
+ def pools(params = {})
13
+ @client.get("#{BASE_PATH}/pools", params)
14
+ end
15
+
16
+ def search(params = {})
17
+ @client.get("#{BASE_PATH}/search", params)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id3
7
+ class LegacySubsystem
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/legacy_subsystem'
11
+
12
+ def apply_config(body = {})
13
+ @client.post("#{BASE_PATH}/applyConfig", body)
14
+ end
15
+
16
+ def status(params = {})
17
+ @client.get("#{BASE_PATH}/status", params)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id4
7
+ class PreSharedKeys
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/pre_shared_keys'
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 reconfigure(body = {})
29
+ @client.post("#{BASE_PATH}/reconfigure", body)
30
+ end
31
+
32
+ def search_item(body = {})
33
+ @client.post("#{BASE_PATH}/searchItem", 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,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id5
7
+ class SAD
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/sad'
11
+
12
+ def delete(body = {}, id:)
13
+ @client.post("#{BASE_PATH}/delete/#{id}", body)
14
+ end
15
+
16
+ def search(params = {})
17
+ @client.get(BASE_PATH, params)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id6
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/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 status(params = {})
25
+ @client.get("#{BASE_PATH}/status", params)
26
+ end
27
+
28
+ def stop(body = {})
29
+ @client.post("#{BASE_PATH}/stop", body)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id7
7
+ class Sessions
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/sessions'
11
+
12
+ def connect(body = {}, id:)
13
+ @client.post("#{BASE_PATH}/connect/#{id}", body)
14
+ end
15
+
16
+ def disconnect(body = {}, id:)
17
+ @client.post("#{BASE_PATH}/disconnect/#{id}", body)
18
+ end
19
+
20
+ def search_phase_1(params = {})
21
+ @client.get("#{BASE_PATH}/searchPhase1", params)
22
+ end
23
+
24
+ def search_phase_2(params = {})
25
+ @client.get("#{BASE_PATH}/searchPhase2", params)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id8
7
+ class SPD
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/spd'
11
+
12
+ def delete(body = {}, id:)
13
+ @client.post("#{BASE_PATH}/delete/#{id}", body)
14
+ end
15
+
16
+ def search(params = {})
17
+ @client.get("#{BASE_PATH}/search", params)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ class IPSec
6
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html#id9
7
+ class Tunnel
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/ipsec/tunnel'
11
+
12
+ def del_phase_1(body = {}, ikeid:)
13
+ @client.post("#{BASE_PATH}/delPhase1/#{ikeid}", body)
14
+ end
15
+
16
+ def del_phase_2(body = {}, seqid:)
17
+ @client.post("#{BASE_PATH}/delPhase2/#{seqid}", body)
18
+ end
19
+
20
+ def search_phase_1(params = {})
21
+ @client.get("#{BASE_PATH}/searchPhase1", params)
22
+ end
23
+
24
+ def search_phase_2(params = {})
25
+ @client.get("#{BASE_PATH}/searchPhase2", params)
26
+ end
27
+
28
+ def toggle(body = {}, enabled: nil)
29
+ @client.post("#{BASE_PATH}/toggle/#{enabled}", body)
30
+ end
31
+
32
+ def toggle_phase_1(body = {}, ikeid:, enabled: nil)
33
+ @client.post("#{BASE_PATH}/togglePhase1/#{ikeid}/#{enabled}", body)
34
+ end
35
+
36
+ def toggle_phase_2(body = {}, seqid:, enabled: nil)
37
+ @client.post("#{BASE_PATH}/togglePhase2/#{seqid}/#{enabled}", body)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OPNsenseAPI
4
+ module Core
5
+ # @see https://docs.opnsense.org/development/api/core/ipsec.html
6
+ class IPSec
7
+ autoload :KeyPairs, 'opnsense_api/core/interfaces/key_pairs'
8
+ autoload :leases, 'opnsense_api/core/interfaces/leases'
9
+ autoload :LegacySubsystem, 'opnsense_api/core/interfaces/legacy_subsystem'
10
+ autoload :PreSharedKeys, 'opnsense_api/core/interfaces/pre_shared_keys'
11
+ autoload :SAD, 'opnsense_api/core/interfaces/sad'
12
+ autoload :Service, 'opnsense_api/core/interfaces/service'
13
+ autoload :Sessions, 'opnsense_api/core/interfaces/sessions'
14
+ autoload :SPD, 'opnsense_api/core/interfaces/spd'
15
+ autoload :Tunnel, 'opnsense_api/core/interfaces/tunnel'
16
+
17
+ include OPNsenseAPI::Core
18
+
19
+ def key_pairs
20
+ KeyPairs.new(@client)
21
+ end
22
+
23
+ def leases
24
+ Leases.new(@client)
25
+ end
26
+
27
+ def legacy_subsystem
28
+ LegacySubsystem.new(@client)
29
+ end
30
+
31
+ def pre_shared_keys
32
+ PreSharedKeys.new(@client)
33
+ end
34
+
35
+ def sad
36
+ SAD.new(@client)
37
+ end
38
+
39
+ def service
40
+ Service.new(@client)
41
+ end
42
+
43
+ def sessions
44
+ Sessions.new(@client)
45
+ end
46
+
47
+ def spd
48
+ SPD.new(@client)
49
+ end
50
+
51
+ def tunnel
52
+ Tunnel.new(@client)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,38 @@
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#id1
7
+ class Service
8
+ include OPNsenseAPI::Core
9
+
10
+ BASE_PATH = '/monit/service'
11
+
12
+ def check(body = {})
13
+ @client.post("#{BASE_PATH}/check", body)
14
+ end
15
+
16
+ def reconfigure(body = {})
17
+ @client.post("#{BASE_PATH}/reconfigure", body)
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