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,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
|
data/lib/opnsense_api.rb
ADDED
@@ -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,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
|