freebox_api 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|