freebox_api 0.0.2 → 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 +8 -8
- data/README.md +281 -29
- data/lib/freebox_api/services/connection.rb +27 -0
- data/lib/freebox_api/services/dhcp.rb +23 -0
- data/lib/freebox_api/version.rb +1 -1
- data/lib/freebox_api.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTBiM2ZhNGVjYzZkMTEwZGVkOTc3NWMxNzQ0MmVkYWEzMmVhNmZmMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
M2EyZDUzMGQ2MTVjOTlkZGRiNzczZWRjMTFiMmJjNTRmODJkNjUzOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjUwZTUyN2FmM2I4ZTJjNjI4M2IxOGU0YmFjNzNmZmY0NzIyM2U2YzA5NGJi
|
10
|
+
OWVmNTIzYmIwYTJhNGQ1ZjU0NmZhZTRiMTc1YjMyZWIwNjYwYzgwZDhlNzFl
|
11
|
+
MzkwMDA4NzcwZmZiZDQ2OGM2NTQ5MjFhMTBiZmE2MGVjZWU2Njc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWU1Mzk1ODc1MzA4ODMwZWYwOWViYjlmODViZWIxNGIyZTdhNzUyNDEwMDBj
|
14
|
+
ZDk5NDgzZDA5OGVmZmU4Y2NhZjE3NmU0ZGZkNTI5MTk1ZGYyMTQyYmMyYTgz
|
15
|
+
YmQ5NjMyMTk0ZGE5MjhmM2ZjY2FiMDQxZjM4NTJiYzVhOTY1MTA=
|
data/README.md
CHANGED
@@ -69,42 +69,113 @@ myApp = {
|
|
69
69
|
mySession = FreeboxApi::Session.new(myApp, myFreebox)
|
70
70
|
```
|
71
71
|
|
72
|
-
|
72
|
+
or
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
mysession = FreeboxApi::Session.new({
|
76
|
+
:app_id => 'fr.freebox.testapp',
|
77
|
+
:app_version => '0.0.7',
|
78
|
+
:app_token => 'dyNYgfK0Ya6FWGqq83sBHa7TwzWo+pg4fDFUJHShcjVYzTfaRrZzm93p7OTAfH/0',
|
79
|
+
}, FreeboxApi::Freebox.new)
|
80
|
+
```
|
81
|
+
|
82
|
+
Reference
|
83
|
+
---------
|
84
|
+
|
85
|
+
### Connection API
|
73
86
|
|
74
87
|
```ruby
|
75
|
-
|
88
|
+
connection = FreeboxApi::Services::Connection.new(mySession)
|
76
89
|
```
|
77
90
|
|
78
|
-
####
|
91
|
+
#### Connection status
|
92
|
+
|
93
|
+
##### Get the current Connection status
|
94
|
+
[X] GET /api/v1/connection/
|
79
95
|
|
80
96
|
```ruby
|
81
|
-
|
97
|
+
connection.status
|
82
98
|
```
|
83
99
|
|
84
|
-
|
85
|
-
|
100
|
+
#### Connection configuration
|
101
|
+
|
102
|
+
##### Get the current Connection configuration
|
103
|
+
[X] GET /api/v1/connection/config/
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
connection.config
|
107
|
+
```
|
108
|
+
|
109
|
+
##### Update the Connection configuration
|
110
|
+
[X] PUT /api/v1/connection/config/
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
connection.config = {
|
114
|
+
:ping => true,
|
115
|
+
:wol => false,
|
116
|
+
}
|
117
|
+
```
|
118
|
+
|
119
|
+
#### Connection IPv6 configuration
|
120
|
+
|
121
|
+
##### Get the current IPv6 Connection configuration
|
122
|
+
[ ] GET /api/v1/connection/ipv6/config/
|
123
|
+
|
124
|
+
##### Update the IPv6 Connection configuration
|
125
|
+
[ ] PUT /api/v1/connection/ipv6/config/
|
126
|
+
|
127
|
+
#### Connection DynDNS status
|
128
|
+
|
129
|
+
##### Get the status of a DynDNS service
|
130
|
+
[ ] GET /api/v1/connection/ddns/{provider}/status/
|
131
|
+
|
132
|
+
#### Connection DynDNS configuration
|
133
|
+
|
134
|
+
##### Get the config of a DynDNS service
|
135
|
+
[ ] GET /api/v1/connection/ddns/{provider}/
|
136
|
+
|
137
|
+
##### Set the config of a DynDNS service
|
138
|
+
[ ] PUT /api/v1/connection/ddns/{provider}/
|
86
139
|
|
87
|
-
###
|
140
|
+
### Lan
|
141
|
+
|
142
|
+
#### Lan Config API
|
143
|
+
|
144
|
+
##### Get the current Lan configuration
|
145
|
+
[ ] GET /api/v1/lan/config/
|
146
|
+
|
147
|
+
##### Update the current Lan configuration
|
148
|
+
[ ] PUT /api/v1/lan/config/
|
149
|
+
|
150
|
+
### Lan Browser
|
151
|
+
|
152
|
+
#### Lan Browser API
|
153
|
+
|
154
|
+
##### Getting the list of browsable LAN interfaces
|
155
|
+
[X] GET /api/v1/lan/browser/interfaces/
|
88
156
|
|
89
157
|
```ruby
|
90
158
|
interfaces = FreeboxApi::Resources::Interface.new(mySession)
|
91
159
|
interfaces.index
|
92
160
|
```
|
93
161
|
|
94
|
-
|
162
|
+
##### Getting the list of hosts on a given interface
|
163
|
+
[X] GET /api/v1/lan/browser/{interface}/
|
95
164
|
|
96
165
|
```ruby
|
97
166
|
lan_hosts = FreeboxApi::Resources::LanHost.new(mySession)
|
98
167
|
lan_hosts.index
|
99
168
|
```
|
100
169
|
|
101
|
-
|
170
|
+
##### Getting an host information
|
171
|
+
[X] GET /api/v1/lan/browser/{interface}/{hostid}/
|
102
172
|
|
103
173
|
```ruby
|
104
174
|
lan_hosts.show('ether-00:24:d4:7e:00:4c')
|
105
175
|
```
|
106
176
|
|
107
|
-
|
177
|
+
##### Updating an host information
|
178
|
+
[X] PUT /api/v1/lan/browser/{interface}/{hostid}/
|
108
179
|
|
109
180
|
```ruby
|
110
181
|
lan_hosts.update({
|
@@ -113,23 +184,67 @@ lan_hosts.update({
|
|
113
184
|
})
|
114
185
|
```
|
115
186
|
|
116
|
-
|
117
|
-
|
187
|
+
#### Wake on LAN
|
188
|
+
|
189
|
+
##### Send Wake ok Lan packet to an host
|
190
|
+
[ ] POST /api/v1/lan/wol/{interface}/
|
118
191
|
|
119
|
-
###
|
192
|
+
### Freeplug
|
193
|
+
|
194
|
+
#### Freeplug API
|
195
|
+
|
196
|
+
##### Get the current Freeplugs networks
|
197
|
+
[ ] GET /api/v1/freeplug/
|
198
|
+
|
199
|
+
##### Get a particular Freeplug information
|
200
|
+
[ ] GET /api/v1/freeplug/{id}/
|
201
|
+
|
202
|
+
##### Reset a Freeplug
|
203
|
+
[ ] POST /api/v1/freeplug/{id}/reset/
|
204
|
+
|
205
|
+
### DHCP
|
206
|
+
|
207
|
+
#### DHCP Configuration API
|
208
|
+
|
209
|
+
```ruby
|
210
|
+
dhcp = FreeboxApi::Services::DHCP.new(mySession)
|
211
|
+
```
|
212
|
+
|
213
|
+
##### Get the current DHCP configuration
|
214
|
+
[X] GET /api/v1/dhcp/config/
|
215
|
+
|
216
|
+
```ruby
|
217
|
+
dhcp.config
|
218
|
+
```
|
219
|
+
|
220
|
+
##### Update the current DHCP configuration
|
221
|
+
[X] PUT /api/v1/dhcp/config/
|
222
|
+
|
223
|
+
```ruby
|
224
|
+
dhcp.config = {
|
225
|
+
:enabled => false,
|
226
|
+
}
|
227
|
+
```
|
228
|
+
|
229
|
+
#### DHCP Static Lease API
|
230
|
+
|
231
|
+
##### Get the list of DHCP static leases
|
232
|
+
[X] GET /api/v1/dhcp/static\_lease/
|
120
233
|
|
121
234
|
```ruby
|
122
235
|
static_leases = FreeboxApi::Resources::StaticLease.new(mySession)
|
123
236
|
static_leases.index
|
124
237
|
```
|
125
238
|
|
126
|
-
|
239
|
+
##### Get a given DHCP static lease
|
240
|
+
[X] GET /api/v1/dhcp/static\_lease/{id}
|
127
241
|
|
128
242
|
```ruby
|
129
|
-
static_leases.show('00:DE:AD:B0:0B:55)
|
243
|
+
static_leases.show('00:DE:AD:B0:0B:55')
|
130
244
|
```
|
131
245
|
|
132
|
-
|
246
|
+
##### Update DHCP static lease
|
247
|
+
[X] PUT /api/v1/dhcp/static\_lease/{id}
|
133
248
|
|
134
249
|
```ruby
|
135
250
|
static_leases.update({
|
@@ -138,13 +253,16 @@ static_leases.update({
|
|
138
253
|
})
|
139
254
|
```
|
140
255
|
|
141
|
-
|
256
|
+
##### Delete a DHCP static lease
|
257
|
+
[X] DELETE /api/v1/dhcp/static\_lease/{id}
|
142
258
|
|
143
259
|
```ruby
|
144
260
|
static_lease.destroy('00:DE:AD:B0:0B:55')
|
145
261
|
```
|
146
262
|
|
147
|
-
|
263
|
+
##### Add a DHCP static lease
|
264
|
+
[X] POST /api/v1/dhcp/static\_lease/
|
265
|
+
|
148
266
|
```ruby
|
149
267
|
static_lease.create({
|
150
268
|
:ip => '192.168.1.222',
|
@@ -152,23 +270,50 @@ static_lease.create({
|
|
152
270
|
})
|
153
271
|
```
|
154
272
|
|
155
|
-
|
156
|
-
|
273
|
+
##### Get the list of DHCP dynamic leases
|
274
|
+
[ ] GET /api/v1/dhcp/dynamic\_lease/
|
275
|
+
|
276
|
+
### Ftp
|
277
|
+
|
278
|
+
#### Ftp config API
|
279
|
+
|
280
|
+
##### Get the current Ftp configuration
|
281
|
+
[ ] GET /api/v1/ftp/config/
|
282
|
+
|
283
|
+
##### Update the FTP configuration
|
284
|
+
[ ] PUT /api/v1/ftp/config/
|
285
|
+
|
286
|
+
### NAT
|
157
287
|
|
158
|
-
|
288
|
+
#### Dmz Config API
|
289
|
+
|
290
|
+
##### Get the current Dmz configuration
|
291
|
+
[ ] GET /api/v1/fw/dmz/
|
292
|
+
|
293
|
+
##### Update the current Dmz configuration
|
294
|
+
[ ] PUT /api/v1/fw/dmz/
|
295
|
+
|
296
|
+
### Port Forwarding
|
297
|
+
|
298
|
+
#### Port Forwarding API
|
299
|
+
|
300
|
+
##### Getting the list of port forwarding
|
301
|
+
[X] GET /api/v1/fw/redir/
|
159
302
|
|
160
303
|
```ruby
|
161
304
|
port_forwardings = FreeboxApi::Resources::PortForwarding.new(mySession)
|
162
305
|
port_forwardings.index
|
163
306
|
```
|
164
307
|
|
165
|
-
|
308
|
+
##### Getting a specific port forwarding
|
309
|
+
[X] GET /api/v1/fw/redir/{redir\_id}
|
166
310
|
|
167
311
|
```ruby
|
168
312
|
port_forwardings.show(1)
|
169
313
|
```
|
170
314
|
|
171
|
-
|
315
|
+
##### Updating a port forwarding
|
316
|
+
[X] PUT /api/v1/fw/redir/{redir\_id}
|
172
317
|
|
173
318
|
```ruby
|
174
319
|
port_forwardings.update({
|
@@ -177,7 +322,8 @@ port_forwardings.update({
|
|
177
322
|
})
|
178
323
|
```
|
179
324
|
|
180
|
-
|
325
|
+
##### Add a port forwarding
|
326
|
+
[X] POST /api/v1/fw/redir/
|
181
327
|
|
182
328
|
```ruby
|
183
329
|
port_forwardings.create({
|
@@ -191,24 +337,130 @@ port_forwardings.create({
|
|
191
337
|
})
|
192
338
|
```
|
193
339
|
|
194
|
-
|
340
|
+
##### Delete a port forwarding
|
341
|
+
[X] DELETE /api/v1/fw/redir/{redir\_id}
|
195
342
|
|
196
343
|
```ruby
|
197
344
|
port_forwardings.destroy(3)
|
198
345
|
```
|
199
346
|
|
200
|
-
UPnP IGD
|
201
|
-
|
347
|
+
### UPnP IGD
|
348
|
+
|
349
|
+
#### UPnP IGD config API
|
202
350
|
|
203
|
-
|
351
|
+
##### Get the current UPnP IGD configuration
|
352
|
+
[ ] GET /api/v1/upnpigd/config/
|
353
|
+
|
354
|
+
##### Update the UPnP IGD configuration
|
355
|
+
[ ] PUT /api/v1/upnpigd/config/
|
356
|
+
|
357
|
+
#### UPnP IGD Redirection API
|
358
|
+
|
359
|
+
##### Get the list of current redirection
|
360
|
+
[X] GET /api/v1/upnpigd/redir/
|
204
361
|
|
205
362
|
```ruby
|
206
363
|
upnp_redir = FreeboxApi::Resources::UPnPRedir.new(mySession)
|
207
364
|
upnp_redir.index
|
208
365
|
```
|
209
366
|
|
210
|
-
|
367
|
+
##### Delete a redirection
|
368
|
+
[X] DELETE /api/v1/upnpigd/redir/{id}
|
211
369
|
|
212
370
|
```ruby
|
213
371
|
upnp_redir.destroy('0.0.0.0-53644-udp')
|
214
372
|
```
|
373
|
+
|
374
|
+
### LCD
|
375
|
+
|
376
|
+
#### LCD config API
|
377
|
+
|
378
|
+
##### Get the current LCD configuration
|
379
|
+
[ ] GET /api/v1/lcd/config/
|
380
|
+
|
381
|
+
##### Update the lcd configuration
|
382
|
+
[ ] PUT /api/v1/lcd/config/
|
383
|
+
|
384
|
+
### Network Share
|
385
|
+
|
386
|
+
#### Samba config API
|
387
|
+
|
388
|
+
##### Get the current Samba configuration
|
389
|
+
[ ] GET /api/v1/netshare/samba/
|
390
|
+
|
391
|
+
##### Update the Samba configuration
|
392
|
+
[ ] PUT /api/v1/netshare/samba/
|
393
|
+
|
394
|
+
#### Afp config API
|
395
|
+
|
396
|
+
##### Get the current Afp configuration
|
397
|
+
[ ] GET /api/v1/netshare/afp/
|
398
|
+
|
399
|
+
##### Update the Afp configuration
|
400
|
+
[ ] PUT /api/v1/netshare/afp/
|
401
|
+
|
402
|
+
### UPnP AV
|
403
|
+
|
404
|
+
#### UPnP AV config API
|
405
|
+
|
406
|
+
##### Get the current UPnP AV configuration
|
407
|
+
[ ] GET /api/v1/upnpav/config/
|
408
|
+
|
409
|
+
##### Update the UPnP AV configuration
|
410
|
+
[ ] PUT /api/v1/upnpav/config/
|
411
|
+
|
412
|
+
### Switch
|
413
|
+
|
414
|
+
#### Switch API
|
415
|
+
|
416
|
+
##### Get the current switch status
|
417
|
+
[ ] GET /api/v1/switch/status/
|
418
|
+
|
419
|
+
##### Get a port configuration
|
420
|
+
[ ] GET /api/v1/switch/port/{id}
|
421
|
+
|
422
|
+
##### Update a port configuration
|
423
|
+
[ ] PUT /api/v1/switch/port/{id}
|
424
|
+
|
425
|
+
##### Get a port stats
|
426
|
+
[ ] GET /api/v1/switch/port/{id}/stats
|
427
|
+
|
428
|
+
### Wi-Fi
|
429
|
+
|
430
|
+
#### Wi-Fi Status API
|
431
|
+
|
432
|
+
##### Get the current Wi-Fi status
|
433
|
+
[ ] GET /api/v1/wifi/
|
434
|
+
|
435
|
+
#### Wi-Fi config API
|
436
|
+
|
437
|
+
##### Get the current Wi-Fi configuration
|
438
|
+
[ ] GET /api/v1/wifi/config/
|
439
|
+
|
440
|
+
##### Update the Wi-Fi configuration
|
441
|
+
[ ] PUT /api/v1/wifi/config/
|
442
|
+
|
443
|
+
##### Reset the Wi-Fi configuration
|
444
|
+
[ ] POST /api/v1/wifi/config/reset/
|
445
|
+
|
446
|
+
#### Wi-Fi Stations API
|
447
|
+
|
448
|
+
##### Get Wi-Fi Stations List
|
449
|
+
[ ] GET /api/v1/wifi/stations/{bss\_name}/
|
450
|
+
|
451
|
+
#### Wi-Fi MAC Filter API
|
452
|
+
|
453
|
+
##### Get the MAC filter list
|
454
|
+
[ ] GET /api/v1/wifi/mac\_filter/
|
455
|
+
|
456
|
+
##### Getting a particular MAC filter
|
457
|
+
[ ] GET /api/v1/wifi/mac\_filter/{filter\_id}
|
458
|
+
|
459
|
+
##### Updating a MAC filter
|
460
|
+
[ ] PUT /api/v1/wifi/mac\_filter/{filter\_id}
|
461
|
+
|
462
|
+
##### Delete a MAC filter
|
463
|
+
[ ] DELETE /api/v1/wifi/mac\_filter/{filter\_id}
|
464
|
+
|
465
|
+
##### Create a new MAC filter
|
466
|
+
[ ] POST /api/v1/wifi/mac\_filter/
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module FreeboxApi
|
2
|
+
|
3
|
+
module Services
|
4
|
+
|
5
|
+
class Connection
|
6
|
+
|
7
|
+
def initialize(session)
|
8
|
+
@session = session
|
9
|
+
end
|
10
|
+
|
11
|
+
def status
|
12
|
+
@session.http_call('get', '/connection/')
|
13
|
+
end
|
14
|
+
|
15
|
+
def config
|
16
|
+
@session.http_call('get', '/connection/config/')
|
17
|
+
end
|
18
|
+
|
19
|
+
def config=(value)
|
20
|
+
@session.http_call('put', '/connection/config/', value)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module FreeboxApi
|
2
|
+
|
3
|
+
module Services
|
4
|
+
|
5
|
+
class DHCP
|
6
|
+
|
7
|
+
def initialize(session)
|
8
|
+
@session = session
|
9
|
+
end
|
10
|
+
|
11
|
+
def config
|
12
|
+
@session.http_call('get', '/dhcp/config/')
|
13
|
+
end
|
14
|
+
|
15
|
+
def config=(value)
|
16
|
+
@session.http_call('put', '/dhcp/config/', value)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/lib/freebox_api/version.rb
CHANGED
data/lib/freebox_api.rb
CHANGED
@@ -6,3 +6,5 @@ require 'freebox_api/session'
|
|
6
6
|
require 'freebox_api/version'
|
7
7
|
resource_files = Dir[File.expand_path("#{File.dirname(__FILE__)}/freebox_api/resources/*.rb", __FILE__)]
|
8
8
|
resource_files.each { |f| require f }
|
9
|
+
service_files = Dir[File.expand_path("#{File.dirname(__FILE__)}/freebox_api/services/*.rb", __FILE__)]
|
10
|
+
service_files.each { |f| require f }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freebox_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mickaël Canévet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -56,6 +56,8 @@ files:
|
|
56
56
|
- lib/freebox_api/resources/port_forwarding.rb
|
57
57
|
- lib/freebox_api/resources/static_lease.rb
|
58
58
|
- lib/freebox_api/resources/upnp_redir.rb
|
59
|
+
- lib/freebox_api/services/connection.rb
|
60
|
+
- lib/freebox_api/services/dhcp.rb
|
59
61
|
- lib/freebox_api/session.rb
|
60
62
|
- lib/freebox_api/version.rb
|
61
63
|
homepage: http://github.com/mcanevet/freebox_api
|