azure_mgmt_resources 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile +14 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +106 -0
  8. data/Rakefile +5 -0
  9. data/azure_mgmt_resources.gemspec +38 -0
  10. data/lib/azure_mgmt_resources.rb +74 -0
  11. data/lib/azure_mgmt_resources/Models/basic_dependency.rb +76 -0
  12. data/lib/azure_mgmt_resources/Models/dependency.rb +105 -0
  13. data/lib/azure_mgmt_resources/Models/deployment.rb +64 -0
  14. data/lib/azure_mgmt_resources/Models/deployment_extended.rb +83 -0
  15. data/lib/azure_mgmt_resources/Models/deployment_extended_filter.rb +58 -0
  16. data/lib/azure_mgmt_resources/Models/deployment_list_result.rb +88 -0
  17. data/lib/azure_mgmt_resources/Models/deployment_mode.rb +15 -0
  18. data/lib/azure_mgmt_resources/Models/deployment_operation.rb +83 -0
  19. data/lib/azure_mgmt_resources/Models/deployment_operation_properties.rb +102 -0
  20. data/lib/azure_mgmt_resources/Models/deployment_operations_list_result.rb +88 -0
  21. data/lib/azure_mgmt_resources/Models/deployment_properties.rb +116 -0
  22. data/lib/azure_mgmt_resources/Models/deployment_properties_extended.rb +216 -0
  23. data/lib/azure_mgmt_resources/Models/deployment_validate_result.rb +82 -0
  24. data/lib/azure_mgmt_resources/Models/generic_resource.rb +103 -0
  25. data/lib/azure_mgmt_resources/Models/generic_resource_filter.rb +76 -0
  26. data/lib/azure_mgmt_resources/Models/parameters_link.rb +68 -0
  27. data/lib/azure_mgmt_resources/Models/plan.rb +85 -0
  28. data/lib/azure_mgmt_resources/Models/provider.rb +106 -0
  29. data/lib/azure_mgmt_resources/Models/provider_list_result.rb +87 -0
  30. data/lib/azure_mgmt_resources/Models/provider_resource_type.rb +88 -0
  31. data/lib/azure_mgmt_resources/Models/resource_group.rb +105 -0
  32. data/lib/azure_mgmt_resources/Models/resource_group_extended.rb +113 -0
  33. data/lib/azure_mgmt_resources/Models/resource_group_extended_filter.rb +63 -0
  34. data/lib/azure_mgmt_resources/Models/resource_group_filter.rb +67 -0
  35. data/lib/azure_mgmt_resources/Models/resource_group_format_resource_properties.rb +54 -0
  36. data/lib/azure_mgmt_resources/Models/resource_group_list_result.rb +88 -0
  37. data/lib/azure_mgmt_resources/Models/resource_group_properties.rb +58 -0
  38. data/lib/azure_mgmt_resources/Models/resource_list_result.rb +88 -0
  39. data/lib/azure_mgmt_resources/Models/resource_management_error.rb +77 -0
  40. data/lib/azure_mgmt_resources/Models/resource_management_error_with_details.rb +106 -0
  41. data/lib/azure_mgmt_resources/Models/resource_provider_operation_definition.rb +74 -0
  42. data/lib/azure_mgmt_resources/Models/resource_provider_operation_detail_list_result.rb +80 -0
  43. data/lib/azure_mgmt_resources/Models/resource_provider_operation_display_properties.rb +95 -0
  44. data/lib/azure_mgmt_resources/Models/resources_move_info.rb +67 -0
  45. data/lib/azure_mgmt_resources/Models/tag_count.rb +67 -0
  46. data/lib/azure_mgmt_resources/Models/tag_details.rb +112 -0
  47. data/lib/azure_mgmt_resources/Models/tag_value.rb +82 -0
  48. data/lib/azure_mgmt_resources/Models/tags_list_result.rb +87 -0
  49. data/lib/azure_mgmt_resources/Models/target_resource.rb +76 -0
  50. data/lib/azure_mgmt_resources/Models/template_link.rb +68 -0
  51. data/lib/azure_mgmt_resources/deployment_operations.rb +297 -0
  52. data/lib/azure_mgmt_resources/deployments.rb +601 -0
  53. data/lib/azure_mgmt_resources/module_definition.rb +6 -0
  54. data/lib/azure_mgmt_resources/providers.rb +461 -0
  55. data/lib/azure_mgmt_resources/resource_groups.rb +891 -0
  56. data/lib/azure_mgmt_resources/resource_management_client.rb +85 -0
  57. data/lib/azure_mgmt_resources/resource_provider_operation_details.rb +126 -0
  58. data/lib/azure_mgmt_resources/resources.rb +737 -0
  59. data/lib/azure_mgmt_resources/tags.rb +546 -0
  60. data/lib/azure_mgmt_resources/version.rb +6 -0
  61. metadata +235 -0
