azure_mgmt_resources 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +13 -5
  2. data/README.md +1 -27
  3. data/azure_mgmt_resources.gemspec +2 -6
  4. data/lib/azure_mgmt_resources/deployment_operations.rb +161 -141
  5. data/lib/azure_mgmt_resources/deployments.rb +684 -310
  6. data/lib/azure_mgmt_resources/{Models → models}/basic_dependency.rb +1 -3
  7. data/lib/azure_mgmt_resources/models/debug_setting.rb +56 -0
  8. data/lib/azure_mgmt_resources/{Models → models}/dependency.rb +4 -6
  9. data/lib/azure_mgmt_resources/{Models → models}/deployment.rb +1 -3
  10. data/lib/azure_mgmt_resources/models/deployment_export_result.rb +56 -0
  11. data/lib/azure_mgmt_resources/{Models → models}/deployment_extended.rb +8 -9
  12. data/lib/azure_mgmt_resources/{Models → models}/deployment_extended_filter.rb +1 -3
  13. data/lib/azure_mgmt_resources/{Models → models}/deployment_list_result.rb +4 -6
  14. data/lib/azure_mgmt_resources/{Models → models}/deployment_mode.rb +2 -1
  15. data/lib/azure_mgmt_resources/{Models → models}/deployment_operation.rb +1 -3
  16. data/lib/azure_mgmt_resources/{Models → models}/deployment_operation_properties.rb +41 -2
  17. data/lib/azure_mgmt_resources/{Models → models}/deployment_operations_list_result.rb +4 -6
  18. data/lib/azure_mgmt_resources/{Models → models}/deployment_properties.rb +19 -4
  19. data/lib/azure_mgmt_resources/{Models → models}/deployment_properties_extended.rb +25 -10
  20. data/lib/azure_mgmt_resources/{Models → models}/deployment_validate_result.rb +1 -3
  21. data/lib/azure_mgmt_resources/models/export_template_request.rb +69 -0
  22. data/lib/azure_mgmt_resources/{Models → models}/generic_resource.rb +1 -3
  23. data/lib/azure_mgmt_resources/{Models → models}/generic_resource_filter.rb +1 -3
  24. data/lib/azure_mgmt_resources/models/http_message.rb +56 -0
  25. data/lib/azure_mgmt_resources/{Models → models}/parameters_link.rb +2 -4
  26. data/lib/azure_mgmt_resources/{Models → models}/plan.rb +1 -3
  27. data/lib/azure_mgmt_resources/{Models → models}/provider.rb +4 -6
  28. data/lib/azure_mgmt_resources/{Models → models}/provider_list_result.rb +4 -6
  29. data/lib/azure_mgmt_resources/{Models → models}/provider_resource_type.rb +1 -3
  30. data/lib/azure_mgmt_resources/{Models → models}/resource_group.rb +8 -9
  31. data/lib/azure_mgmt_resources/models/resource_group_export_result.rb +71 -0
  32. data/lib/azure_mgmt_resources/{Models → models}/resource_group_filter.rb +1 -3
  33. data/lib/azure_mgmt_resources/{Models → models}/resource_group_list_result.rb +11 -12
  34. data/lib/azure_mgmt_resources/{Models → models}/resource_group_properties.rb +1 -3
  35. data/lib/azure_mgmt_resources/{Models → models}/resource_list_result.rb +11 -12
  36. data/lib/azure_mgmt_resources/{Models → models}/resource_management_error_with_details.rb +29 -28
  37. data/lib/azure_mgmt_resources/{Models → models}/resource_provider_operation_definition.rb +1 -3
  38. data/lib/azure_mgmt_resources/{Models → models}/resource_provider_operation_detail_list_result.rb +4 -6
  39. data/lib/azure_mgmt_resources/{Models → models}/resource_provider_operation_display_properties.rb +1 -3
  40. data/lib/azure_mgmt_resources/{Models → models}/resources_move_info.rb +1 -3
  41. data/lib/azure_mgmt_resources/{Models → models}/tag_count.rb +1 -3
  42. data/lib/azure_mgmt_resources/{Models → models}/tag_details.rb +4 -6
  43. data/lib/azure_mgmt_resources/{Models → models}/tag_value.rb +1 -3
  44. data/lib/azure_mgmt_resources/{Models → models}/tags_list_result.rb +11 -12
  45. data/lib/azure_mgmt_resources/{Models → models}/target_resource.rb +1 -3
  46. data/lib/azure_mgmt_resources/{Models → models}/template_link.rb +2 -4
  47. data/lib/azure_mgmt_resources/module_definition.rb +5 -3
  48. data/lib/azure_mgmt_resources/providers.rb +265 -239
  49. data/lib/azure_mgmt_resources/resource_groups.rb +604 -465
  50. data/lib/azure_mgmt_resources/resource_management_client.rb +18 -11
  51. data/lib/azure_mgmt_resources/resource_provider_operation_details.rb +154 -47
  52. data/lib/azure_mgmt_resources/resources.rb +425 -380
  53. data/lib/azure_mgmt_resources/tags.rb +310 -288
  54. data/lib/azure_mgmt_resources/version.rb +5 -3
  55. data/lib/azure_mgmt_resources.rb +20 -19
  56. metadata +68 -126
  57. data/.travis.yml +0 -3
  58. data/Gemfile +0 -14
  59. data/lib/azure_mgmt_resources/Models/resource_group_extended.rb +0 -113
  60. data/lib/azure_mgmt_resources/Models/resource_group_extended_filter.rb +0 -63
  61. data/lib/azure_mgmt_resources/Models/resource_group_format_resource_properties.rb +0 -54
  62. data/lib/azure_mgmt_resources/Models/resource_management_error.rb +0 -77
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
3
  # Changes may cause incorrect behavior and will be lost if the code is
