lex-nautobot 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/.github/CODEOWNERS +7 -0
- data/.github/dependabot.yml +18 -0
- data/.github/workflows/ci.yml +34 -0
- data/.gitignore +1 -0
- data/.rspec +2 -0
- data/.rspec_status +83 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +18 -0
- data/CLAUDE.md +33 -0
- data/Gemfile +13 -0
- data/LICENSE +21 -0
- data/README.md +78 -0
- data/lex-nautobot.gemspec +37 -0
- data/lib/legion/extensions/nautobot/client.rb +43 -0
- data/lib/legion/extensions/nautobot/errors.rb +9 -0
- data/lib/legion/extensions/nautobot/helpers/client.rb +23 -0
- data/lib/legion/extensions/nautobot/runners/circuits.rb +127 -0
- data/lib/legion/extensions/nautobot/runners/cloud.rb +109 -0
- data/lib/legion/extensions/nautobot/runners/dcim.rb +351 -0
- data/lib/legion/extensions/nautobot/runners/extras.rb +311 -0
- data/lib/legion/extensions/nautobot/runners/ipam.rb +210 -0
- data/lib/legion/extensions/nautobot/runners/tenancy.rb +80 -0
- data/lib/legion/extensions/nautobot/runners/users.rb +60 -0
- data/lib/legion/extensions/nautobot/runners/virtualization.rb +147 -0
- data/lib/legion/extensions/nautobot/runners/vpn.rb +120 -0
- data/lib/legion/extensions/nautobot/runners/wireless.rb +57 -0
- data/lib/legion/extensions/nautobot/version.rb +9 -0
- data/lib/legion/extensions/nautobot.rb +24 -0
- metadata +187 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/nautobot/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Nautobot
|
|
8
|
+
module Runners
|
|
9
|
+
module Virtualization
|
|
10
|
+
include Legion::Extensions::Nautobot::Helpers::Client
|
|
11
|
+
|
|
12
|
+
# Cluster Types
|
|
13
|
+
def list_cluster_types(url: nil, token: nil, **params)
|
|
14
|
+
resp = connection(url: url, token: token).get('/api/virtualization/cluster-types/', params)
|
|
15
|
+
resp.body
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_cluster_type(id:, url: nil, token: nil, **)
|
|
19
|
+
resp = connection(url: url, token: token).get("/api/virtualization/cluster-types/#{id}/")
|
|
20
|
+
resp.body
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_cluster_type(url: nil, token: nil, read_only: false, **attrs)
|
|
24
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
25
|
+
|
|
26
|
+
resp = connection(url: url, token: token).post('/api/virtualization/cluster-types/', attrs)
|
|
27
|
+
resp.body
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Cluster Groups
|
|
31
|
+
def list_cluster_groups(url: nil, token: nil, **params)
|
|
32
|
+
resp = connection(url: url, token: token).get('/api/virtualization/cluster-groups/', params)
|
|
33
|
+
resp.body
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_cluster_group(id:, url: nil, token: nil, **)
|
|
37
|
+
resp = connection(url: url, token: token).get("/api/virtualization/cluster-groups/#{id}/")
|
|
38
|
+
resp.body
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def create_cluster_group(url: nil, token: nil, read_only: false, **attrs)
|
|
42
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
43
|
+
|
|
44
|
+
resp = connection(url: url, token: token).post('/api/virtualization/cluster-groups/', attrs)
|
|
45
|
+
resp.body
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Clusters
|
|
49
|
+
def list_clusters(url: nil, token: nil, **params)
|
|
50
|
+
resp = connection(url: url, token: token).get('/api/virtualization/clusters/', params)
|
|
51
|
+
resp.body
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def get_cluster(id:, url: nil, token: nil, **)
|
|
55
|
+
resp = connection(url: url, token: token).get("/api/virtualization/clusters/#{id}/")
|
|
56
|
+
resp.body
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def create_cluster(url: nil, token: nil, read_only: false, **attrs)
|
|
60
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
61
|
+
|
|
62
|
+
resp = connection(url: url, token: token).post('/api/virtualization/clusters/', attrs)
|
|
63
|
+
resp.body
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def update_cluster(id:, url: nil, token: nil, read_only: false, **attrs)
|
|
67
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
68
|
+
|
|
69
|
+
resp = connection(url: url, token: token).patch("/api/virtualization/clusters/#{id}/", attrs)
|
|
70
|
+
resp.body
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def delete_cluster(id:, url: nil, token: nil, read_only: false, **)
|
|
74
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
75
|
+
|
|
76
|
+
connection(url: url, token: token).delete("/api/virtualization/clusters/#{id}/")
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Virtual Machines
|
|
80
|
+
def list_virtual_machines(url: nil, token: nil, **params)
|
|
81
|
+
resp = connection(url: url, token: token).get('/api/virtualization/virtual-machines/', params)
|
|
82
|
+
resp.body
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def get_virtual_machine(id:, url: nil, token: nil, **)
|
|
86
|
+
resp = connection(url: url, token: token).get("/api/virtualization/virtual-machines/#{id}/")
|
|
87
|
+
resp.body
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def create_virtual_machine(url: nil, token: nil, read_only: false, **attrs)
|
|
91
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
92
|
+
|
|
93
|
+
resp = connection(url: url, token: token).post('/api/virtualization/virtual-machines/', attrs)
|
|
94
|
+
resp.body
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def update_virtual_machine(id:, url: nil, token: nil, read_only: false, **attrs)
|
|
98
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
99
|
+
|
|
100
|
+
resp = connection(url: url, token: token).patch("/api/virtualization/virtual-machines/#{id}/", attrs)
|
|
101
|
+
resp.body
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def delete_virtual_machine(id:, url: nil, token: nil, read_only: false, **)
|
|
105
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
106
|
+
|
|
107
|
+
connection(url: url, token: token).delete("/api/virtualization/virtual-machines/#{id}/")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# VM Interfaces
|
|
111
|
+
def list_vm_interfaces(url: nil, token: nil, **params)
|
|
112
|
+
resp = connection(url: url, token: token).get('/api/virtualization/interfaces/', params)
|
|
113
|
+
resp.body
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def get_vm_interface(id:, url: nil, token: nil, **)
|
|
117
|
+
resp = connection(url: url, token: token).get("/api/virtualization/interfaces/#{id}/")
|
|
118
|
+
resp.body
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def create_vm_interface(url: nil, token: nil, read_only: false, **attrs)
|
|
122
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
123
|
+
|
|
124
|
+
resp = connection(url: url, token: token).post('/api/virtualization/interfaces/', attrs)
|
|
125
|
+
resp.body
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def update_vm_interface(id:, url: nil, token: nil, read_only: false, **attrs)
|
|
129
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
130
|
+
|
|
131
|
+
resp = connection(url: url, token: token).patch("/api/virtualization/interfaces/#{id}/", attrs)
|
|
132
|
+
resp.body
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def delete_vm_interface(id:, url: nil, token: nil, read_only: false, **)
|
|
136
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
137
|
+
|
|
138
|
+
connection(url: url, token: token).delete("/api/virtualization/interfaces/#{id}/")
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
142
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/nautobot/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Nautobot
|
|
8
|
+
module Runners
|
|
9
|
+
module Vpn
|
|
10
|
+
include Legion::Extensions::Nautobot::Helpers::Client
|
|
11
|
+
|
|
12
|
+
# VPNs
|
|
13
|
+
def list_vpns(url: nil, token: nil, **params)
|
|
14
|
+
resp = connection(url: url, token: token).get('/api/vpn/vpns/', params)
|
|
15
|
+
resp.body
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def get_vpn(id:, url: nil, token: nil, **)
|
|
19
|
+
resp = connection(url: url, token: token).get("/api/vpn/vpns/#{id}/")
|
|
20
|
+
resp.body
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_vpn(url: nil, token: nil, read_only: false, **attrs)
|
|
24
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
25
|
+
|
|
26
|
+
resp = connection(url: url, token: token).post('/api/vpn/vpns/', attrs)
|
|
27
|
+
resp.body
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def update_vpn(id:, url: nil, token: nil, read_only: false, **attrs)
|
|
31
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
32
|
+
|
|
33
|
+
resp = connection(url: url, token: token).patch("/api/vpn/vpns/#{id}/", attrs)
|
|
34
|
+
resp.body
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def delete_vpn(id:, url: nil, token: nil, read_only: false, **)
|
|
38
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
39
|
+
|
|
40
|
+
connection(url: url, token: token).delete("/api/vpn/vpns/#{id}/")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# VPN Tunnels
|
|
44
|
+
def list_vpn_tunnels(url: nil, token: nil, **params)
|
|
45
|
+
resp = connection(url: url, token: token).get('/api/vpn/vpn-tunnels/', params)
|
|
46
|
+
resp.body
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def get_vpn_tunnel(id:, url: nil, token: nil, **)
|
|
50
|
+
resp = connection(url: url, token: token).get("/api/vpn/vpn-tunnels/#{id}/")
|
|
51
|
+
resp.body
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def create_vpn_tunnel(url: nil, token: nil, read_only: false, **attrs)
|
|
55
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
56
|
+
|
|
57
|
+
resp = connection(url: url, token: token).post('/api/vpn/vpn-tunnels/', attrs)
|
|
58
|
+
resp.body
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def update_vpn_tunnel(id:, url: nil, token: nil, read_only: false, **attrs)
|
|
62
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
63
|
+
|
|
64
|
+
resp = connection(url: url, token: token).patch("/api/vpn/vpn-tunnels/#{id}/", attrs)
|
|
65
|
+
resp.body
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def delete_vpn_tunnel(id:, url: nil, token: nil, read_only: false, **)
|
|
69
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
70
|
+
|
|
71
|
+
connection(url: url, token: token).delete("/api/vpn/vpn-tunnels/#{id}/")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# VPN Tunnel Endpoints
|
|
75
|
+
def list_vpn_tunnel_endpoints(url: nil, token: nil, **params)
|
|
76
|
+
resp = connection(url: url, token: token).get('/api/vpn/vpn-tunnel-endpoints/', params)
|
|
77
|
+
resp.body
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def get_vpn_tunnel_endpoint(id:, url: nil, token: nil, **)
|
|
81
|
+
resp = connection(url: url, token: token).get("/api/vpn/vpn-tunnel-endpoints/#{id}/")
|
|
82
|
+
resp.body
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# VPN Profiles
|
|
86
|
+
def list_vpn_profiles(url: nil, token: nil, **params)
|
|
87
|
+
resp = connection(url: url, token: token).get('/api/vpn/vpn-profiles/', params)
|
|
88
|
+
resp.body
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def get_vpn_profile(id:, url: nil, token: nil, **)
|
|
92
|
+
resp = connection(url: url, token: token).get("/api/vpn/vpn-profiles/#{id}/")
|
|
93
|
+
resp.body
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def create_vpn_profile(url: nil, token: nil, read_only: false, **attrs)
|
|
97
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
98
|
+
|
|
99
|
+
resp = connection(url: url, token: token).post('/api/vpn/vpn-profiles/', attrs)
|
|
100
|
+
resp.body
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# VPN Terminations
|
|
104
|
+
def list_vpn_terminations(url: nil, token: nil, **params)
|
|
105
|
+
resp = connection(url: url, token: token).get('/api/vpn/vpn-terminations/', params)
|
|
106
|
+
resp.body
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def get_vpn_termination(id:, url: nil, token: nil, **)
|
|
110
|
+
resp = connection(url: url, token: token).get("/api/vpn/vpn-terminations/#{id}/")
|
|
111
|
+
resp.body
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
115
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/nautobot/helpers/client'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Nautobot
|
|
8
|
+
module Runners
|
|
9
|
+
module Wireless
|
|
10
|
+
include Legion::Extensions::Nautobot::Helpers::Client
|
|
11
|
+
|
|
12
|
+
def list_radio_profiles(url: nil, token: nil, **params)
|
|
13
|
+
resp = connection(url: url, token: token).get('/api/wireless/radio-profiles/', params)
|
|
14
|
+
resp.body
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def get_radio_profile(id:, url: nil, token: nil, **)
|
|
18
|
+
resp = connection(url: url, token: token).get("/api/wireless/radio-profiles/#{id}/")
|
|
19
|
+
resp.body
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_radio_profile(url: nil, token: nil, read_only: false, **attrs)
|
|
23
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
24
|
+
|
|
25
|
+
resp = connection(url: url, token: token).post('/api/wireless/radio-profiles/', attrs)
|
|
26
|
+
resp.body
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def list_wireless_networks(url: nil, token: nil, **params)
|
|
30
|
+
resp = connection(url: url, token: token).get('/api/wireless/wireless-networks/', params)
|
|
31
|
+
resp.body
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def get_wireless_network(id:, url: nil, token: nil, **)
|
|
35
|
+
resp = connection(url: url, token: token).get("/api/wireless/wireless-networks/#{id}/")
|
|
36
|
+
resp.body
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def create_wireless_network(url: nil, token: nil, read_only: false, **attrs)
|
|
40
|
+
raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only
|
|
41
|
+
|
|
42
|
+
resp = connection(url: url, token: token).post('/api/wireless/wireless-networks/', attrs)
|
|
43
|
+
resp.body
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def list_supported_data_rates(url: nil, token: nil, **params)
|
|
47
|
+
resp = connection(url: url, token: token).get('/api/wireless/supported-data-rates/', params)
|
|
48
|
+
resp.body
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
|
|
52
|
+
Legion::Extensions::Helpers.const_defined?(:Lex, false)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/nautobot/version'
|
|
4
|
+
require 'legion/extensions/nautobot/errors'
|
|
5
|
+
require 'legion/extensions/nautobot/helpers/client'
|
|
6
|
+
require 'legion/extensions/nautobot/runners/dcim'
|
|
7
|
+
require 'legion/extensions/nautobot/runners/ipam'
|
|
8
|
+
require 'legion/extensions/nautobot/runners/circuits'
|
|
9
|
+
require 'legion/extensions/nautobot/runners/tenancy'
|
|
10
|
+
require 'legion/extensions/nautobot/runners/virtualization'
|
|
11
|
+
require 'legion/extensions/nautobot/runners/extras'
|
|
12
|
+
require 'legion/extensions/nautobot/runners/users'
|
|
13
|
+
require 'legion/extensions/nautobot/runners/cloud'
|
|
14
|
+
require 'legion/extensions/nautobot/runners/vpn'
|
|
15
|
+
require 'legion/extensions/nautobot/runners/wireless'
|
|
16
|
+
require 'legion/extensions/nautobot/client'
|
|
17
|
+
|
|
18
|
+
module Legion
|
|
19
|
+
module Extensions
|
|
20
|
+
module Nautobot
|
|
21
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core, false
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-nautobot
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Matthew Iverson
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: faraday
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '2.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: legion-cache
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.3.11
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 1.3.11
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: legion-crypt
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 1.4.9
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 1.4.9
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: legion-data
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.4.17
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.4.17
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: legion-json
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.2.1
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.2.1
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: legion-logging
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.3.2
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: 1.3.2
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: legion-settings
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.3.14
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 1.3.14
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: legion-transport
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.3.9
|
|
117
|
+
type: :runtime
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 1.3.9
|
|
124
|
+
description: Connects LegionIO to Nautobot network source of truth and automation
|
|
125
|
+
platform
|
|
126
|
+
email:
|
|
127
|
+
- matthewdiverson@gmail.com
|
|
128
|
+
executables: []
|
|
129
|
+
extensions: []
|
|
130
|
+
extra_rdoc_files: []
|
|
131
|
+
files:
|
|
132
|
+
- ".github/CODEOWNERS"
|
|
133
|
+
- ".github/dependabot.yml"
|
|
134
|
+
- ".github/workflows/ci.yml"
|
|
135
|
+
- ".gitignore"
|
|
136
|
+
- ".rspec"
|
|
137
|
+
- ".rspec_status"
|
|
138
|
+
- ".rubocop.yml"
|
|
139
|
+
- CHANGELOG.md
|
|
140
|
+
- CLAUDE.md
|
|
141
|
+
- Gemfile
|
|
142
|
+
- LICENSE
|
|
143
|
+
- README.md
|
|
144
|
+
- lex-nautobot.gemspec
|
|
145
|
+
- lib/legion/extensions/nautobot.rb
|
|
146
|
+
- lib/legion/extensions/nautobot/client.rb
|
|
147
|
+
- lib/legion/extensions/nautobot/errors.rb
|
|
148
|
+
- lib/legion/extensions/nautobot/helpers/client.rb
|
|
149
|
+
- lib/legion/extensions/nautobot/runners/circuits.rb
|
|
150
|
+
- lib/legion/extensions/nautobot/runners/cloud.rb
|
|
151
|
+
- lib/legion/extensions/nautobot/runners/dcim.rb
|
|
152
|
+
- lib/legion/extensions/nautobot/runners/extras.rb
|
|
153
|
+
- lib/legion/extensions/nautobot/runners/ipam.rb
|
|
154
|
+
- lib/legion/extensions/nautobot/runners/tenancy.rb
|
|
155
|
+
- lib/legion/extensions/nautobot/runners/users.rb
|
|
156
|
+
- lib/legion/extensions/nautobot/runners/virtualization.rb
|
|
157
|
+
- lib/legion/extensions/nautobot/runners/vpn.rb
|
|
158
|
+
- lib/legion/extensions/nautobot/runners/wireless.rb
|
|
159
|
+
- lib/legion/extensions/nautobot/version.rb
|
|
160
|
+
homepage: https://github.com/LegionIO/lex-nautobot
|
|
161
|
+
licenses:
|
|
162
|
+
- MIT
|
|
163
|
+
metadata:
|
|
164
|
+
homepage_uri: https://github.com/LegionIO/lex-nautobot
|
|
165
|
+
source_code_uri: https://github.com/LegionIO/lex-nautobot
|
|
166
|
+
documentation_uri: https://github.com/LegionIO/lex-nautobot
|
|
167
|
+
changelog_uri: https://github.com/LegionIO/lex-nautobot
|
|
168
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-nautobot/issues
|
|
169
|
+
rubygems_mfa_required: 'true'
|
|
170
|
+
rdoc_options: []
|
|
171
|
+
require_paths:
|
|
172
|
+
- lib
|
|
173
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
|
+
requirements:
|
|
175
|
+
- - ">="
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: '3.4'
|
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
|
+
requirements:
|
|
180
|
+
- - ">="
|
|
181
|
+
- !ruby/object:Gem::Version
|
|
182
|
+
version: '0'
|
|
183
|
+
requirements: []
|
|
184
|
+
rubygems_version: 3.6.9
|
|
185
|
+
specification_version: 4
|
|
186
|
+
summary: LEX Nautobot
|
|
187
|
+
test_files: []
|