ruby-bandwidth-iris 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +13 -0
  3. data/.gitignore +12 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +20 -0
  8. data/README.md +571 -0
  9. data/Rakefile +5 -0
  10. data/examples/account.rb +15 -0
  11. data/examples/available_npa_nxx.rb +17 -0
  12. data/examples/available_number.rb +17 -0
  13. data/examples/city.rb +16 -0
  14. data/examples/config.yml.example +4 -0
  15. data/examples/covered-rate-center.rb +19 -0
  16. data/examples/loa.pdf +0 -0
  17. data/examples/order.rb +51 -0
  18. data/examples/port-in.rb +95 -0
  19. data/examples/sip_peer.rb +60 -0
  20. data/examples/site.rb +29 -0
  21. data/examples/tn.rb +20 -0
  22. data/lib/bandwidth-iris/account.rb +10 -0
  23. data/lib/bandwidth-iris/api_item.rb +36 -0
  24. data/lib/bandwidth-iris/available_npa_nxx.rb +15 -0
  25. data/lib/bandwidth-iris/available_number.rb +15 -0
  26. data/lib/bandwidth-iris/city.rb +15 -0
  27. data/lib/bandwidth-iris/client.rb +232 -0
  28. data/lib/bandwidth-iris/client_wrapper.rb +28 -0
  29. data/lib/bandwidth-iris/covered_rate_center.rb +17 -0
  30. data/lib/bandwidth-iris/disc_number.rb +19 -0
  31. data/lib/bandwidth-iris/disconnect.rb +36 -0
  32. data/lib/bandwidth-iris/dlda.rb +39 -0
  33. data/lib/bandwidth-iris/errors.rb +31 -0
  34. data/lib/bandwidth-iris/import_to_account.rb +24 -0
  35. data/lib/bandwidth-iris/in_service_number.rb +24 -0
  36. data/lib/bandwidth-iris/lidb.rb +24 -0
  37. data/lib/bandwidth-iris/lnp_checker.rb +18 -0
  38. data/lib/bandwidth-iris/lsr_order.rb +58 -0
  39. data/lib/bandwidth-iris/order.rb +76 -0
  40. data/lib/bandwidth-iris/port_in.rb +80 -0
  41. data/lib/bandwidth-iris/port_out.rb +24 -0
  42. data/lib/bandwidth-iris/rate_center.rb +19 -0
  43. data/lib/bandwidth-iris/sip_peer.rb +47 -0
  44. data/lib/bandwidth-iris/site.rb +83 -0
  45. data/lib/bandwidth-iris/subscription.rb +42 -0
  46. data/lib/bandwidth-iris/tn.rb +41 -0
  47. data/lib/bandwidth-iris/tn_reservation.rb +26 -0
  48. data/lib/bandwidth-iris/user.rb +20 -0
  49. data/lib/bandwidth-iris/version.rb +4 -0
  50. data/lib/ruby-bandwidth-iris.rb +29 -0
  51. data/ruby-bandwidth-iris.gemspec +26 -0
  52. data/spec/bandwidth-iris/account_spec.rb +19 -0
  53. data/spec/bandwidth-iris/available_npa_nxx_spec.rb +22 -0
  54. data/spec/bandwidth-iris/available_number_spec.rb +19 -0
  55. data/spec/bandwidth-iris/city_spec.rb +22 -0
  56. data/spec/bandwidth-iris/client_spec.rb +125 -0
  57. data/spec/bandwidth-iris/covered_rate_center_spec.rb +22 -0
  58. data/spec/bandwidth-iris/disconnect_spec.rb +52 -0
  59. data/spec/bandwidth-iris/dlda_spec.rb +47 -0
  60. data/spec/bandwidth-iris/import_to_account_spec.rb +36 -0
  61. data/spec/bandwidth-iris/in_service_number_spec.rb +33 -0
  62. data/spec/bandwidth-iris/lidb_spec.rb +44 -0
  63. data/spec/bandwidth-iris/lnp_checker_spec.rb +24 -0
  64. data/spec/bandwidth-iris/lsr_order_spec.rb +96 -0
  65. data/spec/bandwidth-iris/order_spec.rb +124 -0
  66. data/spec/bandwidth-iris/port_in_spec.rb +135 -0
  67. data/spec/bandwidth-iris/port_out_spec.rb +36 -0
  68. data/spec/bandwidth-iris/rate_center_spec.rb +29 -0
  69. data/spec/bandwidth-iris/sip_peer_spec.rb +86 -0
  70. data/spec/bandwidth-iris/site_spec.rb +95 -0
  71. data/spec/bandwidth-iris/subscription_spec.rb +58 -0
  72. data/spec/bandwidth-iris/tn_reservation_spec.rb +39 -0
  73. data/spec/bandwidth-iris/tn_spec.rb +68 -0
  74. data/spec/bandwidth-iris/user_spec.rb +21 -0
  75. data/spec/helper.rb +75 -0
  76. data/spec/xml.yml +46 -0
  77. metadata +256 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 538d68fb402de2a2d2e6205243b35c9e234d2470