4
4
  # regenerated.
5
5
 
@@ -23,82 +23,115 @@ module Azure::ARM::Resources
23
23
  attr_reader :client
24
24
 
25
25
  #
26
- # Move resources within or across subscriptions.
26
+ # Move resources from one resource group to another. The resources being moved
27
+ # should all be in the same resource group.
28
+ #
27
29
  # @param source_resource_group_name [String] Source resource group name.
28
30
  # @param parameters [ResourcesMoveInfo] move resources' parameters.
29
- # @param [Hash{String => String}] The hash of custom headers need to be
30
- # applied to HTTP request.
31
- #
32
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
31
+ # @return [Concurrent::Promise] promise which provides async access to http
33
32
  # response.
34
33
  #
35
34
  def move_resources(source_resource_group_name, parameters, custom_headers = nil)
35
+ # Send request
36
+ promise = begin_move_resources_async(source_resource_group_name, parameters, custom_headers)
37
+
38
+ promise = promise.then do |response|
39
+ # Defining deserialization method.
40
+ deserialize_method = lambda do |parsed_response|
41
+ end
42
+
43
+ # Waiting for response.
44
+ @client.get_long_running_operation_result(response, deserialize_method)
45
+ end
46
+
47
+ promise
48
+ end
49
+
50
+ #
51
+ # Move resources from one resource group to another. The resources being moved
52
+ # should all be in the same resource group.
53
+ #
54
+ # @param source_resource_group_name [String] Source resource group name.
55
+ # @param parameters [ResourcesMoveInfo] move resources' parameters.
56
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
57
+ # will be added to the HTTP request.
58
+ #
59
+ #
60
+ def begin_move_resources(source_resource_group_name, parameters, custom_headers = nil)
61
+ response = begin_move_resources_async(source_resource_group_name, parameters, custom_headers).value!
62
+ nil
63
+ end
64
+
65
+ #
66
+ # Move resources from one resource group to another. The resources being moved
67
+ # should all be in the same resource group.
68
+ #
69
+ # @param source_resource_group_name [String] Source resource group name.
70
+ # @param parameters [ResourcesMoveInfo] move resources' parameters.
71
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
72
+ # will be added to the HTTP request.
73
+ #
74
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
75
+ #
76
+ def begin_move_resources_with_http_info(source_resource_group_name, parameters, custom_headers = nil)
77
+ begin_move_resources_async(source_resource_group_name, parameters, custom_headers).value!
78
+ end
79
+
80
+ #
81
+ # Move resources from one resource group to another. The resources being moved
82
+ # should all be in the same resource group.
83
+ #
84
+ # @param source_resource_group_name [String] Source resource group name.
85
+ # @param parameters [ResourcesMoveInfo] move resources' parameters.
86
+ # @param [Hash{String => String}] A hash of custom headers that will be added
87
+ # to the HTTP request.
88
+ #
89
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
90
+ #
91
+ def begin_move_resources_async(source_resource_group_name, parameters, custom_headers = nil)
36
92
  fail ArgumentError, 'source_resource_group_name is nil' if source_resource_group_name.nil?
37
93
  fail ArgumentError, 'parameters is nil' if parameters.nil?
38
94
  parameters.validate unless parameters.nil?
39
95
  fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
40
96
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
41
- # Construct URL
42
- path = "/subscriptions/{subscriptionId}/resourceGroups/{sourceResourceGroupName}/moveResources"
43
- path['{sourceResourceGroupName}'] = ERB::Util.url_encode(source_resource_group_name) if path.include?('{sourceResourceGroupName}')
44
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
45
- url = URI.join(@client.base_url, path)
46
- properties = {}
47
- properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
48
- unless url.query.nil?
49
- url.query.split('&').each do |url_item|
50
- url_items_parts = url_item.split('=')
51
- properties[url_items_parts[0]] = url_items_parts[1]
52
- end
53
- end
54
- properties.reject!{ |key, value| value.nil? }
55
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
56
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
57
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
58
- url = URI.parse(corrected_url)
59
-
60
- connection = Faraday.new(:url => url) do |faraday|
61
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
62
- faraday.use :cookie_jar
63
- faraday.adapter Faraday.default_adapter
64
- end
65
- request_headers = Hash.new
97
+ request_headers = {}
66
98
 
67
99
  # Set Headers
68
100
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
69
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
70
-
71
- unless custom_headers.nil?
72
- custom_headers.each do |key, value|
73
- request_headers[key] = value
74
- end
75
- end
101
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
76
102
 
77
103
  # Serialize Request
78
- request_headers['Content-Type'] = 'application/json'
104
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
79
105
  unless parameters.nil?
80
106
  parameters = ResourcesMoveInfo.serialize_object(parameters)
81
107
  end
82
- request_content = JSON.generate(parameters, quirks_mode: true)
83
-
84
- # Send Request
85
- promise = Concurrent::Promise.new do
86
- connection.post do |request|
87
- request.headers = request_headers
88
- request.body = request_content
89
- @client.credentials.sign_request(request) unless @client.credentials.nil?
90
- end
108
+ request_content = parameters != nil ? JSON.generate(parameters, quirks_mode: true) : nil
109
+ path_template = '/subscriptions/{subscriptionId}/resourceGroups/{sourceResourceGroupName}/moveResources'
110
+ options = {
111
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
112
+ path_params: {'sourceResourceGroupName' => source_resource_group_name,'subscriptionId' => @client.subscription_id},
113
+ query_params: {'api-version' => @client.api_version},
114
+ body: request_content,
115
+ headers: request_headers.merge(custom_headers || {})
116
+ }
117
+
118
+ request_url = @base_url || @client.base_url
119
+
120
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :post, options)
121
+ promise = request.run_promise do |req|
122
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
91
123
  end
