stuartpreston-azure-sdk-for-ruby 0.7.1 → 0.7.2

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.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -11
  3. data/.travis.yml +10 -10
  4. data/ChangeLog.txt +70 -68
  5. data/Gemfile +15 -15
  6. data/README.md +618 -618
  7. data/Rakefile +133 -133
  8. data/azure.gemspec +44 -44
  9. data/lib/azure.rb +52 -52
  10. data/lib/azure/base_management/affinity_group.rb +32 -32
  11. data/lib/azure/base_management/base_management_service.rb +304 -304
  12. data/lib/azure/base_management/location.rb +27 -27
  13. data/lib/azure/base_management/management_http_request.rb +171 -171
  14. data/lib/azure/base_management/serialization.rb +129 -129
  15. data/lib/azure/base_management/sql_management_http_request.rb +45 -45
  16. data/lib/azure/blob/blob.rb +31 -31
  17. data/lib/azure/blob/blob_service.rb +1423 -1423
  18. data/lib/azure/blob/block.rb +30 -30
  19. data/lib/azure/blob/container.rb +31 -31
  20. data/lib/azure/blob/serialization.rb +284 -284
  21. data/lib/azure/cloud_service_management/cloud_service.rb +38 -38
  22. data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
  23. data/lib/azure/cloud_service_management/serialization.rb +117 -117
  24. data/lib/azure/core.rb +39 -39
  25. data/lib/azure/core/auth/authorizer.rb +36 -36
  26. data/lib/azure/core/auth/shared_key.rb +110 -110
  27. data/lib/azure/core/auth/shared_key_lite.rb +48 -48
  28. data/lib/azure/core/auth/signer.rb +48 -48
  29. data/lib/azure/core/configuration.rb +211 -211
  30. data/lib/azure/core/error.rb +22 -22
  31. data/lib/azure/core/filtered_service.rb +43 -43
  32. data/lib/azure/core/http/debug_filter.rb +35 -35
  33. data/lib/azure/core/http/http_error.rb +88 -88
  34. data/lib/azure/core/http/http_filter.rb +52 -52
  35. data/lib/azure/core/http/http_request.rb +157 -157
  36. data/lib/azure/core/http/http_response.rb +140 -140
  37. data/lib/azure/core/http/retry_policy.rb +73 -73
  38. data/lib/azure/core/http/signer_filter.rb +33 -33
  39. data/lib/azure/core/service.rb +62 -62
  40. data/lib/azure/core/signed_service.rb +42 -42
  41. data/lib/azure/core/utility.rb +190 -190
  42. data/lib/azure/queue/message.rb +29 -29
  43. data/lib/azure/queue/queue.rb +28 -28
  44. data/lib/azure/queue/queue_service.rb +567 -567
  45. data/lib/azure/queue/serialization.rb +106 -106
  46. data/lib/azure/service/access_policy.rb +25 -25
  47. data/lib/azure/service/cors.rb +11 -11
  48. data/lib/azure/service/cors_rule.rb +15 -15
  49. data/lib/azure/service/enumeration_results.rb +20 -20
  50. data/lib/azure/service/logging.rb +31 -31
  51. data/lib/azure/service/metrics.rb +30 -30
  52. data/lib/azure/service/retention_policy.rb +24 -24
  53. data/lib/azure/service/serialization.rb +297 -297
  54. data/lib/azure/service/signed_identifier.rb +29 -29
  55. data/lib/azure/service/storage_service.rb +82 -82
  56. data/lib/azure/service/storage_service_properties.rb +37 -37
  57. data/lib/azure/service_bus/action.rb +21 -21
  58. data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
  59. data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
  60. data/lib/azure/service_bus/brokered_message.rb +123 -123
  61. data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
  62. data/lib/azure/service_bus/correlation_filter.rb +45 -45
  63. data/lib/azure/service_bus/empty_rule_action.rb +29 -29
  64. data/lib/azure/service_bus/false_filter.rb +38 -38
  65. data/lib/azure/service_bus/filter.rb +21 -21
  66. data/lib/azure/service_bus/interval.rb +103 -103
  67. data/lib/azure/service_bus/queue.rb +229 -229
  68. data/lib/azure/service_bus/relay.rb +87 -87
  69. data/lib/azure/service_bus/resource.rb +108 -108
  70. data/lib/azure/service_bus/rule.rb +97 -97
  71. data/lib/azure/service_bus/rule_aspect.rb +34 -34
  72. data/lib/azure/service_bus/serialization.rb +161 -161
  73. data/lib/azure/service_bus/service_bus_service.rb +896 -896
  74. data/lib/azure/service_bus/sql_filter.rb +50 -50
  75. data/lib/azure/service_bus/sql_rule_action.rb +50 -50
  76. data/lib/azure/service_bus/subscription.rb +183 -183
  77. data/lib/azure/service_bus/topic.rb +186 -186
  78. data/lib/azure/service_bus/true_filter.rb +38 -38
  79. data/lib/azure/sql_database_management/serialization.rb +111 -111
  80. data/lib/azure/sql_database_management/sql_database.rb +31 -31
  81. data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
  82. data/lib/azure/storage_management/serialization.rb +184 -184
  83. data/lib/azure/storage_management/storage_account.rb +40 -40
  84. data/lib/azure/storage_management/storage_management_service.rb +166 -166
  85. data/lib/azure/table/auth/shared_key.rb +92 -92
  86. data/lib/azure/table/auth/shared_key_lite.rb +44 -44
  87. data/lib/azure/table/batch.rb +329 -329
  88. data/lib/azure/table/batch_response.rb +118 -118
  89. data/lib/azure/table/edmtype.rb +126 -126
  90. data/lib/azure/table/entity.rb +30 -30
  91. data/lib/azure/table/guid.rb +23 -23
  92. data/lib/azure/table/query.rb +111 -111
  93. data/lib/azure/table/serialization.rb +107 -107
  94. data/lib/azure/table/table_service.rb +559 -559
  95. data/lib/azure/version.rb +31 -31
  96. data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
  97. data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
  98. data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
  99. data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
  100. data/lib/azure/virtual_machine_management/serialization.rb +462 -462
  101. data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
  102. data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
  103. data/lib/azure/virtual_network_management/serialization.rb +190 -190
  104. data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
  105. data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
  106. data/test/fixtures/affinity_group.xml +33 -33
  107. data/test/fixtures/all_containers.xml +20 -20
  108. data/test/fixtures/all_tables.xml +22 -22
  109. data/test/fixtures/certificate.pem +21 -21
  110. data/test/fixtures/container_acl.xml +11 -11
  111. data/test/fixtures/create_sql_database_server.xml +1 -1
  112. data/test/fixtures/create_storage_desc_error.xml +5 -5
  113. data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
  114. data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
  115. data/test/fixtures/create_storage_full_error.xml +6 -6
  116. data/test/fixtures/create_storage_label_error.xml +5 -5
  117. data/test/fixtures/create_storage_location_error.xml +5 -5
  118. data/test/fixtures/create_storage_name_error.xml +6 -6
  119. data/test/fixtures/create_table_response_entry.xml +15 -15
  120. data/test/fixtures/delete_storage_container_error.xml +5 -5
  121. data/test/fixtures/delete_storage_error.xml +5 -5
  122. data/test/fixtures/deployment_error.xml +5 -5
  123. data/test/fixtures/get_storage_account_error.xml +5 -5
  124. data/test/fixtures/get_storage_account_properties.xml +31 -31
  125. data/test/fixtures/get_storage_account_properties_new.xml +31 -31
  126. data/test/fixtures/http_error.xml +5 -5
  127. data/test/fixtures/insert_entity_response_entry.xml +25 -25
  128. data/test/fixtures/list_affinity_groups.xml +22 -22
  129. data/test/fixtures/list_blobs.xml +120 -120
  130. data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
  131. data/test/fixtures/list_blocks_all.xml +22 -22
  132. data/test/fixtures/list_blocks_committed.xml +12 -12
  133. data/test/fixtures/list_cloud_services.xml +38 -38
  134. data/test/fixtures/list_containers.xml +37 -37
  135. data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
  136. data/test/fixtures/list_images.xml +110 -110
  137. data/test/fixtures/list_locations.xml +62 -62
  138. data/test/fixtures/list_page_ranges.xml +10 -10
  139. data/test/fixtures/list_sql_database.xml +36 -36
  140. data/test/fixtures/list_sql_server_firewall.xml +23 -23
  141. data/test/fixtures/list_storage_account_single.xml +24 -24
  142. data/test/fixtures/list_storage_accounts.xml +45 -45
  143. data/test/fixtures/list_virtual_networks.xml +92 -92
  144. data/test/fixtures/logging.xml +11 -11
  145. data/test/fixtures/management_certificate.pem +55 -55
  146. data/test/fixtures/messages.xml +12 -12
  147. data/test/fixtures/metrics.xml +10 -10
  148. data/test/fixtures/privatekey.key +28 -28
  149. data/test/fixtures/query_entities_empty_response.xml +7 -7
  150. data/test/fixtures/query_entities_response.xml +45 -45
  151. data/test/fixtures/queue_service_properties.xml +22 -22
  152. data/test/fixtures/queue_service_properties_original.xml +19 -19
  153. data/test/fixtures/queues.xml +16 -16
  154. data/test/fixtures/retention_policy.xml +5 -5
  155. data/test/fixtures/sb_default_create_queue_response.xml +23 -23
  156. data/test/fixtures/sb_default_create_relay_response.xml +15 -15
  157. data/test/fixtures/sb_default_create_topic_response.xml +18 -18
  158. data/test/fixtures/sb_get_access_token_response.txt +1 -1
  159. data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
  160. data/test/fixtures/storage_service_properties.xml +54 -54
  161. data/test/fixtures/update_storage_account.xml +16 -16
  162. data/test/fixtures/update_storage_error.xml +4 -4
  163. data/test/fixtures/updated_storage_accounts.xml +52 -52
  164. data/test/fixtures/virtual_machine.xml +113 -113
  165. data/test/fixtures/windows_virtual_machine.xml +106 -106
  166. data/test/integration/affinity_group/Affinity_test.rb +55 -55
  167. data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
  168. data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
  169. data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
  170. data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
  171. data/test/integration/blob/blob_gb18030_test.rb +199 -199
  172. data/test/integration/blob/blob_metadata_test.rb +75 -75
  173. data/test/integration/blob/blob_pages_test.rb +119 -119
  174. data/test/integration/blob/blob_properties_test.rb +77 -77
  175. data/test/integration/blob/block_blob_test.rb +254 -254
  176. data/test/integration/blob/container/container_acl_test.rb +69 -69
  177. data/test/integration/blob/container/container_metadata_test.rb +50 -50
  178. data/test/integration/blob/container/create_container_test.rb +60 -60
  179. data/test/integration/blob/container/delete_container_test.rb +39 -39
  180. data/test/integration/blob/container/get_container_properties_test.rb +48 -48
  181. data/test/integration/blob/container/list_containers_test.rb +79 -79
  182. data/test/integration/blob/container/root_container_test.rb +53 -53
  183. data/test/integration/blob/copy_blob_test.rb +113 -113
  184. data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
  185. data/test/integration/blob/create_page_blob_test.rb +83 -83
  186. data/test/integration/blob/delete_blob_test.rb +159 -159
  187. data/test/integration/blob/get_blob_test.rb +65 -65
  188. data/test/integration/blob/informative_errors_test.rb +38 -38
  189. data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
  190. data/test/integration/blob/lease/break_lease_test.rb +40 -40
  191. data/test/integration/blob/lease/release_lease_test.rb +40 -40
  192. data/test/integration/blob/lease/renew_lease_test.rb +42 -42
  193. data/test/integration/blob/list_blobs_test.rb +113 -113
  194. data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
  195. data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
  196. data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
  197. data/test/integration/database/create_sql_server_test.rb +53 -53
  198. data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
  199. data/test/integration/database/delete_sql_server_test.rb +58 -58
  200. data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
  201. data/test/integration/database/list_sql_servers_test.rb +44 -44
  202. data/test/integration/database/reset_password_sql_server_test.rb +55 -55
  203. data/test/integration/location/Location_List_test.rb +39 -39
  204. data/test/integration/queue/clear_messages_test.rb +42 -42
  205. data/test/integration/queue/create_message_test.rb +75 -75
  206. data/test/integration/queue/create_queue_test.rb +50 -50
  207. data/test/integration/queue/delete_message_test.rb +67 -67
  208. data/test/integration/queue/delete_queue_test.rb +45 -45
  209. data/test/integration/queue/informative_errors_test.rb +41 -41
  210. data/test/integration/queue/list_messages_encoded_test.rb +79 -79
  211. data/test/integration/queue/list_messages_test.rb +79 -79
  212. data/test/integration/queue/list_queues_test.rb +44 -44
  213. data/test/integration/queue/peek_messages_test.rb +59 -59
  214. data/test/integration/queue/queue_gb18030_test.rb +131 -131
  215. data/test/integration/queue/queue_metadata_test.rb +40 -40
  216. data/test/integration/queue/update_message_test.rb +74 -74
  217. data/test/integration/service_bus/informative_errors_test.rb +36 -36
  218. data/test/integration/service_bus/queues_scenario_test.rb +200 -200
  219. data/test/integration/service_bus/queues_test.rb +265 -265
  220. data/test/integration/service_bus/relay_test.rb +131 -131
  221. data/test/integration/service_bus/rules_test.rb +144 -144
  222. data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
  223. data/test/integration/service_bus/scenario_test.rb +101 -101
  224. data/test/integration/service_bus/subscriptions_test.rb +211 -211
  225. data/test/integration/service_bus/topics_scenario_test.rb +406 -406
  226. data/test/integration/service_bus/topics_test.rb +129 -129
  227. data/test/integration/storage_management/storage_management_test.rb +160 -160
  228. data/test/integration/table/create_table_test.rb +35 -35
  229. data/test/integration/table/delete_entity_batch_test.rb +106 -106
  230. data/test/integration/table/delete_entity_test.rb +93 -93
  231. data/test/integration/table/delete_table_test.rb +39 -39
  232. data/test/integration/table/get_table_test.rb +36 -36
  233. data/test/integration/table/informative_errors_test.rb +38 -38
  234. data/test/integration/table/insert_entity_batch_test.rb +99 -99
  235. data/test/integration/table/insert_entity_test.rb +87 -87
  236. data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
  237. data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
  238. data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
  239. data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
  240. data/test/integration/table/merge_entity_batch_test.rb +127 -127
  241. data/test/integration/table/merge_entity_test.rb +112 -112
  242. data/test/integration/table/query_entities_test.rb +194 -194
  243. data/test/integration/table/query_tables_test.rb +42 -42
  244. data/test/integration/table/query_test.rb +250 -250
  245. data/test/integration/table/table_acl_test.rb +51 -51
  246. data/test/integration/table/table_gb18030_test.rb +355 -355
  247. data/test/integration/table/update_entity_batch_test.rb +148 -148
  248. data/test/integration/table/update_entity_test.rb +130 -130
  249. data/test/integration/test_helper.rb +42 -42
  250. data/test/integration/vm/VM_Create_test.rb +260 -260
  251. data/test/integration/vm/VM_Delete_test.rb +55 -55
  252. data/test/integration/vm/VM_Operations_test.rb +173 -173
  253. data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
  254. data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
  255. data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
  256. data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
  257. data/test/support/env.rb +19 -19
  258. data/test/support/fixtures.rb +36 -36
  259. data/test/support/name_generator.rb +168 -168
  260. data/test/support/stubs.rb +42 -42
  261. data/test/support/virtual_machine_name_generator.rb +102 -102
  262. data/test/support/virtual_network_helper.rb +73 -73
  263. data/test/test_helper.rb +53 -53
  264. data/test/unit/affinity_group/affinity_group_test.rb +192 -192
  265. data/test/unit/affinity_group/serialization_test.rb +88 -88
  266. data/test/unit/base_management/location_test.rb +57 -57
  267. data/test/unit/blob/blob_service_test.rb +1946 -1946
  268. data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
  269. data/test/unit/cloud_service_management/serialization_test.rb +169 -169
  270. data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
  271. data/test/unit/core/auth/shared_key_test.rb +58 -58
  272. data/test/unit/core/auth/signer_test.rb +30 -30
  273. data/test/unit/core/http/http_error_test.rb +57 -57
  274. data/test/unit/core/http/http_request_test.rb +66 -66
  275. data/test/unit/core/http/http_response_test.rb +45 -45
  276. data/test/unit/core/http/retry_policy_test.rb +23 -23
  277. data/test/unit/database/serialization_test.rb +97 -97
  278. data/test/unit/database/sql_database_server_service_test.rb +288 -288
  279. data/test/unit/service/serialization_test.rb +532 -532
  280. data/test/unit/service/storage_service_test.rb +292 -292
  281. data/test/unit/storage_management/serialization_test.rb +232 -232
  282. data/test/unit/storage_management/storage_management_service_test.rb +261 -261
  283. data/test/unit/table/edmtype_test.rb +107 -107
  284. data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
  285. data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
  286. data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
  287. data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
  288. data/test/unit/vnet/serialization_test.rb +187 -187
  289. data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
  290. metadata +34 -27
