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,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class Interface
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/interface'
|
10
|
+
|
11
|
+
def carp_status(status:)
|
12
|
+
@client.post("#{BASE_PATH}/carpStatus/#{status}")
|
13
|
+
end
|
14
|
+
|
15
|
+
def del_route(body = {})
|
16
|
+
@client.post("#{BASE_PATH}/delRoute", body)
|
17
|
+
end
|
18
|
+
|
19
|
+
def flush_arp(body = {})
|
20
|
+
@client.post("#{BASE_PATH}/flushArp", body)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_arp(params = {})
|
24
|
+
@client.get("#{BASE_PATH}/getArp", params)
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_bpf_statistics(params = {})
|
28
|
+
@client.get("#{BASE_PATH}/getBpfStatistics", params)
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_interface_config(params = {})
|
32
|
+
@client.get("#{BASE_PATH}/getInterfaceConfig", params)
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_interface_names(params = {})
|
36
|
+
@client.get("#{BASE_PATH}/getInterfaceNames", params)
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_memory_statistics(params = {})
|
40
|
+
@client.get("#{BASE_PATH}/getMemoryStatistics", params)
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_ndp(params = {})
|
44
|
+
@client.get("#{BASE_PATH}/getNdp", params)
|
45
|
+
end
|
46
|
+
|
47
|
+
def get_netisr_statistics(params = {})
|
48
|
+
@client.get("#{BASE_PATH}/getNetisrStatistics", params)
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_pf_sync_statistics(params = {})
|
52
|
+
@client.get("#{BASE_PATH}/getPfSyncStatistics", params)
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_protocol_statistics(params = {})
|
56
|
+
@client.get("#{BASE_PATH}/getProtocolStatistics", params)
|
57
|
+
end
|
58
|
+
|
59
|
+
def get_routes(params = {})
|
60
|
+
@client.get("#{BASE_PATH}/getRoutes", params)
|
61
|
+
end
|
62
|
+
|
63
|
+
def get_socket_statistics(params = {})
|
64
|
+
@client.get("#{BASE_PATH}/getSocketStatistics", params)
|
65
|
+
end
|
66
|
+
|
67
|
+
def get_vip_status(params = {})
|
68
|
+
@client.get("#{BASE_PATH}/getVipStatus", params)
|
69
|
+
end
|
70
|
+
|
71
|
+
def search_arp(params = {})
|
72
|
+
@client.get("#{BASE_PATH}/searchArp", params)
|
73
|
+
end
|
74
|
+
|
75
|
+
def search_ndp(params = {})
|
76
|
+
@client.get("#{BASE_PATH}/searchNdp", params)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class LVTemplate
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/lvtemplate'
|
10
|
+
|
11
|
+
def add_item(body = {})
|
12
|
+
@client.post("#{BASE_PATH}/addItem", body)
|
13
|
+
end
|
14
|
+
|
15
|
+
def del_item(uuid:)
|
16
|
+
@client.post("#{BASE_PATH}/delItem/#{uuid}")
|
17
|
+
end
|
18
|
+
|
19
|
+
def get(params = {})
|
20
|
+
@client.get("#{BASE_PATH}/get", params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_item(uuid: nil)
|
24
|
+
@client.get("#{BASE_PATH}/getItem/#{uuid}")
|
25
|
+
end
|
26
|
+
|
27
|
+
def search_item(body = {})
|
28
|
+
@client.post("#{BASE_PATH}/searchItem", body)
|
29
|
+
end
|
30
|
+
|
31
|
+
def set(body = {})
|
32
|
+
@client.post("#{BASE_PATH}/set", body)
|
33
|
+
end
|
34
|
+
|
35
|
+
def set_item(uuid:, body: {})
|
36
|
+
@client.post("#{BASE_PATH}/setItem/#{uuid}", body)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class Netflow
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/netflow'
|
10
|
+
|
11
|
+
def cache_stats(params = {})
|
12
|
+
@client.get("#{BASE_PATH}/cacheStats", params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_config(params = {})
|
16
|
+
@client.get("#{BASE_PATH}/getConfig", params)
|
17
|
+
end
|
18
|
+
|
19
|
+
def is_enabled(params = {})
|
20
|
+
@client.get("#{BASE_PATH}/isEnabled", params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def reconfigure(body = {})
|
24
|
+
@client.post("#{BASE_PATH}/reconfigure", body)
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_config(params = {})
|
28
|
+
@client.get("#{BASE_PATH}/setConfig", params)
|
29
|
+
end
|
30
|
+
|
31
|
+
def status(params = {})
|
32
|
+
@client.get("#{BASE_PATH}/status", params)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class NetworkInsight
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/networkinsight'
|
10
|
+
|
11
|
+
def get_interfaces(params = {})
|
12
|
+
@client.get("#{BASE_PATH}/getInterfaces", params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_metadata(params = {})
|
16
|
+
@client.get("#{BASE_PATH}/getMetadata", params)
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_protocols(params = {})
|
20
|
+
@client.get("#{BASE_PATH}/getProtocols", params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_services(params = {})
|
24
|
+
@client.get("#{BASE_PATH}/getServices", params)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class PacketCapture
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/packet_capture'
|
10
|
+
|
11
|
+
def download(jobid:)
|
12
|
+
@client.get("#{BASE_PATH}/download/#{jobid}")
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(params = {})
|
16
|
+
@client.get("#{BASE_PATH}/get", params)
|
17
|
+
end
|
18
|
+
|
19
|
+
def mac_info(macaddr:)
|
20
|
+
@client.get("#{BASE_PATH}/mac_info/#{macaddr}")
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove(jobid:)
|
24
|
+
@client.post("#{BASE_PATH}/remove/#{jobid}")
|
25
|
+
end
|
26
|
+
|
27
|
+
def search_jobs(params = {})
|
28
|
+
@client.get("#{BASE_PATH}/searchJobs", params)
|
29
|
+
end
|
30
|
+
|
31
|
+
def set(params: {}, body: {})
|
32
|
+
if body.any?
|
33
|
+
@client.post("#{BASE_PATH}/set", body)
|
34
|
+
else
|
35
|
+
@client.get("#{BASE_PATH}/set", params)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def start(jobid:)
|
40
|
+
@client.post("#{BASE_PATH}/start/#{jobid}")
|
41
|
+
end
|
42
|
+
|
43
|
+
def stop(jobid:)
|
44
|
+
@client.post("#{BASE_PATH}/stop/#{jobid}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def view(jobid:, detail: 'normal')
|
48
|
+
@client.get("#{BASE_PATH}/view/#{jobid}/#{detail}")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class System
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/system'
|
10
|
+
|
11
|
+
def memory(params = {})
|
12
|
+
@client.get("#{BASE_PATH}/memory", params)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class SystemHealth
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/systemhealth'
|
10
|
+
|
11
|
+
def get_interfaces(params = {})
|
12
|
+
@client.get("#{BASE_PATH}/getInterfaces", params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_rrd_list(params = {})
|
16
|
+
@client.get("#{BASE_PATH}/getRRDList", params)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Diagnostics
|
6
|
+
class Traffic
|
7
|
+
include OPNsenseAPI::Core
|
8
|
+
|
9
|
+
BASE_PATH = '/diagnostics/traffic'
|
10
|
+
|
11
|
+
def interface(params = {})
|
12
|
+
@client.get("#{BASE_PATH}/Interface", params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def top(params = {})
|
16
|
+
@client.get("#{BASE_PATH}/Top", params)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
# @see https://docs.opnsense.org/development/api/core/diagnostics.html
|
6
|
+
class Diagnostics
|
7
|
+
autoload :Activity, 'opnsense_api/core/diagnostics/activity'
|
8
|
+
autoload :DNS, 'opnsense_api/core/diagnostics/dns'
|
9
|
+
autoload :DNSDiagnostics, 'opnsense_api/core/diagnostics/dns_diagnostics'
|
10
|
+
autoload :Firewall, 'opnsense_api/core/diagnostics/firewall'
|
11
|
+
autoload :Interface, 'opnsense_api/core/diagnostics/interface'
|
12
|
+
autoload :LVTemplate, 'opnsense_api/core/diagnostics/lv_template'
|
13
|
+
autoload :Netflow, 'opnsense_api/core/diagnostics/netflow'
|
14
|
+
autoload :NetworkInsight, 'opnsense_api/core/diagnostics/network_insight'
|
15
|
+
autoload :PacketCapture, 'opnsense_api/core/diagnostics/packet_capture'
|
16
|
+
autoload :System, 'opnsense_api/core/diagnostics/system'
|
17
|
+
autoload :SystemHealth, 'opnsense_api/core/diagnostics/system_health'
|
18
|
+
autoload :Traffic, 'opnsense_api/core/diagnostics/traffic'
|
19
|
+
|
20
|
+
include OPNsenseAPI::Core
|
21
|
+
|
22
|
+
def activity
|
23
|
+
Activity.new(@client)
|
24
|
+
end
|
25
|
+
|
26
|
+
def dns
|
27
|
+
DNS.new(@client)
|
28
|
+
end
|
29
|
+
|
30
|
+
def dns_diagnostics
|
31
|
+
DNSDiagnostics.new(@client)
|
32
|
+
end
|
33
|
+
|
34
|
+
def firewall
|
35
|
+
Firewall.new(@client)
|
36
|
+
end
|
37
|
+
|
38
|
+
def interface
|
39
|
+
Interface.new(@client)
|
40
|
+
end
|
41
|
+
|
42
|
+
def lv_template
|
43
|
+
LVTemplate.new(@client)
|
44
|
+
end
|
45
|
+
|
46
|
+
def netflow
|
47
|
+
Netflow.new(@client)
|
48
|
+
end
|
49
|
+
|
50
|
+
def network_insight
|
51
|
+
NetworkInsight.new(@client)
|
52
|
+
end
|
53
|
+
|
54
|
+
def packet_capture
|
55
|
+
PacketCapture.new(@client)
|
56
|
+
end
|
57
|
+
|
58
|
+
def system
|
59
|
+
System.new(@client)
|
60
|
+
end
|
61
|
+
|
62
|
+
def system_health
|
63
|
+
SystemHealth.new(@client)
|
64
|
+
end
|
65
|
+
|
66
|
+
def traffic
|
67
|
+
Traffic.new(@client)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Firewall
|
6
|
+
# @see https://docs.opnsense.org/development/api/core/firewall.html#id1
|
7
|
+
# @see https://github.com/opnsense/core/blob/master/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
|
8
|
+
class Alias
|
9
|
+
include OPNsenseAPI::Core
|
10
|
+
|
11
|
+
BASE_PATH = '/firewall/alias'
|
12
|
+
|
13
|
+
def add_item(body = {})
|
14
|
+
@client.post("#{BASE_PATH}/addItem", body)
|
15
|
+
end
|
16
|
+
|
17
|
+
def del_item(uuid:)
|
18
|
+
@client.post("#{BASE_PATH}/delItem/#{uuid}")
|
19
|
+
end
|
20
|
+
|
21
|
+
def export(params = {})
|
22
|
+
@client.get("#{BASE_PATH}/export", params)
|
23
|
+
end
|
24
|
+
|
25
|
+
def get(params = {})
|
26
|
+
@client.get("#{BASE_PATH}/get", params)
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_alias_uuid(name:)
|
30
|
+
@client.get("#{BASE_PATH}/getAliasUUID/#{name}")
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_geo_ip(params = {})
|
34
|
+
@client.get("#{BASE_PATH}/getGeoIP", params)
|
35
|
+
end
|
36
|
+
|
37
|
+
def get_item(uuid:)
|
38
|
+
@client.get("#{BASE_PATH}/getItem/#{uuid}")
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_table_size(params = {})
|
42
|
+
@client.get("#{BASE_PATH}/getTableSize", params)
|
43
|
+
end
|
44
|
+
|
45
|
+
def import(body = {})
|
46
|
+
@client.post("#{BASE_PATH}/import", body)
|
47
|
+
end
|
48
|
+
|
49
|
+
def list_categories(params = {})
|
50
|
+
@client.get("#{BASE_PATH}/listCategories", params)
|
51
|
+
end
|
52
|
+
|
53
|
+
def list_countries(params = {})
|
54
|
+
@client.get("#{BASE_PATH}/listCountries", params)
|
55
|
+
end
|
56
|
+
|
57
|
+
def list_network_aliases(params = {})
|
58
|
+
@client.get("#{BASE_PATH}/listNetworkAliases", params)
|
59
|
+
end
|
60
|
+
|
61
|
+
def reconfigure(body = {})
|
62
|
+
@client.post("#{BASE_PATH}/reconfigure", body)
|
63
|
+
end
|
64
|
+
|
65
|
+
def search_item(body = {})
|
66
|
+
@client.post("#{BASE_PATH}/searchItem", body)
|
67
|
+
end
|
68
|
+
|
69
|
+
def set(body = {})
|
70
|
+
@client.post("#{BASE_PATH}/set", body)
|
71
|
+
end
|
72
|
+
|
73
|
+
def set_item(uuid:, body: {})
|
74
|
+
@client.post("#{BASE_PATH}/setItem/#{uuid}", body)
|
75
|
+
end
|
76
|
+
|
77
|
+
def toggle_item(uuid:, enabled: nil)
|
78
|
+
@client.post("#{BASE_PATH}/toggleItem/#{uuid}/#{enabled}")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Firewall
|
6
|
+
# @see https://docs.opnsense.org/development/api/core/firewall.html#id2
|
7
|
+
# NOTE: using `id` instead of `alias` as it is a reserved keyword
|
8
|
+
class AliasUtil
|
9
|
+
include OPNsenseAPI::Core
|
10
|
+
|
11
|
+
BASE_PATH = '/firewall/alias_util'
|
12
|
+
|
13
|
+
def add(id:, body: {})
|
14
|
+
@client.post("#{BASE_PATH}/add/#{id}", body)
|
15
|
+
end
|
16
|
+
|
17
|
+
def aliases(params = {})
|
18
|
+
@client.get("#{BASE_PATH}/aliases", params)
|
19
|
+
end
|
20
|
+
|
21
|
+
def delete(id:)
|
22
|
+
@client.post("#{BASE_PATH}/delete/#{id}")
|
23
|
+
end
|
24
|
+
|
25
|
+
def find_references(body = {})
|
26
|
+
@client.post("#{BASE_PATH}/findReferences", body)
|
27
|
+
end
|
28
|
+
|
29
|
+
def flush(id:, body: {})
|
30
|
+
@client.post("#{BASE_PATH}/flush/#{id}", body)
|
31
|
+
end
|
32
|
+
|
33
|
+
def list(id:, params: {})
|
34
|
+
@client.get("#{BASE_PATH}/list/#{id}", params)
|
35
|
+
end
|
36
|
+
|
37
|
+
def update_bogons(params = {})
|
38
|
+
@client.get("#{BASE_PATH}/updateBogons", params)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Firewall
|
6
|
+
# @see https://docs.opnsense.org/development/api/core/firewall.html#id3
|
7
|
+
class Category
|
8
|
+
include OPNsenseAPI::Core
|
9
|
+
|
10
|
+
BASE_PATH = '/firewall/category'
|
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 search_item(body = {})
|
29
|
+
@client.post("#{BASE_PATH}/searchItem", body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def search_no_category_item(body = {})
|
33
|
+
@client.post("#{BASE_PATH}/searchNoCategoryItem", 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,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
class Firewall
|
6
|
+
# @see https://docs.opnsense.org/development/api/core/firewall.html#id4
|
7
|
+
class FilterUtil
|
8
|
+
include OPNsenseAPI::Core
|
9
|
+
|
10
|
+
BASE_PATH = '/firewall/filter_util'
|
11
|
+
|
12
|
+
def rule_stats(params = {})
|
13
|
+
@client.get("#{BASE_PATH}/ruleStats", params)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OPNsenseAPI
|
4
|
+
module Core
|
5
|
+
# @see https://docs.opnsense.org/development/api/core/firewall.html
|
6
|
+
class Firewall
|
7
|
+
autoload :Alias, 'opnsense_api/core/firewall/alias'
|
8
|
+
autoload :AliasUtil, 'opnsense_api/core/firewall/alias_util'
|
9
|
+
autoload :Category, 'opnsense_api/core/firewall/category'
|
10
|
+
autoload :FilterUtil, 'opnsense_api/core/firewall/filter_util'
|
11
|
+
|
12
|
+
include OPNsenseAPI::Core
|
13
|
+
|
14
|
+
def alias
|
15
|
+
Alias.new(@client)
|
16
|
+
end
|
17
|
+
|
18
|
+
def alias_util
|
19
|
+
AliasUtil.new(@client)
|
20
|
+
end
|
21
|
+
|
22
|
+
def category
|
23
|
+
Category.new(@client)
|
24
|
+
end
|
25
|
+
|
26
|
+
def filter_util
|
27
|
+
FilterUtil.new(@client)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,58 @@
|
|
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#id1
|
7
|
+
class Service
|
8
|
+
include OPNsenseAPI::Core
|
9
|
+
|
10
|
+
BASE_PATH = '/ids/service'
|
11
|
+
|
12
|
+
def drop_alert_log(body = {})
|
13
|
+
@client.post("#{BASE_PATH}/dropAlertLog", body)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_alert_info(alertid:, fileid: nil)
|
17
|
+
@client.get("#{BASE_PATH}/getAlertInfo/#{alertid}/#{fileid}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def get_alert_logs(params = {})
|
21
|
+
@client.get("#{BASE_PATH}/getAlertLogs", params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def query_alerts(body = {})
|
25
|
+
@client.post("#{BASE_PATH}/queryAlerts", body)
|
26
|
+
end
|
27
|
+
|
28
|
+
def reconfigure(body = {})
|
29
|
+
@client.post("#{BASE_PATH}/reconfigure", body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def reload_rules(body = {})
|
33
|
+
@client.post("#{BASE_PATH}/reloadRules", body)
|
34
|
+
end
|
35
|
+
|
36
|
+
def restart(body = {})
|
37
|
+
@client.post("#{BASE_PATH}/restart", body)
|
38
|
+
end
|
39
|
+
|
40
|
+
def start(body = {})
|
41
|
+
@client.post("#{BASE_PATH}/start", body)
|
42
|
+
end
|
43
|
+
|
44
|
+
def status(params = {})
|
45
|
+
@client.get("#{BASE_PATH}/status", params)
|
46
|
+
end
|
47
|
+
|
48
|
+
def stop(body = {})
|
49
|
+
@client.post("#{BASE_PATH}/stop", body)
|
50
|
+
end
|
51
|
+
|
52
|
+
def update_rules(body = {}, wait: nil)
|
53
|
+
@client.post("#{BASE_PATH}/updateRules/#{wait}", body)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|