92
124
 
93
125
  promise = promise.then do |http_response|
94
126
  status_code = http_response.status
95
127
  response_content = http_response.body
96
- unless (status_code == 202)
97
- fail MsRestAzure::AzureOperationError.new(connection, http_response)
128
+ unless status_code == 202 || status_code == 204
129
+ error_model = JSON.load(response_content)
130
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
98
131
  end
99
132
 
100
133
  # Create Result
101
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
134
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
102
135
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
103
136
 
104
137
  result
@@ -109,84 +142,90 @@ module Azure::ARM::Resources
109
142
 
110
143
  #
111
144
  # Get all of the resources under a subscription.
145
+ #
112
146
  # @param filter [String] The filter to apply on the operation.
113
147
  # @param top [Integer] Query parameters. If null is passed returns all
114
148
  # resource groups.
115
- # @param [Hash{String => String}] The hash of custom headers need to be
116
- # applied to HTTP request.
149
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
150
+ # will be added to the HTTP request.
117
151
  #
118
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
119
- # response.
152
+ # @return [ResourceListResult] operation results.
120
153
  #
121
154
  def list(filter = nil, top = nil, custom_headers = nil)
155
+ response = list_async(filter, top, custom_headers).value!
156
+ response.body unless response.nil?
157
+ end
158
+
159
+ #
160
+ # Get all of the resources under a subscription.
161
+ #
162
+ # @param filter [String] The filter to apply on the operation.
163
+ # @param top [Integer] Query parameters. If null is passed returns all
164
+ # resource groups.
165
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
166
+ # will be added to the HTTP request.
167
+ #
168
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
169
+ #
170
+ def list_with_http_info(filter = nil, top = nil, custom_headers = nil)
171
+ list_async(filter, top, custom_headers).value!
172
+ end
173
+
174
+ #
175
+ # Get all of the resources under a subscription.
176
+ #
177
+ # @param filter [String] The filter to apply on the operation.
178
+ # @param top [Integer] Query parameters. If null is passed returns all
179
+ # resource groups.
180
+ # @param [Hash{String => String}] A hash of custom headers that will be added
181
+ # to the HTTP request.
182
+ #
183
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
184
+ #
185
+ def list_async(filter = nil, top = nil, custom_headers = nil)
122
186
  fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
123
187
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
124
- # Construct URL
125
- path = "/subscriptions/{subscriptionId}/resources"
126
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
127
- url = URI.join(@client.base_url, path)
128
- properties = {}
129
- properties['$filter'] = ERB::Util.url_encode(filter.to_s) unless filter.nil?
130
- properties['$top'] = ERB::Util.url_encode(top.to_s) unless top.nil?
131
- properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
132
- unless url.query.nil?
133
- url.query.split('&').each do |url_item|
134
- url_items_parts = url_item.split('=')
135
- properties[url_items_parts[0]] = url_items_parts[1]
136
- end
137
- end
138
- properties.reject!{ |key, value| value.nil? }
139
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
140
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
141
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
142
- url = URI.parse(corrected_url)
143
-
144
- connection = Faraday.new(:url => url) do |faraday|
145
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
146
- faraday.use :cookie_jar
147
- faraday.adapter Faraday.default_adapter
148
- end
149
- request_headers = Hash.new
188
+ request_headers = {}
150
189
 
151
190
  # Set Headers
152
191
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
153
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
192
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
193
+ path_template = '/subscriptions/{subscriptionId}/resources'
194
+ options = {
195
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
196
+ path_params: {'subscriptionId' => @client.subscription_id},
197
+ query_params: {'$filter' => filter,'$top' => top,'api-version' => @client.api_version},
198
+ headers: request_headers.merge(custom_headers || {})
199
+ }
154
200
 
155
- unless custom_headers.nil?
156
- custom_headers.each do |key, value|
157
- request_headers[key] = value
158
- end
159
- end
201
+ request_url = @base_url || @client.base_url
160
202
 
161
- # Send Request
162
- promise = Concurrent::Promise.new do
163
- connection.get do |request|
164
- request.headers = request_headers
165
- @client.credentials.sign_request(request) unless @client.credentials.nil?
166
- end
203
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :get, options)
204
+ promise = request.run_promise do |req|
205
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
167
206
  end
168
207
 
169
208
  promise = promise.then do |http_response|
170
209
  status_code = http_response.status
171
210
  response_content = http_response.body
172
- unless (status_code == 200)
211
+ unless status_code == 200
173
212
  error_model = JSON.load(response_content)
174
- fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
213
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
175
214
  end
176
215
 
177
216
  # Create Result
178
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
217
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
179
218
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
180
219
  # Deserialize Response
181
220
  if status_code == 200
182
221
  begin
183
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
222
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
184
223
  unless parsed_response.nil?
185
224
  parsed_response = ResourceListResult.deserialize_object(parsed_response)
186
225
  end
187
226
  result.body = parsed_response
188
227
  rescue Exception => e
189
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
228
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
190
229
  end
191
230
  end
192
231
 
@@ -198,6 +237,7 @@ module Azure::ARM::Resources
198
237
 
199
238
  #
200
239
  # Checks whether resource exists.
240
+ #
201
241
  # @param resource_group_name [String] The name of the resource group. The name
202
242
  # is case insensitive.
203
243
  # @param resource_provider_namespace [String] Resource identity.
@@ -205,13 +245,51 @@ module Azure::ARM::Resources
205
245
  # @param resource_type [String] Resource identity.