@@ -1,187 +1,187 @@
1
- #-------------------------------------------------------------------------
2
- # # Copyright (c) Microsoft and contributors. All rights reserved.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #--------------------------------------------------------------------------
15
- require 'azure/service_bus/resource'
16
-
17
- module Azure
18
- module ServiceBus
19
- class Topic < Resource
20
- # Public: Initialize the topic.
21
- #
22
- # ==== Attributes
23
- #
24
- # * +name+ - A String with the name of the topic.
25
- # * +options+ - The resource options Hash
26
- #
27
- # ==== Options
28
- #
29
- # Accepted key/value pairs in options parameter are:
30
- # * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
31
- # * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
32
- # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
33
- # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
34
- # * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
35
- # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
36
- # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
37
- #
38
- def initialize(name, options = {})
39
- normalized_options = {}
40
- normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
41
- normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
42
- normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
43
- normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
44
- normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
45
- normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
46
- normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
47
-
48
- super(name, normalized_options)
49
- end
50
-
51
- # MaxSizeInMegabytes: Number
52
- #
53
- # Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
54
- # exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
55
- # towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
56
- # messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
57
- # as a single message. You can only set this parameter at topic creation time using the following values:
58
- #
59
- # Range: 1 - 5*1024 MB
60
- # Default: 1*1024
61
- def max_size_in_megabytes
62
- to_i description['MaxSizeInMegabytes']
63
- end
64
-
65
- def max_size_in_megabytes=(val)
66
- _set 'MaxSizeInMegabytes', val
67
- end
68
-
69
- # SizeInBytes: Number
70
- #
71
- # Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
72
- #
73
- # Range: 0 - MaxTopicSizeinMegaBytes
74
- def size_in_bytes
75
- to_i description['SizeInBytes']
76
- end
77
-
78
- def size_in_bytes=(val)
79
- _set 'SizeInBytes', val
80
- end
81
-
82
- # DefaultMessageTimeToLive: XML datetime
83
- #
84
- # Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
85
- # topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
86
- # message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
87
- # be permanently deleted. The following values are settable at topic creation time:
88
- #
89
- # Range: 1 second - TimeSpan.MaxValue
90
- # Default: TimeSpan.MaxValue
91
- def default_message_time_to_live
92
- to_interval description['DefaultMessageTimeToLive']
93
- end
94
-
95
- def default_message_time_to_live=(val)
96
- _set 'DefaultMessageTimeToLive', val
97
- end
98
-
99
- # RequiresDuplicateDetection: True, False
100
- #
101
- # If enabled, the topic will detect duplicate messages within the time span specified by the
102
- # DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
103
- #
104
- # Default: false
105
- def requires_duplicate_detection
106
- to_bool description['RequiresDuplicateDetection']
107
- end
108
-
109
- def requires_duplicate_detection=(val)
110
- _set 'RequiresDuplicateDetection', val
111
- end
112
-
113
- # DuplicateDetectionHistoryTimeWindow
114
- #
115
- # Specifies the time span during which the Service Bus will detect message duplication.
116
- #
117
- # Range: 1 second - 7 days
118
- # Default: 10 minutes
119
- def duplicate_detection_history_time_window
120
- to_interval description['DuplicateDetectionHistoryTimeWindow']
121
- end
122
-
123
- def duplicate_detection_history_time_window=(val)
124
- _set 'DuplicateDetectionHistoryTimeWindow', val
125
- end
126
-
127
- # MaximumNumberOfSubscriptions
128
- #
129
- # Specifies the maximum number of subscriptions that can be associated with the topic.
130
- #
131
- # Range: 1 - 2000
132
- # Default: 2000 subscriptions
133
- def maximum_number_of_subscriptions
134
- to_i description['MaximumNumberOfSubscriptions']
135
- end
136
-
137
- def maximum_number_of_subscriptions=(val)
138
- _set 'MaximumNumberOfSubscriptions', val
139
- end
140
-
141
- # EnableBatchedOperations
142
- #
143
- # Enables or disables service side batching behavior when performing operations for the specific queue. When
144
- # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
145
- #
146
- # If user wants lower operation latency then they can disable this feature.
147
- def enable_batched_operations
148
- to_bool description['EnableBatchedOperations']
149
- end
150
-
151
- def enable_batched_operations=(val)
152
- _set 'EnableBatchedOperations', val
153
- end
154
-
155
- # DeadLetteringOnFilterEvaluationExceptions: True, False
156
- #
157
- # Determines how the Service Bus handles a message that causes an exception during a subscription's filter
158
- # evaluation. If the value is set to true, the message that caused the exception will be moved to the
159
- # subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
160
- # allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
161
- # some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
162
- # creation time.
163
- #
164
- # Default: true
165
- def dead_lettering_on_filter_evaluation_exceptions
166
- to_bool description['DeadLetteringOnFilterEvaluationExceptions']
167
- end
168
-
169
- def dead_lettering_on_filter_evaluation_exceptions=(val)
170
- _set 'DeadLetteringOnFilterEvaluationExceptions', val
171
- end
172
-
173
- def ordered_props
174
- [
175
- 'DefaultMessageTimeToLive',
176
- 'MaximumNumberOfSubscriptions',
177
- 'MaxSizeInMegabytes',
178
- 'RequiresDuplicateDetection',
179
- 'DeadLetteringOnFilterEvaluationExceptions',
180
- 'DuplicateDetectionHistoryTimeWindow',
181
- 'EnableBatchedOperations',
182
- 'SizeInBytes'
183
- ]
184
- end
185
- end
186
- end
1
+ #-------------------------------------------------------------------------
2
+ # # Copyright (c) Microsoft and contributors. All rights reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #--------------------------------------------------------------------------
15
+ require 'azure/service_bus/resource'
16
+
17
+ module Azure
18
+ module ServiceBus
19
+ class Topic < Resource
20
+ # Public: Initialize the topic.
21
+ #
22
+ # ==== Attributes
23
+ #
24
+ # * +name+ - A String with the name of the topic.
25
+ # * +options+ - The resource options Hash
26
+ #
27
+ # ==== Options
28
+ #
29
+ # Accepted key/value pairs in options parameter are:
30
+ # * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
31
+ # * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
32
+ # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
33
+ # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
34
+ # * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
35
+ # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
36
+ # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
37
+ #
38
+ def initialize(name, options = {})
39
+ normalized_options = {}
40
+ normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
41
+ normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
42
+ normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
43
+ normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
44
+ normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
45
+ normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
46
+ normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
47
+
48
+ super(name, normalized_options)
49
+ end
50
+
51
+ # MaxSizeInMegabytes: Number
52
+ #
53
+ # Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
54
+ # exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
55
+ # towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
56
+ # messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
57
+ # as a single message. You can only set this parameter at topic creation time using the following values:
58
+ #
59
+ # Range: 1 - 5*1024 MB
60
+ # Default: 1*1024
61
+ def max_size_in_megabytes
62
+ to_i description['MaxSizeInMegabytes']
63
+ end
64
+
65
+ def max_size_in_megabytes=(val)
66
+ _set 'MaxSizeInMegabytes', val
67
+ end
68
+
69
+ # SizeInBytes: Number
70
+ #
71
+ # Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
72
+ #
73
+ # Range: 0 - MaxTopicSizeinMegaBytes
74
+ def size_in_bytes
75
+ to_i description['SizeInBytes']
76
+ end
77
+
78
+ def size_in_bytes=(val)
79
+ _set 'SizeInBytes', val
80
+ end
81
+
82
+ # DefaultMessageTimeToLive: XML datetime
83
+ #
84
+ # Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
85
+ # topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
86
+ # message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
87
+ # be permanently deleted. The following values are settable at topic creation time:
88
+ #
89
+ # Range: 1 second - TimeSpan.MaxValue
90
+ # Default: TimeSpan.MaxValue
91
+ def default_message_time_to_live
92
+ to_interval description['DefaultMessageTimeToLive']
93
+ end
94
+
95
+ def default_message_time_to_live=(val)
96
+ _set 'DefaultMessageTimeToLive', val
97
+ end
98
+
99
+ # RequiresDuplicateDetection: True, False
100
+ #
101
+ # If enabled, the topic will detect duplicate messages within the time span specified by the
102
+ # DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
103
+ #
104
+ # Default: false
105
+ def requires_duplicate_detection
106
+ to_bool description['RequiresDuplicateDetection']
107
+ end
108
+
109
+ def requires_duplicate_detection=(val)
110
+ _set 'RequiresDuplicateDetection', val
111
+ end
112
+
113
+ # DuplicateDetectionHistoryTimeWindow
114
+ #
115
+ # Specifies the time span during which the Service Bus will detect message duplication.
116
+ #
117
+ # Range: 1 second - 7 days
118
+ # Default: 10 minutes
119
+ def duplicate_detection_history_time_window
120
+ to_interval description['DuplicateDetectionHistoryTimeWindow']
121
+ end
122
+
123
+ def duplicate_detection_history_time_window=(val)
124
+ _set 'DuplicateDetectionHistoryTimeWindow', val
125
+ end
126
+
127
+ # MaximumNumberOfSubscriptions
128
+ #
129
+ # Specifies the maximum number of subscriptions that can be associated with the topic.
130
+ #
131
+ # Range: 1 - 2000
132
+ # Default: 2000 subscriptions
133
+ def maximum_number_of_subscriptions
134
+ to_i description['MaximumNumberOfSubscriptions']
135
+ end
136
+
137
+ def maximum_number_of_subscriptions=(val)
138
+ _set 'MaximumNumberOfSubscriptions', val
139
+ end
140
+
141
+ # EnableBatchedOperations
142
+ #
143
+ # Enables or disables service side batching behavior when performing operations for the specific queue. When
144
+ # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
145
+ #
146
+ # If user wants lower operation latency then they can disable this feature.
147
+ def enable_batched_operations
148
+ to_bool description['EnableBatchedOperations']
149
+ end
150
+
151
+ def enable_batched_operations=(val)
152
+ _set 'EnableBatchedOperations', val
153
+ end
154
+
155
+ # DeadLetteringOnFilterEvaluationExceptions: True, False
156
+ #
157
+ # Determines how the Service Bus handles a message that causes an exception during a subscription's filter
158
+ # evaluation. If the value is set to true, the message that caused the exception will be moved to the
159
+ # subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
160
+ # allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
161
+ # some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
162
+ # creation time.
163
+ #
164
+ # Default: true
165
+ def dead_lettering_on_filter_evaluation_exceptions
166
+ to_bool description['DeadLetteringOnFilterEvaluationExceptions']
167
+ end
168
+
169
+ def dead_lettering_on_filter_evaluation_exceptions=(val)
170
+ _set 'DeadLetteringOnFilterEvaluationExceptions', val
171
+ end
172
+
173
+ def ordered_props
174
+ [
175
+ 'DefaultMessageTimeToLive',
176
+ 'MaximumNumberOfSubscriptions',
177
+ 'MaxSizeInMegabytes',
178
+ 'RequiresDuplicateDetection',
179
+ 'DeadLetteringOnFilterEvaluationExceptions',
180
+ 'DuplicateDetectionHistoryTimeWindow',
181
+ 'EnableBatchedOperations',
182
+ 'SizeInBytes'
183
+ ]
184
+ end
185
+ end
186
+ end
187
187
  end