@@ -0,0 +1,85 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Resources
7
+ #
8
+ # A service client - single point of access to the REST API.
9
+ #
10
+ class ResourceManagementClient < MsRestAzure::AzureServiceClient
11
+ include Azure::ARM::Resources::Models
12
+ include MsRestAzure
13
+
14
+ # @return [String] the base URI of the service.
15
+ attr_accessor :base_url
16
+
17
+ # @return [ServiceClientCredentials] The management credentials for Azure.
18
+ attr_reader :credentials
19
+
20
+ # @return [String] Gets subscription credentials which uniquely identify
21
+ # Microsoft Azure subscription. The subscription ID forms part of the URI
22
+ # for every service call.
23
+ attr_accessor :subscription_id
24
+
25
+ # @return [String] Client Api Version.
26
+ attr_reader :api_version
27
+
28
+ # @return [String] Gets or sets the preferred language for the response.
29
+ attr_accessor :accept_language
30
+
31
+ # @return [Integer] The retry timeout for Long Running Operations.
32
+ attr_accessor :long_running_operation_retry_timeout
33
+
34
+ # @return [ServiceClient] Subscription credentials which uniquely identify
35
+ # client subscription.
36
+ attr_accessor :credentials
37
+
38
+ # @return providers
39
+ attr_reader :providers
40
+
41
+ # @return resource_groups
42
+ attr_reader :resource_groups
43
+
44
+ # @return resources
45
+ attr_reader :resources
46
+
47
+ # @return tags
48
+ attr_reader :tags
49
+
50
+ # @return deployment_operations
51
+ attr_reader :deployment_operations
52
+
53
+ # @return resource_provider_operation_details
54
+ attr_reader :resource_provider_operation_details
55
+
56
+ # @return deployments
57
+ attr_reader :deployments
58
+
59
+ #
60
+ # Creates initializes a new instance of the ResourceManagementClient class.
61
+ # @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.
62
+ # @param base_url [String] the base URI of the service.
63
+ # @param options [Array] filters to be applied to the HTTP requests.
64
+ #
65
+ def initialize(credentials, base_url = nil, options = nil)
66
+ super(credentials, options)
67
+ @base_url = base_url || 'https://management.azure.com'
68
+
69
+ fail ArgumentError, 'credentials is nil' if credentials.nil?
70
+ fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials)
71
+ @credentials = credentials
72
+
73
+ @providers = Providers.new(self)
74
+ @resource_groups = ResourceGroups.new(self)
75
+ @resources = Resources.new(self)
76
+ @tags = Tags.new(self)
77
+ @deployment_operations = DeploymentOperations.new(self)
78
+ @resource_provider_operation_details = ResourceProviderOperationDetails.new(self)
79
+ @deployments = Deployments.new(self)
80
+ @api_version = "2014-04-01-preview"
81
+ @accept_language = "en-US"
82
+ end
83
+
84
+ end
85
+ end
@@ -0,0 +1,126 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Resources
7
+ #
8
+ # ResourceProviderOperationDetails
9
+ #
10
+ class ResourceProviderOperationDetails
11
+ include Azure::ARM::Resources::Models
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the ResourceProviderOperationDetails class.
16
+ # @param client service class for accessing basic functionality.
17
+ #
18
+ def initialize(client)
19
+ @client = client
20
+ end
21
+
22
+ # @return reference to the ResourceManagementClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # Gets a list of resource providers.
27
+ # @param resource_provider_namespace [String] Resource identity.
28
+ # @param api_version [String]
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
33
+ # response.
34
+ #
35
+ def list(resource_provider_namespace, api_version, custom_headers = nil)
36
+ fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
37
+ fail ArgumentError, 'api_version is nil' if api_version.nil?
38
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
39
+ # Construct URL
40
+ path = "/providers/{resourceProviderNamespace}/operations"
41
+ path['{resourceProviderNamespace}'] = ERB::Util.url_encode(resource_provider_namespace) if path.include?('{resourceProviderNamespace}')
42
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
43
+ url = URI.join(@client.base_url, path)
44
+ properties = {}
45
+ properties['api-version'] = ERB::Util.url_encode(api_version.to_s) unless api_version.nil?
46
+ unless url.query.nil?
47
+ url.query.split('&').each do |url_item|
48
+ url_items_parts = url_item.split('=')
49
+ properties[url_items_parts[0]] = url_items_parts[1]
50
+ end
51
+ end
52
+ properties.reject!{ |key, value| value.nil? }
53
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
54
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
55
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
56
+ url = URI.parse(corrected_url)
57
+
58
+ connection = Faraday.new(:url => url) do |faraday|
59
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
60
+ faraday.use :cookie_jar
61
+ faraday.adapter Faraday.default_adapter
62
+ end
63
+ request_headers = Hash.new
64
+
65
+ # Set Headers
66
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
67
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
68
+
69
+ unless custom_headers.nil?
70
+ custom_headers.each do |key, value|
71
+ request_headers[key] = value
72
+ end
73
+ end
74
+
75
+ # Send Request
76
+ promise = Concurrent::Promise.new do
77
+ connection.get do |request|
78
+ request.headers = request_headers
79
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
80
+ end
81
+ end
82
+
83
+ promise = promise.then do |http_response|
84
+ status_code = http_response.status
85
+ response_content = http_response.body
86
+ unless (status_code == 200 || status_code == 204)
87
+ error_model = JSON.load(response_content)
88
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
89
+ end
90
+
91
+ # Create Result
92
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
93
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
94
+ # Deserialize Response
95
+ if status_code == 200
96
+ begin
97
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
98
+ unless parsed_response.nil?
99
+ parsed_response = ResourceProviderOperationDetailListResult.deserialize_object(parsed_response)
100
+ end
101
+ result.body = parsed_response
102
+ rescue Exception => e
103
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
104
+ end
105
+ end
106
+ # Deserialize Response
107
+ if status_code == 204
108
+ begin
109
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
110
+ unless parsed_response.nil?
111
+ parsed_response = ResourceProviderOperationDetailListResult.deserialize_object(parsed_response)
112
+ end
113
+ result.body = parsed_response
114
+ rescue Exception => e
115
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
116
+ end
117
+ end
118
+
119
+ result
120
+ end
121
+
122
+ promise.execute
123
+ end
124
+
125
+ end
126
+ end
@@ -0,0 +1,737 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.11.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::Resources
7
+ #
8
+ # Resources
9
+ #
10
+ class Resources
11
+ include Azure::ARM::Resources::Models
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the Resources class.
16
+ # @param client service class for accessing basic functionality.
17
+ #
18
+ def initialize(client)
19
+ @client = client
20
+ end
21
+
22
+ # @return reference to the ResourceManagementClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # Move resources within or across subscriptions.
27
+ # @param source_resource_group_name [String] Source resource group name.
28
+ # @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
33
+ # response.
34
+ #
35
+ def move_resources(source_resource_group_name, parameters, custom_headers = nil)
36
+ fail ArgumentError, 'source_resource_group_name is nil' if source_resource_group_name.nil?
37
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
38
+ parameters.validate unless parameters.nil?
39
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
40
+ 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
66
+
67
+ # Set Headers
68
+ 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
76
+
77
+ # Serialize Request
78
+ request_headers['Content-Type'] = 'application/json'
79
+ unless parameters.nil?
80
+ parameters = ResourcesMoveInfo.serialize_object(parameters)
81
+ 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
91
+ end
92
+
93
+ promise = promise.then do |http_response|
94
+ status_code = http_response.status
95
+ response_content = http_response.body
96
+ unless (status_code == 202)
97
+ fail MsRestAzure::AzureOperationError.new(connection, http_response)
98
+ end
99
+
100
+ # Create Result
101
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
102
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
103
+
104
+ result
105
+ end
106
+
107
+ promise.execute
108
+ end
109
+
110
+ #
111
+ # Get all of the resources under a subscription.
112
+ # @param filter [String] The filter to apply on the operation.
113
+ # @param top [Integer] Query parameters. If null is passed returns all
114
+ # resource groups.
115
+ # @param [Hash{String => String}] The hash of custom headers need to be
116
+ # applied to HTTP request.
117
+ #
118
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
119
+ # response.
120
+ #
121
+ def list(filter = nil, top = nil, custom_headers = nil)
122
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
123
+ 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
150
+
151
+ # Set Headers
152
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
153
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
154
+
155
+ unless custom_headers.nil?
156
+ custom_headers.each do |key, value|
157
+ request_headers[key] = value
158
+ end
159
+ end
160
+
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
167
+ end
168
+
169
+ promise = promise.then do |http_response|
170
+ status_code = http_response.status
171
+ response_content = http_response.body
172
+ unless (status_code == 200)
173
+ error_model = JSON.load(response_content)
174
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
175
+ end
176
+
177
+ # Create Result
178
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
179
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
180
+ # Deserialize Response
181
+ if status_code == 200
182
+ begin
183
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
184
+ unless parsed_response.nil?
185
+ parsed_response = ResourceListResult.deserialize_object(parsed_response)
186
+ end
187
+ result.body = parsed_response
188
+ rescue Exception => e
189
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
190
+ end
191
+ end
192
+
193
+ result
194
+ end
195
+
196
+ promise.execute
197
+ end
198
+
199
+ #
200
+ # Checks whether resource exists.
201
+ # @param resource_group_name [String] The name of the resource group. The name
202
+ # is case insensitive.
203
+ # @param resource_provider_namespace [String] Resource identity.
204
+ # @param parent_resource_path [String] Resource identity.
205
+ # @param resource_type [String] Resource identity.
206
+ # @param resource_name [String] Resource identity.
207
+ # @param api_version [String]
208
+ # @param [Hash{String => String}] The hash of custom headers need to be
209
+ # applied to HTTP request.
210
+ #
211
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
212
+ # response.
213
+ #
214
+ def check_existence(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
215
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
216
+ fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
217
+ fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
218
+ fail ArgumentError, 'resource_type is nil' if resource_type.nil?
219
+ fail ArgumentError, 'resource_name is nil' if resource_name.nil?
220
+ fail ArgumentError, 'api_version is nil' if api_version.nil?
221
+ 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
251
+
252
+ # Set Headers
253
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
254
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
255
+
256
+ unless custom_headers.nil?
257
+ custom_headers.each do |key, value|
258
+ request_headers[key] = value
259
+ end
260
+ end
261
+
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
268
+ end
269
+
270
+ promise = promise.then do |http_response|
271
+ status_code = http_response.status
272
+ response_content = http_response.body
273
+ unless (status_code == 204 || status_code == 404)
274
+ error_model = JSON.load(response_content)
275
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
276
+ end
277
+
278
+ # Create Result
279
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
280
+ result.body = (status_code == 204)
281
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
282
+
283
+ result
284
+ end
285
+
286
+ promise.execute
287
+ end
288
+
289
+ #
290
+ # Delete resource and all of its resources.
291
+ # @param resource_group_name [String] The name of the resource group. The name
292
+ # is case insensitive.
293
+ # @param resource_provider_namespace [String] Resource identity.
294
+ # @param parent_resource_path [String] Resource identity.
295
+ # @param resource_type [String] Resource identity.
296
+ # @param resource_name [String] Resource identity.
297
+ # @param api_version [String]
298
+ # @param [Hash{String => String}] The hash of custom headers need to be
299
+ # applied to HTTP request.
300
+ #
301
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
302
+ # response.
303
+ #
304
+ def delete(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
305
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
306
+ fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
307
+ fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
308
+ fail ArgumentError, 'resource_type is nil' if resource_type.nil?
309
+ fail ArgumentError, 'resource_name is nil' if resource_name.nil?
310
+ fail ArgumentError, 'api_version is nil' if api_version.nil?
311
+ 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
341
+
342
+ # Set Headers
343
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
344
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
345
+
346
+ unless custom_headers.nil?
347
+ custom_headers.each do |key, value|
348
+ request_headers[key] = value
349
+ end
350
+ end
351
+
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
358
+ end
359
+
360
+ promise = promise.then do |http_response|
361
+ status_code = http_response.status
362
+ response_content = http_response.body
363
+ unless (status_code == 200 || status_code == 204 || status_code == 202)
364
+ fail MsRestAzure::AzureOperationError.new(connection, http_response)
365
+ end
366
+
367
+ # Create Result
368
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
369
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
370
+
371
+ result
372
+ end
373
+
374
+ promise.execute
375
+ end
376
+
377
+ #
378
+ # Create a resource.
379
+ # @param resource_group_name [String] The name of the resource group. The name
380
+ # is case insensitive.
381
+ # @param resource_provider_namespace [String] Resource identity.
382
+ # @param parent_resource_path [String] Resource identity.
383
+ # @param resource_type [String] Resource identity.
384
+ # @param resource_name [String] Resource identity.
385
+ # @param api_version [String]
386
+ # @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.
392
+ #
393
+ # @return [Concurrent::Promise] promise which provides async access to http
394
+ # response.
395
+ #
396
+ 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
411
+
412
+ promise
413
+ end
414
+
415
+ #
416
+ # Create a resource.
417
+ # @param resource_group_name [String] The name of the resource group. The name
418
+ # is case insensitive.
419
+ # @param resource_provider_namespace [String] Resource identity.
420
+ # @param parent_resource_path [String] Resource identity.
421
+ # @param resource_type [String] Resource identity.
422
+ # @param resource_name [String] Resource identity.
423
+ # @param api_version [String]
424
+ # @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.
427
+ #
428
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
429
+ # response.
430
+ #
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)
432
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
433
+ fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
434
+ fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
435
+ fail ArgumentError, 'resource_type is nil' if resource_type.nil?
436
+ fail ArgumentError, 'resource_name is nil' if resource_name.nil?
437
+ fail ArgumentError, 'api_version is nil' if api_version.nil?
438
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
439
+ parameters.validate unless parameters.nil?
440
+ 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
470
+
471
+ # Set Headers
472
+ 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
480
+
481
+ # Serialize Request
482
+ request_headers['Content-Type'] = 'application/json'
483
+ unless parameters.nil?
484
+ parameters = GenericResource.serialize_object(parameters)
485
+ 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
495
+ end
496
+
497
+ promise = promise.then do |http_response|
498
+ status_code = http_response.status
499
+ response_content = http_response.body
500
+ unless (status_code == 201 || status_code == 202 || status_code == 200)
501
+ error_model = JSON.load(response_content)
502
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
503
+ end
504
+
505
+ # Create Result
506
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
507
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
508
+ # Deserialize Response
509
+ if status_code == 201
510
+ begin
511
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
512
+ unless parsed_response.nil?
513
+ parsed_response = GenericResource.deserialize_object(parsed_response)
514
+ end
515
+ result.body = parsed_response
516
+ rescue Exception => e
517
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
518
+ end
519
+ end
520
+ # Deserialize Response
521
+ if status_code == 200
522
+ begin
523
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
524
+ unless parsed_response.nil?
525
+ parsed_response = GenericResource.deserialize_object(parsed_response)
526
+ end
527
+ result.body = parsed_response
528
+ rescue Exception => e
529
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
530
+ end
531
+ end
532
+
533
+ result
534
+ end
535
+
536
+ promise.execute
537
+ end
538
+
539
+ #
540
+ # Returns a resource belonging to a resource group.
541
+ # @param resource_group_name [String] The name of the resource group. The name
542
+ # is case insensitive.
543
+ # @param resource_provider_namespace [String] Resource identity.
544
+ # @param parent_resource_path [String] Resource identity.
545
+ # @param resource_type [String] Resource identity.
546
+ # @param resource_name [String] Resource identity.
547
+ # @param api_version [String]
548
+ # @param [Hash{String => String}] The hash of custom headers need to be
549
+ # applied to HTTP request.
550
+ #
551
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
552
+ # response.
553
+ #
554
+ def get(resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, api_version, custom_headers = nil)
555
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
556
+ fail ArgumentError, 'resource_provider_namespace is nil' if resource_provider_namespace.nil?
557
+ fail ArgumentError, 'parent_resource_path is nil' if parent_resource_path.nil?
558
+ fail ArgumentError, 'resource_type is nil' if resource_type.nil?
559
+ fail ArgumentError, 'resource_name is nil' if resource_name.nil?
560
+ fail ArgumentError, 'api_version is nil' if api_version.nil?
561
+ 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
591
+
592
+ # Set Headers
593
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
594
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
595
+
596
+ unless custom_headers.nil?
597
+ custom_headers.each do |key, value|
598
+ request_headers[key] = value
599
+ end
600
+ end
601
+
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
608
+ end
609
+
610
+ promise = promise.then do |http_response|
611
+ status_code = http_response.status
612
+ response_content = http_response.body
613
+ unless (status_code == 200 || status_code == 204)
614
+ error_model = JSON.load(response_content)
615
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
616
+ end
617
+
618
+ # Create Result
619
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
620
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
621
+ # Deserialize Response
622
+ if status_code == 200
623
+ 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?
637
+ unless parsed_response.nil?
638
+ parsed_response = GenericResource.deserialize_object(parsed_response)
639
+ end
640
+ result.body = parsed_response
641
+ rescue Exception => e
642
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
643
+ end
644
+ end
645
+
646
+ result
647
+ end
648
+
649
+ promise.execute
650
+ end
651
+
652
+ #
653
+ # Get all of the resources under a subscription.
654
+ # @param next_page_link [String] The NextLink from the previous successful
655
+ # call to List operation.
656
+ # @param [Hash{String => String}] The hash of custom headers need to be
657
+ # applied to HTTP request.
658
+ #
659
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
660
+ # response.
661
+ #
662
+ def list_next(next_page_link, custom_headers = nil)
663
+ 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
687
+
688
+ # Set Headers
689
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
690
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
691
+
692
+ unless custom_headers.nil?
693
+ custom_headers.each do |key, value|
694
+ request_headers[key] = value
695
+ end
696
+ end
697
+
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
704
+ end
705
+
706
+ promise = promise.then do |http_response|
707
+ status_code = http_response.status
708
+ response_content = http_response.body
709
+ unless (status_code == 200)
710
+ error_model = JSON.load(response_content)
711
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
712
+ end
713
+
714
+ # Create Result
715
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
716
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
717
+ # Deserialize Response
718
+ if status_code == 200
719
+ begin
720
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
721
+ unless parsed_response.nil?
722
+ parsed_response = ResourceListResult.deserialize_object(parsed_response)
723
+ end
724
+ result.body = parsed_response
725
+ rescue Exception => e
726
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
727
+ end
728
+ end
729
+
730
+ result
731
+ end
732
+
733
+ promise.execute
734
+ end
735
+
736
+ end
737
+ end