-
Notifications
You must be signed in to change notification settings - Fork 36
/
CHANGES
572 lines (495 loc) · 26.8 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
= 0.15.0 - 2-Aug-2022
* Update parallel gem to v1.22
= 0.14.0 - 25-May-2022
* Fix undefined method delegate (#418)
* Remove the deprecated `Microsoft Cloud Deutschland` environment (#417)
* Fix issue with ActiveSupport 7+ (#419)
= 0.13.1 - 16-Feb-2022
* Fix issue with ActiveSupport 7+ (#415)
* Switch to GitHub Actions (#414)
= 0.11.0 - 20-Apr-2021
* Modify the VirtualMachineService#get method to include instance view
information
* Update default ssl_version to TLSv1_2
* Fix tenants method
* Handle application/xml exception content-types
= 0.10.0 - 14-May-2020
* Updated the rest-client dependency to 2.1.0.
* Updated the azure-signature dependency to 0.3.0.
* Updated the MetricsService#list_metrics method to use the current API, which
had apparently undergone some serious revision since we first implemented it.
It now accepts a hash of options, though you may still pass a string for the
sake of backwards compatibility.
= 0.9.15 - 23-Jan-2020
* The VirtualMachineService#delete_associated_resources now supports deleting
attached data disks.
= 0.9.14 - 23-Oct-2019
* Added the VirtualMachineService#list_by_location method.
* The VirtualMachineService#vm_operations method now returns a response object
instead of nil.
* The results of the ResourceProviderService#supported? method are now cached.
* Fixed a bug in the VirtualMachineService#vm_operate method where it wasn't
setting the response code.
* Fixed a bug in the Armrest::Configuration#log= method where it would bomb if
you used an object that was neither a string nor a logger instance.
* Made the requirements for the memoist gem less pessimistic.
* Some spec updates and general refactoring.
= 0.9.13 - 12-Sep-2018
* Updated the USGov AD authority endpoint, which was changed by Microsoft recently.
* Added the timeout option for the Configuration class. This allows you to set
the timeout value for all http requests. The default is 60 seconds.
* Added the get_secret and list_secrets methods to the KeyVaultService class.
* Added the get method to the VirtualMachineImageService class, plus some
internal refactoring
* Some internal updates for rubocop.
= 0.9.12 - 12-Jul-2018
* Fixed and updated the ResourceProviderService#list_api_versions method. The
previous version was broken and would probably return invalid informtion.
It has therefore been altered to require a service name in addition to the
namespace so that it can return accurate information.
* Added the extension, extension_types, and extension_type_versions instance
methods to the VirtualMachineImageService class.
= 0.9.11 - 8-May-2018
* Added the ResourceProviderService#supported? method.
* Added the Environment.discover singleton method. This will allow you to
automatically generate a minimum environment profile based on an endpoint.
= 0.9.10 - 17-Apr-2018
* Fixed a bug in the TemplateDeploymentService#create method where it would
transform template keys that shouldn't be transformed. Individual subclasses
can now control this behavior as needed.
* Updated the addressable dependency to 2.5.0.
* Updated the docs for the VirtualMachineExtension#list method. That method
appears to be working again. It was previously broken on the Azure side.
= 0.9.9 - 6-Apr-2018
* Changed the default endpoint used for fetching the initial authorization
token. It now uses the AD resource ID instead of the resource manager URL.
= 0.9.8 - 14-mar-2018
* Performance of the VirtualMachineImageService#list_all method has been
dramatically improved.
* Added the StorageAccountService#get_by_url method.
* Fixed an error message in the StorageAccountService#list_private_images method.
* Added an error check for invalid ID strings in the
ResourceGroupBasedService#get_by_id method.
* Minor doc updates.
= 0.9.7 - 5-Mar-2018
* Added get_by_id support for templates and template operations.
= 0.9.6 - 26-Feb-2018
* Another bugfix for the model generator. From now on all non-alphanumeric
characters are automatically converted to an underscore. Thanks go to
Robb Manes for the patch.
= 0.9.5 - 22-Jan-2018
* Fixed a bug in the exception handler for the StorageAccount#all_blobs
method and the StorageAccountService#get_private_images method.
* Added the Azure::Armrest::Storage::ManagedStorageHelper::ManagedDisk
class. This should now be the preferred approach for getting raw
blob information, as it is much more efficient.
= 0.9.4 - 29-Nov-2017
* Fixed the VirtualMachineService#delete_associated_resources to handle VM's
backed by managed storage, as well as VM's with a private IP.
* Added HDInsight service classes. Thanks go to Tyler Gregory for the PR.
* Updated README and VirtualMachineService documentation.
= 0.9.3 - 2-Nov-2017
* Fixed an issue in the get_by_id and delete_by_id methods where an invalid
request string could be generated. This primarily affected the
TemplateDeploymentService#delete_associated_resources method.
= 0.9.2 - 31-Oct-2017
* Fixed a bug in the StorageAccountService#list_private_images method. It
now accepts an option to skip accessor definitions.
* Fixed a caller bug that caused tests to fail on Windows.
* Fixed a bug where an argument to a sleep call could be a string by mistake.
* Fixed issues with continuation results for list methods in the
StorageAccount model class.
* The json dependency restriction was loosened to 2.anything.
* The nokogiri dependency was removed. We now rely on Hash#from_xml courtesy
of activesupport, which we were already using.
= 0.9.1 - 9-Oct-2017
* Fixed an issue where hash properties that contain a '$' sign would fail
when we attempted to convert them to model objects. They are now converted
to underscores.
= 0.9.0 - 6-Oct-2017
* Bump nokogiri to at least 1.8.1 to avoid security warnings.
* Adds the 'skip_attribute_definitions' flag on all azure armrest models. This
allows us to significantly reduce memory and increase speed within internal
methods that generate lots of intermediate objects. Thanks go to Nick LaMuro
for this work.
= 0.8.4 - 2-Oct-2017
* Logging bug fix in StorageAccount#all_blobs method.
* Modified the StorageAccountService#list_all_private_image method. It now
automatically skips over containers labeled "bootdiagnostics".
* Relaxed the nokogiri dependency in the gemspec because of incessant CVE's.
* Updated the parallel gem dependency.
* The ResourceGroupBasedService#get_by_id method is now case insensitive.
= 0.8.3 - 22-Sep-2017
* Most underlying requests will now automatically retry in certain
circumstances. Specifically, 409, 429 and most 50x errors will now
sleep and retry three times (by default) before giving up since
these errors are usually transient.
* Fixed an error handling bug in the StorageAccount#all_blobs method.
* Added the Configuration#max_retry accessor.
* Added the ArmrestCollection#next_link method (part of refactoring).
* The ArmrestService#wait method now takes an optional interval parameter.
* Refactored the ManagedStorageHelper#get_blob_raw method. It now does a better
job of waiting for, and releasing, the lock on the file.
* Some refactoring for speed, memory and the removal of duplicate code. Thanks
go to Nick LaMuro for the patches.
* General refactoring of the StorageAccountService class with regards to
passing configuration information.
= 0.8.2 - 30-Aug-2017
* The :list and :list_all methods for the ResourceProviderService class now
accepts a filter.
* The :list_all method for the TemplateDeploymentService class now accepts
a filter.
* The get_blob_raw method was refactored into a module that both the
Storage::SnapshotService and Storage::DiskService classes now mixin.
Thanks go to Jerry Keselman for the PR.
* Added the :exists? method to the ResourceGroupService class.
* Added the :exists? method to the TemplateDeploymentService class.
* The filter for private image collection now ignores case. This addresses
an issue where private images would not be picked up for regions
within Canada or India.
* Added the KeyVaultService class.
* The :create method in any ResourceGroupBasedService class will now
automatically camelize hash keys for you.
= 0.8.1 - 4-Aug-2017
* Fixed a bug in the DiskService#get_blob_raw method that affected you if you
used :start_byte + :length options. Thanks go to Jerry Keselman for the spot.
* The :filter option for ResourceGroupBaseService#list_all now ignores case
when testing against string values.
= 0.8.0 - 20-Jul-2017
* The StorageAccount#create_blob and StorageAccount#create_blob_snapshot methods
were heavily revamped and now return a ResponseHeaders object.
* Added support for storage file services to the Storage model, so you can
now create, delete or query files or directories on storage accounts.
* Added the list_all instance method to the VirtualMachineImageService class.
Thanks go to Tyler Gregory for the patch.
* Added the ArmestService#list_locations method. This returns an array of
Location objects. The ArmrestService#locations method still returns just
an array of strings, but is now deprecated.
* The StorageAccount#all_blobs method now accepts an options argument.
= 0.7.5 - 27-Jun-2017
* Added the ContainerService service class.
* Added the StorageAccount#access_key accessor. If set, this is now used as
the default since "properties.key1" is no longer supported by Azure.
* Added predefined Environment's for China and Germany.
* The nokogiri dependency was updated to 1.7.2.
= 0.7.4 - 9-Jun-2017
* Added the BaseModel#subscription_id method.
* Improved the underlying regex for BaseModel#resource_group.
* Added the StorageAccount#update_blob_properties method.
* The object returned by StorageAccountService#list_private_images now
includes the resource_group.
* The default storage_api_version was updated to 2016-05-31.
= 0.7.3 - 11-May-2017
* Added guards against ECONNREFUSED and TimeoutException for the
StorageAccountService#get_private_images and StorageAccount#all_blobs
methods. These errors are sporadic and could cause some of our inner
looping methods to fail. Consequently, they are now just logged with
a warning and skipped.
= 0.7.2 - 26-Apr-2017
* Added the Storage::DiskService#get_blob_raw method. This is similar to the
StorageAccount#get_blob_raw method, but works for managed disks.
* Added the :managed_disk?, :size (alias :flavor) and :operating_system
(alias :os) methods to the VirtualMachine model for convenience.
= 0.7.1 - 11-Apr-2017
* Fixed a bug in the BaseModel#to_json method. It now handles arrays of
model objects properly.
* Updated the Nokogiri dependency to 1.7.x due to a CVE.
= 0.7.0 - 24-Mar-2017
* Altered the TemplateDeploymentService#get_template method to only return
a plain JSON string instead of a model object. The previous approach was
doomed to fail eventually given the less structured nature of templates.
* Minor buff to our dynamic model creation, as it will now handle spaces
in key names. We thought the .underscore method already did this (it doesn't).
* Added the Storage::DiskService, Storage::ImageService and
Storage::SnapshotService service classes. These all relate to managed disks.
* Some spec cleanup for the logger tests which were failing on Windows.
* Updates to our test matrix, including the addition of Ruby 2.4.0.
= 0.6.1 - 28-Feb-2017
* Replaced the cache_method gem with the memoist gem because cache_method was
causing problems when this gem was used within a Rails app. Thanks go to
Jason Frey for spotting the issue and the patch. This change is mostly
seamless, but it does mean that the ResourceProviderService methods are
no longer cached for only 24 hours.
= 0.6.0 - 6-Jan-2017
* Revamped the Role::AssignmentService and Role::DefinitionService which were
mostly broken. These are now each subclassed from a RoleService base class
that implements various scope-based methods.
* The Insights::MetricsService class was updated to add the list_metrics and
list_definitions methods. These use the newer API from Azure that is easier
to use, but returns fewer definitions.
* Added the ResourceProviderService#registered? method.
* Some rubocop updates.
= 0.5.2 - 22-Dec-2016
* The Configuration#hash method, which is used internally to cache auth
tokens, was modified to include the environment name. This prevents
conflicts for apps in mixed environments.
= 0.5.1 - 21-Dec-2016
* The Configuration#subscription_id= method does not validate or fetch
provider information if the argument is nil or blank.
= 0.5.0 - 20-Dec-2016
* Added the Azure::Armrest::Environment class. The Configuration#environment
option now takes an Environment instance. There are two predefined instances
that you can use - Public or USGovernment. The default is Public.
* Fixed bugs caused by altering the base_url. This affected the tags and
tenants methods, as well as the VirtualMachineService#series method.
= 0.4.2 - 19-Dec-2016
* Added the delete_by_id method, so you can now delete by ID string.
* Added the TemplateDeploymentService#delete_associated_resources method.
= 0.4.1 - 16-Dec-2016
* The Configuration#environment accessor was added. As of this release you
can specify 'usgov' as an option to the constructor, and the appropriate
resource and authority endpoints will be used instead of the public ones.
* Added the #authority_url and #resource_url accessors to the Configuration
class. Use wisely.
* The Armrest::COMMON constant was removed because the resource isn't actually
constant. Instead use the authority_url or resource_url methods. This was
really only meant for internal use anyway.
* Added the Armrest::USGOV_RESOURCE and Armrest::USGOV_AUTHORITY constants.
* Fixed a bug in the VirtualMachineService#delete_associated_resources where
the method would fail if you requested network security group deletion but
there was no associated network security group.
* Fixed an issue in the ArmrestService#poll method where a 202 response might
not actually have a body. In that case, it is treated as success.
* Fixed a logic bug in the ArmrestService#wait method, and added the option
to specify 0 (infinity) for the wait time.
* Added the ArmrestService#log method, and the Configuration.log= method now
automatically converts the argument to a Logger instance if it's not already.
* The ArmrestService#base_url method was altered to include subscription
information.
= 0.4.0 - 8-Dec-2016
* The Configuration constructor no longer requires a subscription ID. However,
the presence of a subscription ID is still required for almost all Service
classes. The verification now happens later, within the Service constructor.
* Added the SubscriptionService class. This does not require a subscription ID
in advance, so you can get a list of subscriptions for a tenant.
* The Configuration#subscription_id= and Configuration#proxy= writer methods
now have custom implementations.
= 0.3.13 - 30-Nov-2016
* Fixed the Billing::Usage model class name.
* Updated the Billing::Usage#list method so that it returns an ArmrestCollection
instead of a plain array. In addition, it now supports an :all option so
that you don't have to deal with continuation tokens.
= 0.3.12 - 15-Nov-2016
* Added the Insights::DiagnosticService class.
* Added the get_from_vm and get_os_disk methods to StorageAccountService.
* Added the delete_associated_resources method to VirtualMachineService.
* The output of StorageAccount#blob_properties method now includes the blob
name and the container name.
* Added a service_name accessor to the ArmrestService base class.
* The list_all method in StorageAccountService now supports a filter.
= 0.3.11 - 8-Nov-2016
* Fixed the regex for the internal method parse_id_string, making the
get_associated_resource method more robust.
* The get_associated_resource now supports VM extensions.
* The list and list_all methods for the ResourceService class now
optionally return all possible results instead of capping at 1000.
* Some updates for codeclimate-test-reporter, simplecov.
= 0.3.10 - 28-Oct-2016
* Added the ResourceGroupBasedService#get_associated_resource method. This
method will retrieve a service or subservice resource based on an ID string.
= 0.3.9 - 19-Oct-2016
* The StorageAccount#delete_blob method now returns a ResponseHeaders object
instead of true.
* The Configuration.clear_caches method now additionally clears the
CacheMethod config store.
= 0.3.8 - 7-Oct-2-16
* Added more robust exception wrapping, now mostly based on http error code.
* Refactored the internal fetch_providers method so that it uses our own
service class method call, which is cached.
* Added the TemplateDeploymentService#get_template method.
* The :list and :list_all methods in the ResourceGroupBasedService class now
automatically perform pagination.
* Replaced our custom inspect with the one provided by pretty_print.
* Added the :response_code and :response_headers accessors to the BaseModel
class. All individual objects and collections now set these.
* Modified our :poll method to check the :response_code, and to try the
:location attribute if :azure_asyncoperation isn't found.
* Updated the :create documentation for the StorageAccountService class.
= 0.3.7 - 15-Sep-2016
* Modified the private image listing code in the StorageAccountService class
to skip over storage accounts when we cannot get a key.
= 0.3.6 - 13-Sep-2016
* Added the poll and wait methods to the ArmrestService base class. These
are meant for use with asynchronous operations, e.g. create and delete.
* All methods that returned a plain array now return an ArmrestCollection
object instead. This is a subclass of Array, but includes header and
skip token information.
* Added the ArmrestCollection.create_from_response method. This creates
and returns a collection based on a JSON response and a model type.
* Minor update to the ApiException#to_s method so that includes a bit
more information.
= 0.3.5 - 11-Aug-2016
* When we added subscription ID validation in 0.3.2 we forgot to set proxy
information first. That has been fixed.
= 0.3.4 - 9-Aug-2016
* Modified the StorageAccount#blobs and StorageAccount#containers method. Both
now accept a hash of options that you can use to modify the results. Also,
both now automatically handle continuation tokens to collect all results.
* The ResourceGroupBasedService#delete method now returns a ResponseHeaders
object instead of nil. Furthermore, it will raise an error on a 204 response
which indicates that the resource wasn't actually found.
* Added the Network::LoadBalancerService and Network::InboundNatService classes.
* Added the Network::RouteService and Network::RouteTableService classes.
= 0.3.3 - 1-Aug-2016
* Added the :max_threads configuration option. This is used internally wherever
the Parallel gem is used.
* The default number of threads when used with VCR is reduced to 1.
= 0.3.2 - 21-Jul-2016
* The subscription ID is now automatically validated in the
Azure::Armrest::Configuration constructor.
* Added a Hakiri badge to the README.
* There have been some minor updates to the dependencies to enforce
more recent versions of external gems, as suggested by Hakiri,
for security reasons.
* The ResourceGroupBasedService#list_all method (and all subclasses)
now supports an optional hash that can be used to automatically
filter result sets.
= 0.3.1 - 14-Jul-2016
* Now uses the parallel gem and thread pools for those few methods where
we were using threaded methods internally in order to reduce errors
caused by too many requests.
* Updated the rest-client dependency to 2.0.0 now that it has been released.
* Updated travis.yml to only test 2.2.5 and 2.3.1 for now. Partly due to a
change in the activesupport gem.
* One rspec fix for 2.3.x.
= 0.3.0 - 28-Jun-2016
* The configuration handling has been moved into its own class called
Azure::Armrest::Configuration. You can call this explicitly using :new,
or you can still use ArmrestService.configure.
* The :subscription_id option for configuration is no longer optional.
The logic for automatically fetching the first active subscription ID
that could be found has been dropped.
* Added the Billing::UsageService class.
* Added a TooManyRequests exception.
* Added support for pretty_print.
* Added the addressable gem as a dependency, as it internally replaces
the uri standard library. Calls to rest-client are still encoded, but
now using Addressable::URI.
* StorageAccountService no longer does account type validation.
* Added the StorageAccountService#list_all_private_images method.
= 0.2.10 - 15-Sep-2016
* Backported PR #213 (skip over storage accounts that don't have keys).
= 0.2.9 - 25-Aug-2016
* Backported PR #211 (exception class updates and specs).
= 0.2.8 - 22-Jul-2016
* Backported PR #188 (add list_all_private_images method).
* Backported PR #194 (updated .travis.yml).
= 0.2.7 - 20-Jun-2016
* All internal calls to rest-client are now explicitly URI.encoded.
= 0.2.6 - 9-May-2016
* If no subscription is provided, the internal method for fetching a default
subscription ID will now skip over tenant/subscription mismatches.
* Removed the hard-coded api-version string for both TemplateDeploymentService
and StorageAccountService.
* Because there was an underlying REST API change for storage account keys for
api-version strings set at 2016-01-01 or later, the list_account_key_objects
and regenerate_account_key_objects methods were added. These return model
objects instead of plain hashes. The list_account_keys and regenerate_account_keys
methods still behave as before.
= 0.2.5 - 11-Apr-2016
* Fixed a bug in the custom exception handler where the error code and
message were not set properly.
= 0.2.4 - 4-Apr-2016
* The ArmrestCollection#skip_token method was renamed to "continuation_token".
* Added the ArmrestService.log and ArmrestService.log= methods. These are just
thin wrappers around RestClient.log and RestClient.log= methods.
* Fixed the StorageAccount#table_data method, and added support for
continuation tokens.
* Fixed a bug in the BaseModel's method generation code where an all-caps
key would create strange results.
* Dealt with a bug in the StorageAccountService#create method caused by
a potentially empty response.
= 0.2.3 - 29-Mar-2016
* Fixed the VirtualMachineImageService class.
* Added an Insights::MetricsService class and support models.
* Added a singleton method to clear some internal class variable caches that
we use. This is primarily meant for testing.
* Added a customs collection class that will eventually be used for better
handling of skip tokens (paging).
* Updated the Insights::Event class, modifying the list method's prototype,
and now it returns our custom collection class.
= 0.2.2 - 16-Mar-2016
* Fixed a potential name collision issue for nested objects.
= 0.2.1 - 15-Mar-2016
* The ssl_version and ssl_verify options are now supported by, and
automatically passed on to, StorageAccount model objects.
* Added the get_blob_raw method to get at raw blob data. Use wisely.
* Nested model objects are now named based on the attribute name rather
than anonymous.
= 0.2.0 - 10-Mar-2016
* The Armrest.configure method now supports the :ssl_verify and :ssl_version
options. By default, the ssl_version option is set to TLSv1 instead of
using older defaults used by Ruby's net-http library.
= 0.1.3 - 7-Mar-2016
* StorageAccount model objects now have their proxy value automatically
set to whatever the proxy was set to in the configuration argument
for StorageAccountService.
= 0.1.2 - 2-Mar-2016
* When selecting the appropriate api version string, we now reject dates
that are ahead of the current date.
* Some minor rubocop cleanup.
= 0.1.1 - 26-Feb-2016
* Added proxy support for both the storage model and main configure method.
* Added the SqlDatabaseService and SqlServerService classes.
* Added the ResourceGroupBaseedSubservice abstract base class.
* When fetching a default subscription, enabled subscriptions are chosen
before disabled subscriptions. If only a disabled subscription can be
found then a warning is issued.
* You can now create blobs and blob snapshots with the storage model.
Thanks go to Alexandre Lamandé and Nguyễn Tấn Tài and for their patches.
* Some internal refactoring to use our own helper methods for various
RestClient methods, and other cleanup.
= 0.1.0 - 26-Jan-2015
* Refactored the ArmrestService class api_version and provider handling.
* The ArmrestService class no longer uses "preview" api versions by default.
* Added RBAC service classes.
= 0.0.9 - 17-Dec-2015
* Added AlertService and EventService classes.
* Added tables, table_info and table_data methods to the StorageAccount model.
* Updates to the README.
= 0.0.8 - 10-Nov-2015
* Added the list_private_images method to the StorageAccountService class.
* Added the list_all method to the ResourceGroupService class.
* Removed the EventService class for now. It did not actually work, and will
eventually be re-implemented as part of a group of Insights classes.
* Added a .to_h and .to_hash method for the BaseModel class.
= 0.0.7 - 5-Nov-2015
* Refactored our BaseModel class so that it no longer uses Delegate or OpenStruct.
* Added more methods to the StorageAccount model, and modified methods so that
any options are always the last argument.
* Bug fix for the StorageAccount#all_blobs method.
= 0.0.6 - 23-Oct-2015
* Defined a custom == method for the BaseModel class.
* The TemplateDeployment#properties.outputs now returns a hash.
* Temporarily use a BaseModel hash ref instead of a method name due to name
collision with ManageIQ until a general solution is worked out.
= 0.0.5 - 21-Oct-2015
* The VirtualMachineService#series method now returns VirtualMachineSize
objects instead of a raw hash.
* Fixed a bug in the Network::IpAddress::Service class.
* Cleaned up some spec warnings.
= 0.0.4 - 19-Oct-2015
* All get/list/list_all methods now return wrapper class instances, e.g.
a call to VirtualMachineService#get will return a VirtualMachine instance.
These provide a nice OpenStruct wrapper so you can use methods instead
of hash references if desired.
* A custom StorageAccount class was added that implements methods for
gathering blob information.
* Most service classes now inherit from ResourceGroupBasedService, which
provides a common set of methods typically used for various services.
* Now re-raises RestClient exceptions as exceptions that we have defined.
* The VirtualMachineImage class was overhauled and is now working properly.
* The azure-signature, nokogiri and activesupport dependencies were added.
= 0.0.3 - 13-Oct-2015
* Bug fixes for VirtualMachineImageService class.
* Reorganized and updated SubnetService class.
* Some updates to the BaseModel in prep for JSON wrapper classes.
* Added NetworkSecurityGroupService and IpAddressService classes.
= 0.0.2 - 23-Sep-2015
* Revamped class names. Now use "Service" instead of "Manager".
* Several new service classes added, updated, and refactored.
* All service classes now take and store configuration information as the
first argument to ensure distinct credentials.
* Added Bill Wei as author.
= 0.0.1 - 13-Aug-2015
* Initial release