206
246
  # @param resource_name [String] Resource identity.
207
247
  # @param api_version [String]
208
- # @param [Hash{String => String}] The hash of custom headers need to be
209
- # applied to HTTP request.
248
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
249
+ # will be added to the HTTP request.
210
250
  #
211
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
212
- # response.
251
+ # @return [Boolean] operation results.
213
252
  #
214
253
  def check_existence(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
254
+ response = check_existence_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
255
+ response.body unless response.nil?
256
+ end
257
+
258
+ #
259
+ # Checks whether resource exists.
260
+ #
261
+ # @param resource_group_name [String] The name of the resource group. The name
262
+ # is case insensitive.
263
+ # @param resource_provider_namespace [String] Resource identity.
264
+ # @param parent_resource_path [String] Resource identity.
265
+ # @param resource_type [String] Resource identity.
266
+ # @param resource_name [String] Resource identity.
267
+ # @param api_version [String]
268
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
269
+ # will be added to the HTTP request.
270
+ #
271
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
272
+ #
273
+ def check_existence_with_http_info(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
274
+ check_existence_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
275
+ end
276
+
277
+ #
278
+ # Checks whether resource exists.
279
+ #
280
+ # @param resource_group_name [String] The name of the resource group. The name
281
+ # is case insensitive.
282
+ # @param resource_provider_namespace [String] Resource identity.
283
+ # @param parent_resource_path [String] Resource identity.
284
+ # @param resource_type [String] Resource identity.
285
+ # @param resource_name [String] Resource identity.
286
+ # @param api_version [String]
287
+ # @param [Hash{String => String}] A hash of custom headers that will be added
288
+ # to the HTTP request.
289
+ #
290
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
291
+ #
292
+ def check_existence_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
215
293
  fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
216
294
  fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
217
295
  fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
@@ -219,64 +297,37 @@ module Azure::ARM::Resources
219
297
  fail ArgumentError, 'resource_name is nil' if resource_name.nil?
220
298
  fail ArgumentError, 'api_version is nil' if api_version.nil?
221
299
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
222
- # Construct URL
223
- path = "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}"
224
- path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
225
- path['{resourceProviderNamespace}'] = ERB::Util.url_encode(resource_provider_namespace) if path.include?('{resourceProviderNamespace}')
226
- path['{parentResourcePath}'] = parent_resource_path if path.include?('{parentResourcePath}')
227
- path['{resourceType}'] = resource_type if path.include?('{resourceType}')
228
- path['{resourceName}'] = ERB::Util.url_encode(resource_name) if path.include?('{resourceName}')
229
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
230
- url = URI.join(@client.base_url, path)
231
- properties = {}
232
- properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
233
- unless url.query.nil?
234
- url.query.split('&').each do |url_item|
235
- url_items_parts = url_item.split('=')
236
- properties[url_items_parts[0]] = url_items_parts[1]
237
- end
238
- end
239
- properties.reject!{ |key, value| value.nil? }
240
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
241
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
242
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
243
- url = URI.parse(corrected_url)
244
-
245
- connection = Faraday.new(:url => url) do |faraday|
246
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
247
- faraday.use :cookie_jar
248
- faraday.adapter Faraday.default_adapter
249
- end
250
- request_headers = Hash.new
300
+ request_headers = {}
251
301
 
252
302
  # Set Headers
253
303
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
254
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
304
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
305
+ path_template = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}'
306
+ options = {
307
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
308
+ path_params: {'resourceGroupName' => resource_group_name,'resourceProviderNamespace' => resource_provider_namespace,'resourceName' => resource_name,'subscriptionId' => @client.subscription_id},
309
+ skip_encoding_path_params: {'parentResourcePath' => parent_resource_path,'resourceType' => resource_type},
310
+ query_params: {'api-version' => api_version},
311
+ headers: request_headers.merge(custom_headers || {})
312
+ }
255
313
 
256
- unless custom_headers.nil?
257
- custom_headers.each do |key, value|
258
- request_headers[key] = value
259
- end
260
- end
314
+ request_url = @base_url || @client.base_url
261
315
 
262
- # Send Request
263
- promise = Concurrent::Promise.new do
264
- connection.head do |request|
265
- request.headers = request_headers
266
- @client.credentials.sign_request(request) unless @client.credentials.nil?
267
- end
316
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :head, options)
317
+ promise = request.run_promise do |req|
318
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
268
319
  end
269
320
 
270
321
  promise = promise.then do |http_response|
271
322
  status_code = http_response.status
272
323
  response_content = http_response.body
273
- unless (status_code == 204 || status_code == 404)
324
+ unless status_code == 204 || status_code == 404
274
325
  error_model = JSON.load(response_content)
275
- fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
326
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
276
327
  end
277
328
 
278
329
  # Create Result
279
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
330
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
280
331
  result.body = (status_code == 204)
281
332
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
282
333
 
@@ -288,6 +339,7 @@ module Azure::ARM::Resources
288
339
 
289
340
  #
290
341
  # Delete resource and all of its resources.
342
+ #
291
343
  # @param resource_group_name [String] The name of the resource group. The name
292
344
  # is case insensitive.
293
345
  # @param resource_provider_namespace [String] Resource identity.
@@ -295,13 +347,50 @@ module Azure::ARM::Resources
295
347
  # @param resource_type [String] Resource identity.
296
348
  # @param resource_name [String] Resource identity.
297
349
  # @param api_version [String]
298
- # @param [Hash{String => String}] The hash of custom headers need to be
299
- # applied to HTTP request.
350
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
351
+ # will be added to the HTTP request.
300
352
  #