@@ -1,38 +1,38 @@
1
- #-------------------------------------------------------------------------
2
- # # Copyright (c) Microsoft and contributors. All rights reserved.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #--------------------------------------------------------------------------
15
- require 'azure/service_bus/sql_filter'
16
-
17
- module Azure
18
- module ServiceBus
19
- class TrueFilter < SqlFilter
20
- # Public: Initialize the SQL True Filter.
21
- #
22
- # ==== Attributes
23
- #
24
- # * +hash+ - The resource options Hash
25
- #
26
- # ==== Options
27
- #
28
- # Accepted key/value pairs in options parameter are:
29
- # * +:sql_expression+ - The SQL expression.
30
- #
31
- def initialize(hash=nil)
32
- hash = {} unless hash
33
- hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
34
- super(hash)
35
- end
36
- end
37
- end
38
- end
1
+ #-------------------------------------------------------------------------
2
+ # # Copyright (c) Microsoft and contributors. All rights reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #--------------------------------------------------------------------------
15
+ require 'azure/service_bus/sql_filter'
16
+
17
+ module Azure
18
+ module ServiceBus
19
+ class TrueFilter < SqlFilter
20
+ # Public: Initialize the SQL True Filter.
21
+ #
22
+ # ==== Attributes
23
+ #
24
+ # * +hash+ - The resource options Hash
25
+ #
26
+ # ==== Options
27
+ #
28
+ # Accepted key/value pairs in options parameter are:
29
+ # * +:sql_expression+ - The SQL expression.
30
+ #
31
+ def initialize(hash=nil)
32
+ hash = {} unless hash
33
+ hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
34
+ super(hash)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,111 +1,111 @@
1
- #-------------------------------------------------------------------------
2
- # Copyright 2013 Microsoft Open Technologies, Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #--------------------------------------------------------------------------
15
- require 'azure/sql_database_management/sql_database'
16
-
17
- module Azure
18
- module SqlDatabaseManagement
19
- module Serialization
20
-
21
- def self.database_to_xml(login, password, location)
22
- builder = Nokogiri::XML::Builder.new do |xml|
23
- xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
24
- xml.AdministratorLogin login
25
- xml.AdministratorLoginPassword password
26
- xml.Location location
27
- }
28
- end
29
- builder.doc.to_xml
30
- end
31
-
32
- def self.databases_from_xml(databasesXML)
33
- databases = []
34
- databases_servicesXML = databasesXML.css('Servers Server')
35
- databases_servicesXML.each do |database_xml|
36
- database = SqlDatabase.new
37
- database.name = xml_content(database_xml, 'Name')
38
- database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
39
- database.location = xml_content(database_xml, 'Location')
40
- database.feature_name = xml_content(database_xml, 'Features Feature Name')
41
- database.feature_value = xml_content(database_xml, 'Features Feature Value')
42
- databases << database
43
- end
44
- databases.compact
45
- end
46
-
47
- def self.server_name_from_xml(response_xml, login, location)
48
- server_name = xml_content(response_xml, 'ServerName')
49
- SqlDatabase.new do |db|
50
- db.name = server_name
51
- db.location = location
52
- db.administrator_login = login
53
- end
54
- end
55
-
56
- def self.reset_password_to_xml(password)
57
- builder = Nokogiri::XML::Builder.new do |xml|
58
- xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
59
- end
60
- builder.doc.to_xml
61
- end
62
-
63
- def self.firewall_rule_to_xml(options)
64
- # Need to revisit and implement RDFE request XML.
65
- # Currently Azure is throwing Internal Server Error when executing the
66
- # API
67
- builder = Nokogiri::XML::Builder.new do |xml|
68
- xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
69
- 'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
70
- 'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
71
- xml.StartIpAddress options[:start_ip_address]
72
- xml.EndIpAddress options[:end_ip_address]
73
- }
74
- end
75
- builder.doc.to_xml
76
- end
77
-
78
- def self.database_firewall_from_xml(response_xml)
79
- firewalls = []
80
- if Azure.config.sql_database_authentication_mode == :sql_server
81
- database_firewallXML = response_xml.css('FirewallRules FirewallRule')
82
- database_firewallXML.each do |firewall_xml|
83
- firewall = {
84
- :rule => xml_content(firewall_xml, 'Name'),
85
- :start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
86
- :end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
87
- }
88
- firewalls << firewall
89
- end
90
- else
91
- service_resources = response_xml.css(
92
- 'ServiceResources ServiceResource'
93
- )
94
- service_resources.each do |resource|
95
- type = xml_content(resource, 'Type')
96
- if type == 'Microsoft.SqlAzure.FirewallRule'
97
- firewall = {
98
- rule: xml_content(resource, 'Name'),
99
- start_ip_address: xml_content(resource, 'StartIPAddress'),
100
- end_ip_address: xml_content(resource, 'EndIPAddress')
101
- }
102
- firewalls << firewall
103
- end
104
- end
105
- end
106
- firewalls.compact
107
- end
108
-
109
- end
110
- end
111
- end
1
+ #-------------------------------------------------------------------------
2
+ # Copyright 2013 Microsoft Open Technologies, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #--------------------------------------------------------------------------
15
+ require 'azure/sql_database_management/sql_database'
16
+
17
+ module Azure
18
+ module SqlDatabaseManagement
19
+ module Serialization
20
+
21
+ def self.database_to_xml(login, password, location)
22
+ builder = Nokogiri::XML::Builder.new do |xml|
23
+ xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
24
+ xml.AdministratorLogin login
25
+ xml.AdministratorLoginPassword password
26
+ xml.Location location
27
+ }
28
+ end
29
+ builder.doc.to_xml
30
+ end
31
+
32
+ def self.databases_from_xml(databasesXML)
33
+ databases = []
34
+ databases_servicesXML = databasesXML.css('Servers Server')
35
+ databases_servicesXML.each do |database_xml|
36
+ database = SqlDatabase.new
37
+ database.name = xml_content(database_xml, 'Name')
38
+ database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
39
+ database.location = xml_content(database_xml, 'Location')
40
+ database.feature_name = xml_content(database_xml, 'Features Feature Name')
41
+ database.feature_value = xml_content(database_xml, 'Features Feature Value')
42
+ databases << database
43
+ end
44
+ databases.compact
45
+ end
46
+
47
+ def self.server_name_from_xml(response_xml, login, location)
48
+ server_name = xml_content(response_xml, 'ServerName')
49
+ SqlDatabase.new do |db|
50
+ db.name = server_name
51
+ db.location = location
52
+ db.administrator_login = login
53
+ end
54
+ end
55
+
56
+ def self.reset_password_to_xml(password)
57
+ builder = Nokogiri::XML::Builder.new do |xml|
58
+ xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
59
+ end
60
+ builder.doc.to_xml
61
+ end
62
+
63
+ def self.firewall_rule_to_xml(options)
64
+ # Need to revisit and implement RDFE request XML.
65
+ # Currently Azure is throwing Internal Server Error when executing the
66
+ # API
67
+ builder = Nokogiri::XML::Builder.new do |xml|
68
+ xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
69
+ 'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
70
+ 'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
71
+ xml.StartIpAddress options[:start_ip_address]
72
+ xml.EndIpAddress options[:end_ip_address]
73
+ }
74
+ end
75
+ builder.doc.to_xml
76
+ end
77
+
78
+ def self.database_firewall_from_xml(response_xml)
79
+ firewalls = []
80
+ if Azure.config.sql_database_authentication_mode == :sql_server
81
+ database_firewallXML = response_xml.css('FirewallRules FirewallRule')
82
+ database_firewallXML.each do |firewall_xml|
83
+ firewall = {
84
+ :rule => xml_content(firewall_xml, 'Name'),
85
+ :start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
86
+ :end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
87
+ }
88
+ firewalls << firewall
89
+ end
90
+ else
91
+ service_resources = response_xml.css(
92
+ 'ServiceResources ServiceResource'
93
+ )
94
+ service_resources.each do |resource|
95
+ type = xml_content(resource, 'Type')
96
+ if type == 'Microsoft.SqlAzure.FirewallRule'
97
+ firewall = {
98
+ rule: xml_content(resource, 'Name'),
99
+ start_ip_address: xml_content(resource, 'StartIPAddress'),
100
+ end_ip_address: xml_content(resource, 'EndIPAddress')
101
+ }
102
+ firewalls << firewall
103
+ end
104
+ end
105
+ end
106
+ firewalls.compact
107
+ end
108
+
109
+ end
110
+ end
111
+ end