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.
- checksums.yaml +7 -0
- data/lib/opnsense_api/client.rb +125 -0
- data/lib/opnsense_api/core/captive_portal/access.rb +25 -0
- data/lib/opnsense_api/core/captive_portal/service.rb +33 -0
- data/lib/opnsense_api/core/captive_portal/session.rb +29 -0
- data/lib/opnsense_api/core/captive_portal/settings.rb +41 -0
- data/lib/opnsense_api/core/captive_portal/voucher.rb +41 -0
- data/lib/opnsense_api/core/captive_portal.rb +36 -0
- data/lib/opnsense_api/core/core/firmware.rb +70 -0
- data/lib/opnsense_api/core/core/menu.rb +21 -0
- data/lib/opnsense_api/core/core/system.rb +29 -0
- data/lib/opnsense_api/core/core.rb +26 -0
- data/lib/opnsense_api/core/cron/service.rb +17 -0
- data/lib/opnsense_api/core/cron/settings.rb +45 -0
- data/lib/opnsense_api/core/cron.rb +21 -0
- data/lib/opnsense_api/core/diagnostics/activity.rb +17 -0
- data/lib/opnsense_api/core/diagnostics/dns.rb +17 -0
- data/lib/opnsense_api/core/diagnostics/dns_diagnostics.rb +25 -0
- data/lib/opnsense_api/core/diagnostics/firewall.rb +57 -0
- data/lib/opnsense_api/core/diagnostics/interface.rb +81 -0
- data/lib/opnsense_api/core/diagnostics/lv_template.rb +41 -0
- data/lib/opnsense_api/core/diagnostics/netflow.rb +37 -0
- data/lib/opnsense_api/core/diagnostics/network_insight.rb +29 -0
- data/lib/opnsense_api/core/diagnostics/packet_capture.rb +53 -0
- data/lib/opnsense_api/core/diagnostics/system.rb +17 -0
- data/lib/opnsense_api/core/diagnostics/system_health.rb +21 -0
- data/lib/opnsense_api/core/diagnostics/traffic.rb +21 -0
- data/lib/opnsense_api/core/diagnostics.rb +71 -0
- data/lib/opnsense_api/core/firewall/alias.rb +83 -0
- data/lib/opnsense_api/core/firewall/alias_util.rb +43 -0
- data/lib/opnsense_api/core/firewall/category.rb +46 -0
- data/lib/opnsense_api/core/firewall/filter_util.rb +18 -0
- data/lib/opnsense_api/core/firewall.rb +31 -0
- data/lib/opnsense_api/core/ids/service.rb +58 -0
- data/lib/opnsense_api/core/ids/settings.rb +142 -0
- data/lib/opnsense_api/core/ids.rb +21 -0
- data/lib/opnsense_api/core/interfaces/base.rb +44 -0
- data/lib/opnsense_api/core/interfaces/loopback_settings.rb +12 -0
- data/lib/opnsense_api/core/interfaces/vip_settings.rb +16 -0
- data/lib/opnsense_api/core/interfaces/vlan_settings.rb +12 -0
- data/lib/opnsense_api/core/interfaces/vxlan_settings.rb +12 -0
- data/lib/opnsense_api/core/interfaces.rb +32 -0
- data/lib/opnsense_api/core/ipsec/key_pairs.rb +46 -0
- data/lib/opnsense_api/core/ipsec/leases.rb +22 -0
- data/lib/opnsense_api/core/ipsec/legacy_subsystem.rb +22 -0
- data/lib/opnsense_api/core/ipsec/pre_shared_keys.rb +46 -0
- data/lib/opnsense_api/core/ipsec/sad.rb +22 -0
- data/lib/opnsense_api/core/ipsec/service.rb +34 -0
- data/lib/opnsense_api/core/ipsec/sessions.rb +30 -0
- data/lib/opnsense_api/core/ipsec/spd.rb +22 -0
- data/lib/opnsense_api/core/ipsec/tunnel.rb +42 -0
- data/lib/opnsense_api/core/ipsec.rb +56 -0
- data/lib/opnsense_api/core/monit/service.rb +38 -0
- data/lib/opnsense_api/core/monit/settings.rb +98 -0
- data/lib/opnsense_api/core/monit/status.rb +18 -0
- data/lib/opnsense_api/core/monit.rb +26 -0
- data/lib/opnsense_api/core/open_vpn/export.rb +38 -0
- data/lib/opnsense_api/core/open_vpn.rb +16 -0
- data/lib/opnsense_api/core/proxy/service.rb +50 -0
- data/lib/opnsense_api/core/proxy/settings.rb +114 -0
- data/lib/opnsense_api/core/proxy/template.rb +26 -0
- data/lib/opnsense_api/core/proxy.rb +26 -0
- data/lib/opnsense_api/core/routes/gateway.rb +18 -0
- data/lib/opnsense_api/core/routes/routes.rb +50 -0
- data/lib/opnsense_api/core/routes.rb +21 -0
- data/lib/opnsense_api/core/syslog/service.rb +38 -0
- data/lib/opnsense_api/core/syslog/settings.rb +46 -0
- data/lib/opnsense_api/core/syslog.rb +21 -0
- data/lib/opnsense_api/core/traffic_shaping/service.rb +26 -0
- data/lib/opnsense_api/core/traffic_shaping/settings.rb +94 -0
- data/lib/opnsense_api/core/traffic_shaping.rb +21 -0
- data/lib/opnsense_api/core/unbound/diagnostics.rb +38 -0
- data/lib/opnsense_api/core/unbound/service.rb +38 -0
- data/lib/opnsense_api/core/unbound/settings.rb +122 -0
- data/lib/opnsense_api/core/unbound.rb +26 -0
- data/lib/opnsense_api/core.rb +27 -0
- data/lib/opnsense_api/error.rb +5 -0
- data/lib/opnsense_api/version.rb +5 -0
- data/lib/opnsense_api.rb +10 -0
- data/sig/lib/opnsense_api/client.rbs +55 -0
- data/sig/lib/opnsense_api/core/captive_portal/access.rbs +17 -0
- data/sig/lib/opnsense_api/core/captive_portal/service.rbs +21 -0
- data/sig/lib/opnsense_api/core/captive_portal/session.rbs +19 -0
- data/sig/lib/opnsense_api/core/captive_portal/settings.rbs +25 -0
- data/sig/lib/opnsense_api/core/captive_portal/voucher.rbs +25 -0
- data/sig/lib/opnsense_api/core/captive_portal.rbs +17 -0
- data/sig/lib/opnsense_api/core/core/firmware.rbs +37 -0
- data/sig/lib/opnsense_api/core/core/menu.rbs +15 -0
- data/sig/lib/opnsense_api/core/core/system.rbs +19 -0
- data/sig/lib/opnsense_api/core/core.rbs +13 -0
- data/sig/lib/opnsense_api/core/cron/service.rbs +13 -0
- data/sig/lib/opnsense_api/core/cron/settings.rbs +27 -0
- data/sig/lib/opnsense_api/core/cron.rbs +11 -0
- data/sig/lib/opnsense_api/core/diagnostics/activity.rbs +13 -0
- data/sig/lib/opnsense_api/core/diagnostics/dns.rbs +13 -0
- data/sig/lib/opnsense_api/core/diagnostics/dns_diagnostics.rbs +15 -0
- data/sig/lib/opnsense_api/core/diagnostics/firewall.rbs +33 -0
- data/sig/lib/opnsense_api/core/diagnostics/interface.rbs +45 -0
- data/sig/lib/opnsense_api/core/diagnostics/lv_template.rbs +25 -0
- data/sig/lib/opnsense_api/core/diagnostics/netflow.rbs +23 -0
- data/sig/lib/opnsense_api/core/diagnostics/network_insight.rbs +19 -0
- data/sig/lib/opnsense_api/core/diagnostics/packet_capture.rbs +29 -0
- data/sig/lib/opnsense_api/core/diagnostics/system.rbs +13 -0
- data/sig/lib/opnsense_api/core/diagnostics/system_health.rbs +15 -0
- data/sig/lib/opnsense_api/core/diagnostics/traffic.rbs +15 -0
- data/sig/lib/opnsense_api/core/diagnostics.rbs +31 -0
- data/sig/lib/opnsense_api/core/firewall/alias.rbs +45 -0
- data/sig/lib/opnsense_api/core/firewall/alias_util.rbs +25 -0
- data/sig/lib/opnsense_api/core/firewall/category.rbs +27 -0
- data/sig/lib/opnsense_api/core/firewall/filter_util.rbs +13 -0
- data/sig/lib/opnsense_api/core/firewall.rbs +15 -0
- data/sig/lib/opnsense_api/core/ids/service.rbs +33 -0
- data/sig/lib/opnsense_api/core/ids/settings.rbs +75 -0
- data/sig/lib/opnsense_api/core/ids.rbs +11 -0
- data/sig/lib/opnsense_api/core/interfaces/base.rbs +25 -0
- data/sig/lib/opnsense_api/core/interfaces/loopback_settings.rbs +9 -0
- data/sig/lib/opnsense_api/core/interfaces/vip_settings.rbs +11 -0
- data/sig/lib/opnsense_api/core/interfaces/vlan_settings.rbs +9 -0
- data/sig/lib/opnsense_api/core/interfaces/vxlan_settings.rbs +9 -0
- data/sig/lib/opnsense_api/core/interfaces.rbs +15 -0
- data/sig/lib/opnsense_api/core/ipsec/key_pairs.rbs +27 -0
- data/sig/lib/opnsense_api/core/ipsec/leases.rbs +15 -0
- data/sig/lib/opnsense_api/core/ipsec/legacy_subsystem.rbs +15 -0
- data/sig/lib/opnsense_api/core/ipsec/pre_shared_keys.rbs +27 -0
- data/sig/lib/opnsense_api/core/ipsec/sad.rbs +15 -0
- data/sig/lib/opnsense_api/core/ipsec/service.rbs +21 -0
- data/sig/lib/opnsense_api/core/ipsec/sessions.rbs +19 -0
- data/sig/lib/opnsense_api/core/ipsec/spd.rbs +15 -0
- data/sig/lib/opnsense_api/core/ipsec/tunnel.rbs +25 -0
- data/sig/lib/opnsense_api/core/ipsec.rbs +25 -0
- data/sig/lib/opnsense_api/core/monit/service.rbs +23 -0
- data/sig/lib/opnsense_api/core/monit/settings.rbs +53 -0
- data/sig/lib/opnsense_api/core/monit/status.rbs +13 -0
- data/sig/lib/opnsense_api/core/monit.rbs +13 -0
- data/sig/lib/opnsense_api/core/open_vpn/export.rbs +23 -0
- data/sig/lib/opnsense_api/core/open_vpn.rbs +9 -0
- data/sig/lib/opnsense_api/core/proxy/service.rbs +29 -0
- data/sig/lib/opnsense_api/core/proxy/settings.rbs +61 -0
- data/sig/lib/opnsense_api/core/proxy/template.rbs +17 -0
- data/sig/lib/opnsense_api/core/proxy.rbs +13 -0
- data/sig/lib/opnsense_api/core/routes/gateway.rbs +13 -0
- data/sig/lib/opnsense_api/core/routes/routes.rbs +29 -0
- data/sig/lib/opnsense_api/core/routes.rbs +11 -0
- data/sig/lib/opnsense_api/core/syslog/service.rbs +23 -0
- data/sig/lib/opnsense_api/core/syslog/settings.rbs +27 -0
- data/sig/lib/opnsense_api/core/syslog.rbs +11 -0
- data/sig/lib/opnsense_api/core/traffic_shaping/service.rbs +17 -0
- data/sig/lib/opnsense_api/core/traffic_shaping/settings.rbs +51 -0
- data/sig/lib/opnsense_api/core/traffic_shaping.rbs +11 -0
- data/sig/lib/opnsense_api/core/unbound/diagnostics.rbs +23 -0
- data/sig/lib/opnsense_api/core/unbound/service.rbs +23 -0
- data/sig/lib/opnsense_api/core/unbound/settings.rbs +65 -0
- data/sig/lib/opnsense_api/core/unbound.rbs +13 -0
- data/sig/lib/opnsense_api/core.rbs +7 -0
- data/sig/lib/opnsense_api/version.rbs +3 -0
- 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
|