301
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
302
- # response.
303
353
  #
304
354
  def delete(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
355
+ response = delete_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
356
+ nil
357
+ end
358
+
359
+ #
360
+ # Delete resource and all of its resources.
361
+ #
362
+ # @param resource_group_name [String] The name of the resource group. The name
363
+ # is case insensitive.
364
+ # @param resource_provider_namespace [String] Resource identity.
365
+ # @param parent_resource_path [String] Resource identity.
366
+ # @param resource_type [String] Resource identity.
367
+ # @param resource_name [String] Resource identity.
368
+ # @param api_version [String]
369
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
370
+ # will be added to the HTTP request.
371
+ #
372
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
373
+ #
374
+ def delete_with_http_info(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
375
+ delete_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
376
+ end
377
+
378
+ #
379
+ # Delete resource and all of its resources.
380
+ #
381
+ # @param resource_group_name [String] The name of the resource group. The name
382
+ # is case insensitive.
383
+ # @param resource_provider_namespace [String] Resource identity.
384
+ # @param parent_resource_path [String] Resource identity.
385
+ # @param resource_type [String] Resource identity.
386
+ # @param resource_name [String] Resource identity.
387
+ # @param api_version [String]
388
+ # @param [Hash{String => String}] A hash of custom headers that will be added
389
+ # to the HTTP request.
390
+ #
391
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
392
+ #
393
+ def delete_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
305
394
  fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
306
395
  fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
307
396
  fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
@@ -309,63 +398,37 @@ module Azure::ARM::Resources
309
398
  fail ArgumentError, 'resource_name is nil' if resource_name.nil?
310
399
  fail ArgumentError, 'api_version is nil' if api_version.nil?
311
400
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
312
- # Construct URL
313
- path = "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}"
314
- path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
315
- path['{resourceProviderNamespace}'] = ERB::Util.url_encode(resource_provider_namespace) if path.include?('{resourceProviderNamespace}')
316
- path['{parentResourcePath}'] = parent_resource_path if path.include?('{parentResourcePath}')
317
- path['{resourceType}'] = resource_type if path.include?('{resourceType}')
318
- path['{resourceName}'] = ERB::Util.url_encode(resource_name) if path.include?('{resourceName}')
319
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
320
- url = URI.join(@client.base_url, path)
321
- properties = {}
322
- properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
323
- unless url.query.nil?
324
- url.query.split('&').each do |url_item|
325
- url_items_parts = url_item.split('=')
326
- properties[url_items_parts[0]] = url_items_parts[1]
327
- end
328
- end
329
- properties.reject!{ |key, value| value.nil? }
330
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
331
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
332
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
333
- url = URI.parse(corrected_url)
334
-
335
- connection = Faraday.new(:url => url) do |faraday|
336
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
337
- faraday.use :cookie_jar
338
- faraday.adapter Faraday.default_adapter
339
- end
340
- request_headers = Hash.new
401
+ request_headers = {}
341
402
 
342
403
  # Set Headers
343
404
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
344
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
405
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
406
+ path_template = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}'
407
+ options = {
408
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
409
+ path_params: {'resourceGroupName' => resource_group_name,'resourceProviderNamespace' => resource_provider_namespace,'resourceName' => resource_name,'subscriptionId' => @client.subscription_id},
410
+ skip_encoding_path_params: {'parentResourcePath' => parent_resource_path,'resourceType' => resource_type},
411
+ query_params: {'api-version' => api_version},
412
+ headers: request_headers.merge(custom_headers || {})
413
+ }
345
414
 
346
- unless custom_headers.nil?
347
- custom_headers.each do |key, value|
348
- request_headers[key] = value
349
- end
350
- end
415
+ request_url = @base_url || @client.base_url
351
416
 
352
- # Send Request
353
- promise = Concurrent::Promise.new do
354
- connection.delete do |request|
355
- request.headers = request_headers
356
- @client.credentials.sign_request(request) unless @client.credentials.nil?
357
- end
417
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :delete, options)
418
+ promise = request.run_promise do |req|
419
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
358
420
  end
359
421
 
360
422
  promise = promise.then do |http_response|
361
423
  status_code = http_response.status
362
424
  response_content = http_response.body
363
- unless (status_code == 200 || status_code == 204 || status_code == 202)
364
- fail MsRestAzure::AzureOperationError.new(connection, http_response)
425
+ unless status_code == 200 || status_code == 204 || status_code == 202
426
+ error_model = JSON.load(response_content)
427
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
365
428
  end
366
429
 
367
430
  # Create Result
368
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
431
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
369
432
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
370
433
 
371
434
  result
@@ -376,6 +439,7 @@ module Azure::ARM::Resources
376
439
 
377
440
  #
378
441
  # Create a resource.
442
+ #
379
443
  # @param resource_group_name [String] The name of the resource group. The name
380
444
  # is case insensitive.
381
445
  # @param resource_provider_namespace [String] Resource identity.
@@ -384,36 +448,39 @@ module Azure::ARM::Resources
384
448
  # @param resource_name [String] Resource identity.
385
449
  # @param api_version [String]
386
450
  # @param parameters [GenericResource] Create or update resource parameters.
387
- # @param @client.subscription_id [String] Gets subscription credentials which
388
- # uniquely identify Microsoft Azure subscription. The subscription ID forms
389
- # part of the URI for every service call.
390
- # @param @client.accept_language [String] Gets or sets the preferred language
391
- # for the response.
451
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
452
+ # will be added to the HTTP request.
392
453
  #
393
- # @return [Concurrent::Promise] promise which provides async access to http
394
- # response.
454
+ # @return [GenericResource] operation results.
395
455
  #