4
+ data.tar.gz: 6fa4ef1e716a3cd1cba14b08a84636225f623169
5
+ SHA512:
6
+ metadata.gz: 36d2daed8eaa6e88775d8fbd2d0e1f7c5ca4c86223c8d28d903d5d425cc5bf061f4e78cc8a7de87d4060142df052c2e338a53a52574c93635c938ab46402b2d9
7
+ data.tar.gz: 833a20b387718587bf59e6c94e7c8c66fd2d8069eb57050f701a97df1e7009230bc7b2b549619560c3a6de2a6fc509bf9c500808acd28eb0cf9dd687076b60e0
data/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # http://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [*.md]
13
+ trim_trailing_whitespace = false
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ .ruby-version
2
+ pkg/*
3
+ Gemfile.lock
4
+ doc
5
+ coverage
6
+ *.gem
7
+ .bundle
8
+ *.log
9
+ *.swp
10
+ *.swo
11
+ .yardoc
12
+ examples/config.yml
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --fail-fast
3
+ --require helper
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - '1.9.3'
4
+ - '2.0.0'
5
+ - '2.1.0'
6
+ - '2.2.0'
7
+
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+ gem 'rake'
3
+
4
+ group :test do
5
+ gem 'coveralls'
6
+ gem 'rspec', '>= 2.14'
7
+ gem 'simplecov'
8
+ end
9
+
10
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,571 @@
1
+ # ruby-bandwidth-iris
2
+
3
+ [![Build](https://travis-ci.org/bandwidthcom/ruby-bandwidth-Bandwidth::png)](https://travis-ci.org/bandwidthcom/ruby-bandwidth-iris)
4
+
5
+ Ruby Client library for IRIS / BBS API
6
+
7
+ ## Install
8
+
9
+ Run
10
+
11
+ ```
12
+ gem install ruby-bandwidth-iris
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```ruby
18
+ require 'ruby-bandwidth-iris'
19
+
20
+ # Using directly
21
+ client = BandwidthIris::Client.new('accountId', 'userName', 'password')
22
+ sites = BandwidthIris::Site.list(client)
23
+
24
+ # Or you can use default client instance (do this only once)
25
+ BandwidthIris::Client.global_options = {
26
+ :account_id => 'accountId',
27
+ :username => 'userName',
28
+ :password => 'password'
29
+ }
30
+
31
+ # Now you can call any functions without first arg 'client'
32
+
33
+ sites = BandwidthIris::Site.list()
34
+
35
+ ```
36
+
37
+ ## Examples
38
+ There is an 'examples' folder in the source tree that shows how each of the API objects work with simple example code. To run the examples:
39
+
40
+ ```bash
41
+ $ cd examples
42
+ $ cp config.yml.example config.yml
43
+ ```
44
+ Edit the config.yml to match your IRIS credentials and run the examples individually. e.g.
45
+
46
+ ```bash
47
+ ruby covered_rate_centers.rb
48
+ ```
49
+ If the examples take command line parameters, you will get the usage by just executing the individual script.
50
+
51
+
52
+ ## API Objects
53
+ ### General principles
54
+ When fetching objects from the API, it will always return an object that has the client
55
+ instantiated so that you can call dependent methods as well as update, delete.
56
+
57
+ Example:
58
+ ```ruby
59
+ site = BandwidthIris::Site.create({siteObject})
60
+
61
+ # or
62
+
63
+ site = BandwidthIris::Site.create(client, {siteObject})
64
+
65
+ ```
66
+
67
+ Each entity has a get, list, create, update and delete method if appropriate.
68
+
69
+ All properties are underscored and low-cased for Ruby readability, and are converted on the fly to the proper
70
+ case by the internals of the API when converted to XML.
71
+
72
+ ## Available Numbers
73
+
74
+ ```Ruby
75
+ list = BandwidthIris::AvailableNumbers.list(query)
76
+ ```
77
+
78
+ ## Available NpaNxx
79
+ ```ruby
80
+ list = BandwidthIris::AvailableNpaNxx.list({:area_code => "818", :quantity =>5})
81
+ ```
82
+
83
+ ## Cities
84
+ ```ruby
85
+ list = Bandwidth::City.list(:available => true, :state =>"CA"})
86
+ ```
87
+
88
+ ## Covered Rate Centers
89
+ ```ruby
90
+ Bandwidth::CoveredRateCenter.list({:zip => "27601"})
91
+ ```
92
+
93
+ ## Disconnected Numbers
94
+ Retrieves a list of disconnected numbers for an account
95
+ ```ruby
96
+ Bandwidth::DiscNumber.list({:area_code => "919"})
97
+ ```
98
+
99
+ ## Disconnect Numbers
100
+ The Disconnect object is used to disconnect numbers from an account. Creates a disconnect order that can be tracked
101
+
102
+ ### Create Disconnect
103
+ ```ruby
104
+ Bandwidth::Disconnect.create("Disconnect Order Name", ["9195551212", "9195551213"])
105
+ ```
106
+
107
+ ### Add Note to Disconnect
108
+ ```ruby
109
+ order.add_note({:user_id => "my id", :description => "Test"})
110
+ ```
111
+
112
+ ### Get Notes for Disconnect
113
+ ```ruby
114
+ order.get_notes()
115
+ ```
116
+
117
+ ## Dlda
118
+
119
+ ### Create Ddla
120
+ ```ruby
121
+ dlda = {
122
+ :customer_order_id => "Your Order Id",
123
+ :dlda_tn_groups => [
124
+ :dlda_tn_group => {
125
+ :telephone_numbers => ["9195551212"],
126
+ :subscriber_type => "RESIDENTIAL",
127
+ :listing_type => "LISTED",
128
+ :listing_name => {
129
+ :first_name => "John",
130
+ :last_name => "Smith"
131
+ },
132
+ :list_address => true,
133
+ :address => {
134
+ :house_number => "123",
135
+ :street_name => "Elm",
136
+ :street_suffix => "Ave",
137
+ :city => "Carpinteria",
138
+ :state_code => "CA",
139
+ :zip => "93013",
140
+ :address_type => "DLDA"
141
+ }
142
+ }
143
+ ]
144
+ }
145
+
146
+ Bandwidth::Dlda.create(dlda)
147
+ ```
148
+
149
+ ### Get Dlda
150
+ ```ruby
151
+ dlda = Bandwidth::Dlda.get(id)
152
+ ```
153
+
154
+ ### Get Dlda History
155
+ ```ruby
156
+ dlda.get_history()
157
+ ```
158
+
159
+ ### List Dldas
160
+ ```ruby
161
+ Bandwidth::Dlda.list({:telephone_number => "9195551212"})
162
+ ```
163
+
164
+ ## Import To Account
165
+ This path is generally not available to Bandwidth accounts, and as such is not documented in this API
166
+
167
+ ## In Service Numbers
168
+
169
+ ### List InService Numbers
170
+ ```ruby
171
+ Bandwidth::InServiceNumber.list({:area_code => "919"})
172
+ ```
173
+
174
+ ### Get InService Number Detail
175
+ ```ruby
176
+ Bandwidth::InServiceNumber.get("9195551212")
177
+ ```
178
+
179
+ ## Lidb
180
+
181
+ ### Create
182
+ ```ruby
183
+ data = {
184
+ :customer_order_id => "A test order",
185
+ :lidb_tn_groups => {
186
+ :lidb_tn_group => {
187
+ :telephone_numbers => ["8048030097", "8045030098"],
188
+ :subscriber_information => "Joes Grarage",
189
+ :use_type => "RESIDENTIAL",
190
+ :visibility => "PUBLIC"
191
+ }
192
+ }
193
+ }
194
+ Bandwidth::Lidbs.create(data)
195
+ ```
196
+ ### Get Lidb
197
+ ```ruby
198
+ Bandwidth::Lidbs.get(id)
199
+ ```
200
+ ### List Lidbs
201
+ ```ruby
202
+ Bandwidth::Lidbs.list({:telephone_number => "9195551212"})
203
+ ```
204
+
205
+ ## LNP Checker
206
+ ### Check LNP
207
+ ```ruby
208
+ numbers = ["9195551212", "9195551213"]
209
+ full_check = true
210
+ Bandwidth::LnpChecker.check(numbers, full_check)
211
+ ```
212
+
213
+ ## LSR Orders
214
+ ### Create LSR Order
215
+ ```ruby
216
+ data = {
217
+ :pon => "Some Pon",
218
+ :customer_order_id => "MyId5",
219
+ 'sPID' => "123C",
220
+ :billing_telephone_number => "9192381468",
221
+ :requested_foc_date => "2015-11-15",
222
+ :authorizing_person => "Jim Hopkins",
223
+ :subscriber => {
224
+ :subscriber_type => "BUSINESS",
225
+ :business_name => "BusinessName",
226
+ :service_address => {
227
+ :house_number => "11",
228
+ :street_name => "Park",
229
+ :street_suffix => "Ave",
230
+ :city => "New York",
231
+ :state_code => "NY",
232
+ :zip => "90025"
233
+ },
234
+ :account_number => "123463",
235
+ :pin_number => "1231"
236
+ },
237
+ :list_of_telephone_numbers => {
238
+ :telephone_number => ["9192381848", "9192381467"]
239
+ }
240
+ }
241
+
242
+ Bandwidth::LsrOrder.create(data)
243
+ ```
244
+ ### Get LSR Order
245
+ ```ruby
246
+ Bandwidth::LsrOrder.get(id)
247
+ ```
248
+ ### List LSR Orders
249
+ ```ruby
250
+ Bandwidth::LsrOrder.list({:pon =>"Some Pon"})
251
+ ```
252
+ ### Update LSR Order
253
+ ```ruby
254
+ order.requestedFocDate = "2015-11-16"
255
+ Bandwidth::LsrOrder.update(order)
256
+ ```
257
+ ### Get LSR Order History
258
+ ```ruby
259
+ order.get_history()
260
+ ```
261
+ ### Get LSR Order Notes
262
+ ```ruby
263
+ order.get_notes()
264
+ ```
265
+ ### Add LSR Order Note
266
+ ```ruby
267
+ var note = {:user_id => "my id", :description => "Test"}
268
+ order.add_note(note)
269
+ ```
270
+
271
+ ## Orders
272
+ ### Create Order
273
+ ```ruby
274
+ order = {
275
+ :name => "A Test Order",
276
+ :site_id => 1111,
277
+ :existing_telephone_number_order_type => {
278
+ telephone_number_list =>
279
+ {
280
+ :telephone_number => ["9195551212"]
281
+ }
282
+
283
+ }
284
+ }
285
+
286
+ Bandwidth::Order.create(order)
287
+ ```
288
+ ### Get Order
289
+ ```ruby
290
+ Bandwidth::Order.get(id)
291
+ ```
292
+ ### List Orders
293
+ ```ruby
294
+ Bandwidth::Order.list(query)
295
+ ```
296
+ ### Order Instance Methods
297
+ ```ruby
298
+ // get Area Codes
299
+ order.get_area_codes()
300
+
301
+ // add note to order
302
+ var note = {:user_id => "my id", :description => "Test"}
303
+ order.add_note(note)
304
+
305
+ //get Npa Nxxs
306
+ order.get_npa_nxx()
307
+
308
+ // get number totals
309
+ order.get_totals()
310
+
311
+ // get all Tns for an order
312
+ order.get_tns()
313
+
314
+ // get order history
315
+ order.get_history()
316
+
317
+ // get order notes
318
+ order.get_notes()
319
+ ```
320
+
321
+ ## Port Ins
322
+ ### Create PortIn
323
+ ```ruby
324
+ data = {
325
+ :site_id =>1234,
326
+ :peer_id => 5678,
327
+ :billing_telephone_number => "9195551212",
328
+ :subscriber => {
329
+ :subscriber_type => "BUSINESS",
330
+ :business_name => "Company",
331
+ :service_address => {
332
+ :house_number => "123",
333
+ :street_name => "EZ Street",
334
+ :city => "Raleigh",
335
+ :state_code => "NC",
336
+ :county => "Wake"
337
+ }
338
+ },
339
+ :loa_authorizing_person => "Joe Blow",
340
+ :list_of_phone_numbers => {
341
+ :phone_number => ["9195551212"]
342
+ },
343
+ :billing_type => "PORTIN"
344
+ }
345
+
346
+ Bandwidth::PortIn.create(data)
347
+ ```
348
+ ## Get PortIn
349
+ ```ruby
350
+ Bandwidth::PortIn.get("id", callback)
351
+ ```
352
+
353
+ ### PortIn Instance methods
354
+ ```ruby
355
+ portIn.update(data)
356
+ portIn.delete()
357
+ ```
358
+ ### PortIn File Management
359
+ ```ruby
360
+
361
+ # Add File
362
+ portIn.create_file(IO.read("myFile.txt"))
363
+
364
+ # Update File
365
+ portIn.update_file("myFile.txt", IO.read("myFile.txt"))
366
+
367
+ # Get File
368
+ portIn.get_file("myFile.txt")
369
+
370
+ # Get File Metadata
371
+ portIn.get_file_metadata("myFile.txt")
372
+
373
+ # Get Files
374
+ portIn.get_files()
375
+ ```
376
+
377
+ ## Port Out
378
+ ### List PortOuts
379
+ ```ruby
380
+ query = {:status => "complete"}
381
+ Bandwidth::PortOut.list(query)
382
+ ```
383
+ ### Get PortOut
384
+ ```ruby
385
+ Bandwidth::PortOut.get(id)
386
+ ```
387
+
388
+ ## Rate Centers
389
+ ### List Ratecenters
390
+ ```ruby
391
+ query = {:available => true, :state => "CA"}
392
+ Bandwidth::RateCenter.list(query)
393
+ ```
394
+
395
+ ## SIP Peers
396
+ ### Create SIP Peer
397
+ ```ruby
398
+ data = {
399
+ :peer_name => "A New SIP Peer",
400
+ :is_default_peer => false,
401
+ :short_messaging_protocol =>"SMPP",
402
+ :site_id => selectedSite,
403
+ :voice_hosts =>
404
+ {
405
+ :host => [{
406
+ :host_name => "1.1.1.1"
407
+ }]
408
+ },
409
+ :sms_hosts =>
410
+ {
411
+ :host => [{
412
+ :host_name => "1.1.1.1"
413
+ }]
414
+ },
415
+ :termination_hosts =>
416
+ {
417
+ :termination_host =>[{
418
+ :host_name => "1.1.1.1",
419
+ :port => 5060
420
+ }]
421
+ }
422
+
423
+ }
424
+
425
+ Bandwidth::SipPeer.create(data)
426
+ ```
427
+ ### Get SIP Peer
428
+ ```ruby
429
+ Bandwidth::SipPeer.get("id")
430
+ ```
431
+ ### List SIP Peers
432
+ ```ruby
433
+ Bandwidth::SipPeer.list(siteId)
434
+ ```
435
+ ### Delete SIP Peer
436
+ ```ruby
437
+ sipPeer.delete()
438
+ ```
439
+ ### SipPeer TN Methods
440
+ ```ruby
441
+ # get TN for this peer
442
+ sipPeer.get_tns(number)
443
+
444
+ # get all TNs for this peer
445
+ sipPeer.get_tns()
446
+
447
+ # Update TNs for this peer
448
+ tns = {:full_number => "123456", :rewrite_user => "test"}
449
+ sipPeer.update_tns(number, tns)
450
+
451
+ # Move Tns to new peer
452
+ numbers_to_move = ["9195551212", "9195551213"]
453
+ sipPeer.move_tns(numbers_to_move)
454
+ ```
455
+
456
+ ## Sites
457
+
458
+ ### Create A Site
459
+ A site is what is called Location in the web UI.
460
+ ```ruby
461
+ site = {
462
+ :name =>"A new site",
463
+ :description =>"A new description",
464
+ :address => {
465
+ :house_number => "123",
466
+ :street_name => "Anywhere St",
467
+ :city => "Raleigh",
468
+ :state_code =>"NC",
469
+ :zip => "27609",
470
+ :address_type => "Service"
471
+ }
472
+ };
473
+ Bandwidth::Site.create(site)
474
+ ```
475
+
476
+ ### Updating a Site
477
+ ```ruby
478
+ site.update({:name => "New name"})
479
+ ```
480
+ ### Deleting a Site
481
+ ```ruby
482
+ site.delete()
483
+ ```
484
+ ### Listing All Sites
485
+ ```ruby
486
+ Bandwidth::Site.list()
487
+ ```
488
+ ```
489
+ ### Site SipPeer Methods
490
+ ```ruby
491
+ # get Sip Peers
492
+ site.get_sip_peers()
493
+
494
+ # get Sip Peer
495
+ site.get_sip_peer(id)
496
+
497
+ # create Sip Peer
498
+ sip_peer = {:name =>"SIP Peer"}
499
+ site.create_sip_peer(sipPeer)
500
+ ```
501
+
502
+ ## Subscriptions
503
+ ### Create Subscription
504
+ ```ruby
505
+ subscription = {
506
+ :order_type => "orders",
507
+ :callback_subcription => {
508
+ :url => "http://mycallbackurl.com",
509
+ :user => "userid",
510
+ :expiry => 12000
511
+ }
512
+ }
513
+ Bandwidth::Subscription.create(subscription)
514
+ ```
515
+ ### Get Subscription
516
+ ```ruby
517
+ Bandwidth::Subscription.get(id)
518
+ ```
519
+ ### List Subscriptions
520
+ ```ruby
521
+ Bandwidth::Subscription.list(query)
522
+ ```
523
+ ### Subscription Instance Methods
524
+ ```ruby
525
+ # update subscription
526
+ updatedData = {:order_type => "portins"}
527
+ subscription.update(updatedData)
528
+
529
+ # delete subscription
530
+ subscription.delete()
531
+ });
532
+ ```
533
+
534
+ ## TNs
535
+ ### Get TN
536
+ ```ruby
537
+ tn = Bandwidth::Tn.get(fullNumber)
538
+ ```
539
+ ### List TNs
540
+ ```ruby
541
+ Bandwidth::Tn.list(query)
542
+ ```
543
+ ### TN Instance Methods
544
+ ```ruby
545
+ # Get TN Details
546
+ tn = tn.geti_tn_details()
547
+
548
+ # Get Sites
549
+ tn.get_sites()
550
+
551
+ # Get Sip Peers
552
+ tn.get_sip_peers()
553
+
554
+ # Get Rate Center
555
+ tn.get_rate_center()
556
+
557
+ ```
558
+
559
+ ## TN Reservation
560
+ ### Create TN Reservation
561
+ ```ruby
562
+ Bandwidth::TnReservation.create({:reserved_tn => "9195551212"})
563
+ ```
564
+ ### Get TN Reservation
565
+ ```ruby
566
+ tn = Bandwidth::TnReservation.get(id)
567
+ ```
568
+ ### Delete TN Reservation
569
+ ```ruby
570
+ tn.delete()
571
+ ```
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(:spec)
4
+
5
+ task :default => :spec
@@ -0,0 +1,15 @@
1
+ lib = File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'yaml'
5
+ require 'ruby-bandwidth-iris'
6
+ config = YAML.load_file('config.yml')
7
+
8
+ BandwidthIris::Client.global_options = {
9
+ :api_endpoint => config['api_endpoint'],
10
+ :user_name => config['user_name'],
11
+ :password => config['password'],
12
+ :account_id => config['account_id']
13
+ }
14
+ puts BandwidthIris::Account.get()
15
+
@@ -0,0 +1,17 @@
1
+ lib = File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'yaml'
5
+ require 'ruby-bandwidth-iris'
6
+ config = YAML.load_file('config.yml')
7
+
8
+ BandwidthIris::Client.global_options = {
9
+ :api_endpoint => config['api_endpoint'],
10
+ :user_name => config['user_name'],
11
+ :password => config['password'],
12
+ :account_id => config['account_id']
13
+ }
14
+
15
+
16
+ puts BandwidthIris::AvailableNpaNxx.list({:state => 'NC', :quantity => 3})
17
+
@@ -0,0 +1,17 @@
1
+ lib = File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'yaml'
5
+ require 'ruby-bandwidth-iris'
6
+ config = YAML.load_file('config.yml')
7
+
8
+ BandwidthIris::Client.global_options = {
9
+ :api_endpoint => config['api_endpoint'],
10
+ :user_name => config['user_name'],
11
+ :password => config['password'],
12
+ :account_id => config['account_id']
13
+ }
14
+
15
+
16
+ puts BandwidthIris::AvailableNumber.list({:state => "NC", :quantity => 3})
17
+