396
456
  def create_or_update(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers = nil)
397
- # Send request
398
- promise = begin_create_or_update(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers)
399
-
400
- promise = promise.then do |response|
401
- # Defining deserialization method.
402
- deserialize_method = lambda do |parsed_response|
403
- unless parsed_response.nil?
404
- parsed_response = GenericResource.deserialize_object(parsed_response)
405
- end
406
- end
407
-
408
- # Waiting for response.
409
- @client.get_put_operation_result(response, custom_headers, deserialize_method)
410
- end
457
+ response = create_or_update_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers).value!
458
+ response.body unless response.nil?
459
+ end
411
460
 
412
- promise
461
+ #
462
+ # Create a resource.
463
+ #
464
+ # @param resource_group_name [String] The name of the resource group. The name
465
+ # is case insensitive.
466
+ # @param resource_provider_namespace [String] Resource identity.
467
+ # @param parent_resource_path [String] Resource identity.
468
+ # @param resource_type [String] Resource identity.
469
+ # @param resource_name [String] Resource identity.
470
+ # @param api_version [String]
471
+ # @param parameters [GenericResource] Create or update resource parameters.
472
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
473
+ # will be added to the HTTP request.
474
+ #
475
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
476
+ #
477
+ def create_or_update_with_http_info(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers = nil)
478
+ create_or_update_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers).value!
413
479
  end
414
480
 
415
481
  #
416
482
  # Create a resource.
483
+ #
417
484
  # @param resource_group_name [String] The name of the resource group. The name
418
485
  # is case insensitive.
419
486
  # @param resource_provider_namespace [String] Resource identity.
@@ -422,13 +489,12 @@ module Azure::ARM::Resources
422
489
  # @param resource_name [String] Resource identity.
423
490
  # @param api_version [String]
424
491
  # @param parameters [GenericResource] Create or update resource parameters.
425
- # @param [Hash{String => String}] The hash of custom headers need to be
426
- # applied to HTTP request.
492
+ # @param [Hash{String => String}] A hash of custom headers that will be added
493
+ # to the HTTP request.
427
494
  #
428
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
429
- # response.
495
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
430
496
  #
431
- def begin_create_or_update(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers = nil)
497
+ def create_or_update_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, parameters, custom_headers = nil)
432
498
  fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
433
499
  fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
434
500
  fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
@@ -438,95 +504,68 @@ module Azure::ARM::Resources
438
504
  fail ArgumentError, 'parameters is nil' if parameters.nil?
439
505
  parameters.validate unless parameters.nil?
440
506
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
441
- # Construct URL
442
- path = "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}"
443
- path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
444
- path['{resourceProviderNamespace}'] = ERB::Util.url_encode(resource_provider_namespace) if path.include?('{resourceProviderNamespace}')
445
- path['{parentResourcePath}'] = parent_resource_path if path.include?('{parentResourcePath}')
446
- path['{resourceType}'] = resource_type if path.include?('{resourceType}')
447
- path['{resourceName}'] = ERB::Util.url_encode(resource_name) if path.include?('{resourceName}')
448
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
449
- url = URI.join(@client.base_url, path)
450
- properties = {}
451
- properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
452
- unless url.query.nil?
453
- url.query.split('&').each do |url_item|
454
- url_items_parts = url_item.split('=')
455
- properties[url_items_parts[0]] = url_items_parts[1]
456
- end
457
- end
458
- properties.reject!{ |key, value| value.nil? }
459
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
460
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
461
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
462
- url = URI.parse(corrected_url)
463
-
464
- connection = Faraday.new(:url => url) do |faraday|
465
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
466
- faraday.use :cookie_jar
467
- faraday.adapter Faraday.default_adapter
468
- end
469
- request_headers = Hash.new
507
+ request_headers = {}
470
508
 
471
509
  # Set Headers
472
510
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
473
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
474
-
475
- unless custom_headers.nil?
476
- custom_headers.each do |key, value|
477
- request_headers[key] = value
478
- end
479
- end
511
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
480
512
 
481
513
  # Serialize Request
482
- request_headers['Content-Type'] = 'application/json'
514
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
483
515
  unless parameters.nil?
484
516
  parameters = GenericResource.serialize_object(parameters)
485
517
  end
486
- request_content = JSON.generate(parameters, quirks_mode: true)
487
-
488
- # Send Request
489
- promise = Concurrent::Promise.new do
490
- connection.put do |request|
491
- request.headers = request_headers
492
- request.body = request_content
493
- @client.credentials.sign_request(request) unless @client.credentials.nil?
494
- end
518
+ request_content = parameters != nil ? JSON.generate(parameters, quirks_mode: true) : nil
519
+ path_template = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}'
520
+ options = {
521
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
522
+ path_params: {'resourceGroupName' => resource_group_name,'resourceProviderNamespace' => resource_provider_namespace,'resourceName' => resource_name,'subscriptionId' => @client.subscription_id},
523
+ skip_encoding_path_params: {'parentResourcePath' => parent_resource_path,'resourceType' => resource_type},
524
+ query_params: {'api-version' => api_version},
525
+ body: request_content,
526
+ headers: request_headers.merge(custom_headers || {})
527
+ }
528
+
529
+ request_url = @base_url || @client.base_url
530
+
531
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :put, options)
532
+ promise = request.run_promise do |req|
533
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
495
534
  end
496
535
 
497
536
  promise = promise.then do |http_response|
498
537
  status_code = http_response.status
499
538
  response_content = http_response.body
500
- unless (status_code == 201 || status_code == 202 || status_code == 200)
539
+ unless status_code == 201 || status_code == 200
501
540
  error_model = JSON.load(response_content)
502
- fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
541
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
503
542
  end
504
543
 
505
544
  # Create Result
506
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
545
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
507
546
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
508
547
  # Deserialize Response
509
548
  if status_code == 201
510
549
  begin
511
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
550
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
512
551
  unless parsed_response.nil?
513
552
  parsed_response = GenericResource.deserialize_object(parsed_response)
514
553
  end
515
554
  result.body = parsed_response
516
555
  rescue Exception => e
517
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
556
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
518
557
  end
519
558
  end
520
559
  # Deserialize Response
521
560
  if status_code == 200
522
561
  begin
523
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
562
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
524
563
  unless parsed_response.nil?
525
564
  parsed_response = GenericResource.deserialize_object(parsed_response)
526
565
  end
527
566
  result.body = parsed_response
528
567
  rescue Exception => e
529
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
568
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
530
569
  end
531
570
  end
532
571
 
@@ -538,6 +577,7 @@ module Azure::ARM::Resources
538
577
 
539
578
  #
540
579
  # Returns a resource belonging to a resource group.
580
+ #
541
581
  # @param resource_group_name [String] The name of the resource group. The name
542
582
  # is case insensitive.
543
583
  # @param resource_provider_namespace [String] Resource identity.
@@ -545,13 +585,51 @@ module Azure::ARM::Resources
545
585
  # @param resource_type [String] Resource identity.
546
586
  # @param resource_name [String] Resource identity.
547
587
  # @param api_version [String]
548
- # @param [Hash{String => String}] The hash of custom headers need to be
549
- # applied to HTTP request.
588
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
589
+ # will be added to the HTTP request.
550
590
  #
551
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
552
- # response.
591
+ # @return [GenericResource] operation results.
553
592
  #
554
593
  def get(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
594
+ response = get_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
595
+ response.body unless response.nil?
596
+ end
597
+
598
+ #
599
+ # Returns a resource belonging to a resource group.
600
+ #
601
+ # @param resource_group_name [String] The name of the resource group. The name
602
+ # is case insensitive.
603
+ # @param resource_provider_namespace [String] Resource identity.
604
+ # @param parent_resource_path [String] Resource identity.
605
+ # @param resource_type [String] Resource identity.
606
+ # @param resource_name [String] Resource identity.
607
+ # @param api_version [String]
608
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
609
+ # will be added to the HTTP request.
610
+ #
611
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
612
+ #
613
+ def get_with_http_info(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
614
+ get_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers).value!
615
+ end
616
+
617
+ #
618
+ # Returns a resource belonging to a resource group.
619
+ #
620
+ # @param resource_group_name [String] The name of the resource group. The name
621
+ # is case insensitive.
622
+ # @param resource_provider_namespace [String] Resource identity.
623
+ # @param parent_resource_path [String] Resource identity.
624
+ # @param resource_type [String] Resource identity.
625
+ # @param resource_name [String] Resource identity.
626
+ # @param api_version [String]
627
+ # @param [Hash{String => String}] A hash of custom headers that will be added
628
+ # to the HTTP request.
629
+ #
630
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
631
+ #
632
+ def get_async(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
555
633
  fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
556
634
  fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
557
635
  fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
@@ -559,87 +637,48 @@ module Azure::ARM::Resources
559
637
  fail ArgumentError, 'resource_name is nil' if resource_name.nil?
560
638
  fail ArgumentError, 'api_version is nil' if api_version.nil?
561
639
  fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
562
- # Construct URL
563
- path = "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}"
564
- path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
565
- path['{resourceProviderNamespace}'] = ERB::Util.url_encode(resource_provider_namespace) if path.include?('{resourceProviderNamespace}')
566
- path['{parentResourcePath}'] = parent_resource_path if path.include?('{parentResourcePath}')
567
- path['{resourceType}'] = resource_type if path.include?('{resourceType}')
568
- path['{resourceName}'] = ERB::Util.url_encode(resource_name) if path.include?('{resourceName}')
569
- path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
570
- url = URI.join(@client.base_url, path)
571
- properties = {}
572
- properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
573
- unless url.query.nil?
574
- url.query.split('&').each do |url_item|
575
- url_items_parts = url_item.split('=')
576
- properties[url_items_parts[0]] = url_items_parts[1]
577
- end
578
- end
579
- properties.reject!{ |key, value| value.nil? }
580
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
581
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
582
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
583
- url = URI.parse(corrected_url)
584
-
585
- connection = Faraday.new(:url => url) do |faraday|
586
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
587
- faraday.use :cookie_jar
588
- faraday.adapter Faraday.default_adapter
589
- end
590
- request_headers = Hash.new
640
+ request_headers = {}
591
641
 
592
642
  # Set Headers
593
643
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
594
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
644
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
645
+ path_template = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}'
646
+ options = {
647
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
648
+ path_params: {'resourceGroupName' => resource_group_name,'resourceProviderNamespace' => resource_provider_namespace,'resourceName' => resource_name,'subscriptionId' => @client.subscription_id},
649
+ skip_encoding_path_params: {'parentResourcePath' => parent_resource_path,'resourceType' => resource_type},
650
+ query_params: {'api-version' => api_version},
651
+ headers: request_headers.merge(custom_headers || {})
652
+ }
595
653
 
596
- unless custom_headers.nil?
597
- custom_headers.each do |key, value|
598
- request_headers[key] = value
599
- end
600
- end
654
+ request_url = @base_url || @client.base_url
601
655
 
602
- # Send Request
603
- promise = Concurrent::Promise.new do
604
- connection.get do |request|
605
- request.headers = request_headers
606
- @client.credentials.sign_request(request) unless @client.credentials.nil?
607
- end
656
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :get, options)
657
+ promise = request.run_promise do |req|
658
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
608
659
  end
609
660
 
610
661
  promise = promise.then do |http_response|
611
662
  status_code = http_response.status
612
663
  response_content = http_response.body
613
- unless (status_code == 200 || status_code == 204)
664
+ unless status_code == 200
614
665
  error_model = JSON.load(response_content)
615
- fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
666
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
616
667
  end
617
668
 
618
669
  # Create Result
619
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
670
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
620
671
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
621
672
  # Deserialize Response
622
673
  if status_code == 200
623
674
  begin
624
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
625
- unless parsed_response.nil?
626
- parsed_response = GenericResource.deserialize_object(parsed_response)
627
- end
628
- result.body = parsed_response
629
- rescue Exception => e
630
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
631
- end
632
- end
633
- # Deserialize Response
634
- if status_code == 204
635
- begin
636
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
675
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
637
676
  unless parsed_response.nil?
638
677
  parsed_response = GenericResource.deserialize_object(parsed_response)
639
678
  end
640
679
  result.body = parsed_response
641
680
  rescue Exception => e
642
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
681
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
643
682
  end
644
683
  end
645
684
 
@@ -651,79 +690,85 @@ module Azure::ARM::Resources
651
690
 
652
691
  #
653
692
  # Get all of the resources under a subscription.
693
+ #
654
694
  # @param next_page_link [String] The NextLink from the previous successful
655
695
  # call to List operation.
656
- # @param [Hash{String => String}] The hash of custom headers need to be
657
- # applied to HTTP request.
696
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
697
+ # will be added to the HTTP request.
658
698
  #
659
- # @return [Concurrent::Promise] Promise object which allows to get HTTP
660
- # response.
699
+ # @return [ResourceListResult] operation results.
661
700
  #
662
701
  def list_next(next_page_link, custom_headers = nil)
702
+ response = list_next_async(next_page_link, custom_headers).value!
703
+ response.body unless response.nil?
704
+ end
705
+
706
+ #
707
+ # Get all of the resources under a subscription.
708
+ #
709
+ # @param next_page_link [String] The NextLink from the previous successful
710
+ # call to List operation.
711
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
712
+ # will be added to the HTTP request.
713
+ #
714
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
715
+ #
716
+ def list_next_with_http_info(next_page_link, custom_headers = nil)
717
+ list_next_async(next_page_link, custom_headers).value!
718
+ end
719
+
720
+ #
721
+ # Get all of the resources under a subscription.
722
+ #
723
+ # @param next_page_link [String] The NextLink from the previous successful
724
+ # call to List operation.
725
+ # @param [Hash{String => String}] A hash of custom headers that will be added
726
+ # to the HTTP request.
727
+ #
728
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
729
+ #
730
+ def list_next_async(next_page_link, custom_headers = nil)
663
731
  fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
664
- # Construct URL
665
- path = "{nextLink}"
666
- path['{nextLink}'] = next_page_link if path.include?('{nextLink}')
667
- url = URI.parse(path)
668
- properties = {}
669
- unless url.query.nil?
670
- url.query.split('&').each do |url_item|
671
- url_items_parts = url_item.split('=')
672
- properties[url_items_parts[0]] = url_items_parts[1]
673
- end
674
- end
675
- properties.reject!{ |key, value| value.nil? }
676
- url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
677
- fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
678
- corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
679
- url = URI.parse(corrected_url)
680
-
681
- connection = Faraday.new(:url => url) do |faraday|
682
- faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
683
- faraday.use :cookie_jar
684
- faraday.adapter Faraday.default_adapter
685
- end
686
- request_headers = Hash.new
732
+ request_headers = {}
687
733
 
688
734
  # Set Headers
689
735
  request_headers['x-ms-client-request-id'] = SecureRandom.uuid
690
- request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
736
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
737
+ path_template = '{nextLink}'
738
+ options = {
739
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
740
+ skip_encoding_path_params: {'nextLink' => next_page_link},
741
+ headers: request_headers.merge(custom_headers || {})
742
+ }
691
743
 
692
- unless custom_headers.nil?
693
- custom_headers.each do |key, value|
694
- request_headers[key] = value
695
- end
696
- end
744
+ request_url = @base_url || @client.base_url
697
745
 
698
- # Send Request
699
- promise = Concurrent::Promise.new do
700
- connection.get do |request|
701
- request.headers = request_headers
702
- @client.credentials.sign_request(request) unless @client.credentials.nil?
703
- end
746
+ request = MsRest::HttpOperationRequest.new(request_url, path_template, :get, options)
747
+ promise = request.run_promise do |req|
748
+ @client.credentials.sign_request(req) unless @client.credentials.nil?
704
749
  end
705
750
 
706
751
  promise = promise.then do |http_response|
707
752
  status_code = http_response.status
708
753
  response_content = http_response.body
709
- unless (status_code == 200)
754
+ unless status_code == 200
710
755
  error_model = JSON.load(response_content)
711
- fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
756
+ fail MsRestAzure::AzureOperationError.new(request, http_response, error_model)
712
757
  end
713
758
 
714
759
  # Create Result
715
- result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
760
+ result = MsRestAzure::AzureOperationResponse.new(request, http_response)
716
761
  result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
717
762
  # Deserialize Response
718
763
  if status_code == 200
719
764
  begin
720
- parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
765
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
721
766
  unless parsed_response.nil?
722
767
  parsed_response = ResourceListResult.deserialize_object(parsed_response)
723
768
  end
724
769
  result.body = parsed_response
725
770
  rescue Exception => e
726
- fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
771
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
727
772
  end
728
773
  end
729
774