azure_mgmt_network 0.1.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 (123) 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 +15 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +131 -0
  8. data/Rakefile +5 -0
  9. data/azure_mgmt_network.gemspec +39 -0
  10. data/lib/azure_mgmt_network.rb +139 -0
  11. data/lib/azure_mgmt_network/Models/address_space.rb +60 -0
  12. data/lib/azure_mgmt_network/Models/application_gateway.rb +104 -0
  13. data/lib/azure_mgmt_network/Models/application_gateway_backend_address.rb +67 -0
  14. data/lib/azure_mgmt_network/Models/application_gateway_backend_address_pool.rb +90 -0
  15. data/lib/azure_mgmt_network/Models/application_gateway_backend_address_pool_properties_format.rb +121 -0
  16. data/lib/azure_mgmt_network/Models/application_gateway_backend_http_settings.rb +90 -0
  17. data/lib/azure_mgmt_network/Models/application_gateway_backend_http_settings_properties_format.rb +98 -0
  18. data/lib/azure_mgmt_network/Models/application_gateway_cookie_based_affinity.rb +16 -0
  19. data/lib/azure_mgmt_network/Models/application_gateway_frontend_ip_configuration.rb +91 -0
  20. data/lib/azure_mgmt_network/Models/application_gateway_frontend_ip_configuration_properties_format.rb +117 -0
  21. data/lib/azure_mgmt_network/Models/application_gateway_frontend_port.rb +90 -0
  22. data/lib/azure_mgmt_network/Models/application_gateway_frontend_port_properties_format.rb +70 -0
  23. data/lib/azure_mgmt_network/Models/application_gateway_http_listener.rb +90 -0
  24. data/lib/azure_mgmt_network/Models/application_gateway_http_listener_properties_format.rb +124 -0
  25. data/lib/azure_mgmt_network/Models/application_gateway_ip_configuration.rb +90 -0
  26. data/lib/azure_mgmt_network/Models/application_gateway_ip_configuration_properties_format.rb +77 -0
  27. data/lib/azure_mgmt_network/Models/application_gateway_list_result.rb +88 -0
  28. data/lib/azure_mgmt_network/Models/application_gateway_operational_state.rb +18 -0
  29. data/lib/azure_mgmt_network/Models/application_gateway_properties_format.rb +338 -0
  30. data/lib/azure_mgmt_network/Models/application_gateway_protocol.rb +16 -0
  31. data/lib/azure_mgmt_network/Models/application_gateway_request_routing_rule.rb +90 -0
  32. data/lib/azure_mgmt_network/Models/application_gateway_request_routing_rule_properties_format.rb +124 -0
  33. data/lib/azure_mgmt_network/Models/application_gateway_request_routing_rule_type.rb +15 -0
  34. data/lib/azure_mgmt_network/Models/application_gateway_sku.rb +88 -0
  35. data/lib/azure_mgmt_network/Models/application_gateway_sku_name.rb +17 -0
  36. data/lib/azure_mgmt_network/Models/application_gateway_ssl_certificate.rb +90 -0
  37. data/lib/azure_mgmt_network/Models/application_gateway_ssl_certificate_properties_format.rb +87 -0
  38. data/lib/azure_mgmt_network/Models/application_gateway_tier.rb +15 -0
  39. data/lib/azure_mgmt_network/Models/azure_async_operation_result.rb +85 -0
  40. data/lib/azure_mgmt_network/Models/backend_address_pool.rb +90 -0
  41. data/lib/azure_mgmt_network/Models/backend_address_pool_properties_format.rb +120 -0
  42. data/lib/azure_mgmt_network/Models/connection_reset_shared_key.rb +64 -0
  43. data/lib/azure_mgmt_network/Models/connection_reset_shared_key_properties_format.rb +60 -0
  44. data/lib/azure_mgmt_network/Models/connection_shared_key.rb +58 -0
  45. data/lib/azure_mgmt_network/Models/dhcp_options.rb +60 -0
  46. data/lib/azure_mgmt_network/Models/dns_name_availability_result.rb +58 -0
  47. data/lib/azure_mgmt_network/Models/error.rb +114 -0
  48. data/lib/azure_mgmt_network/Models/error_details.rb +76 -0
  49. data/lib/azure_mgmt_network/Models/frontend_ip_configuration.rb +90 -0
  50. data/lib/azure_mgmt_network/Models/frontend_ip_configuration_properties_format.rb +181 -0
  51. data/lib/azure_mgmt_network/Models/inbound_nat_rule.rb +90 -0
  52. data/lib/azure_mgmt_network/Models/inbound_nat_rule_properties_format.rb +163 -0
  53. data/lib/azure_mgmt_network/Models/ip_allocation_method.rb +16 -0
  54. data/lib/azure_mgmt_network/Models/load_balancer.rb +104 -0
  55. data/lib/azure_mgmt_network/Models/load_balancer_list_result.rb +88 -0
  56. data/lib/azure_mgmt_network/Models/load_balancer_properties_format.rb +210 -0
  57. data/lib/azure_mgmt_network/Models/load_balancing_rule.rb +90 -0
  58. data/lib/azure_mgmt_network/Models/load_balancing_rule_properties_format.rb +195 -0
  59. data/lib/azure_mgmt_network/Models/load_distribution.rb +17 -0
  60. data/lib/azure_mgmt_network/Models/local_network_gateway.rb +104 -0
  61. data/lib/azure_mgmt_network/Models/local_network_gateway_list_result.rb +88 -0
  62. data/lib/azure_mgmt_network/Models/local_network_gateway_properties_format.rb +83 -0
  63. data/lib/azure_mgmt_network/Models/network_interface.rb +104 -0
  64. data/lib/azure_mgmt_network/Models/network_interface_dns_settings.rb +89 -0
  65. data/lib/azure_mgmt_network/Models/network_interface_ip_configuration.rb +90 -0
  66. data/lib/azure_mgmt_network/Models/network_interface_ip_configuration_properties_format.rb +179 -0
  67. data/lib/azure_mgmt_network/Models/network_interface_list_result.rb +88 -0
  68. data/lib/azure_mgmt_network/Models/network_interface_properties_format.rb +158 -0
  69. data/lib/azure_mgmt_network/Models/network_security_group.rb +104 -0
  70. data/lib/azure_mgmt_network/Models/network_security_group_list_result.rb +88 -0
  71. data/lib/azure_mgmt_network/Models/network_security_group_properties_format.rb +181 -0
  72. data/lib/azure_mgmt_network/Models/operation_status.rb +17 -0
  73. data/lib/azure_mgmt_network/Models/probe.rb +90 -0
  74. data/lib/azure_mgmt_network/Models/probe_properties_format.rb +157 -0
  75. data/lib/azure_mgmt_network/Models/probe_protocol.rb +16 -0
  76. data/lib/azure_mgmt_network/Models/public_ip_address.rb +104 -0
  77. data/lib/azure_mgmt_network/Models/public_ip_address_dns_settings.rb +85 -0
  78. data/lib/azure_mgmt_network/Models/public_ip_address_list_result.rb +88 -0
  79. data/lib/azure_mgmt_network/Models/public_ip_address_properties_format.rb +126 -0
  80. data/lib/azure_mgmt_network/Models/security_rule.rb +90 -0
  81. data/lib/azure_mgmt_network/Models/security_rule_access.rb +16 -0
  82. data/lib/azure_mgmt_network/Models/security_rule_direction.rb +16 -0
  83. data/lib/azure_mgmt_network/Models/security_rule_list_result.rb +89 -0
  84. data/lib/azure_mgmt_network/Models/security_rule_properties_format.rb +174 -0
  85. data/lib/azure_mgmt_network/Models/security_rule_protocol.rb +17 -0
  86. data/lib/azure_mgmt_network/Models/subnet.rb +90 -0
  87. data/lib/azure_mgmt_network/Models/subnet_list_result.rb +88 -0
  88. data/lib/azure_mgmt_network/Models/subnet_properties_format.rb +115 -0
  89. data/lib/azure_mgmt_network/Models/transport_protocol.rb +16 -0
  90. data/lib/azure_mgmt_network/Models/usage.rb +98 -0
  91. data/lib/azure_mgmt_network/Models/usage_name.rb +68 -0
  92. data/lib/azure_mgmt_network/Models/usage_unit.rb +15 -0
  93. data/lib/azure_mgmt_network/Models/usages_list_result.rb +78 -0
  94. data/lib/azure_mgmt_network/Models/virtual_network.rb +104 -0
  95. data/lib/azure_mgmt_network/Models/virtual_network_gateway.rb +104 -0
  96. data/lib/azure_mgmt_network/Models/virtual_network_gateway_connection.rb +104 -0
  97. data/lib/azure_mgmt_network/Models/virtual_network_gateway_connection_list_result.rb +89 -0
  98. data/lib/azure_mgmt_network/Models/virtual_network_gateway_connection_properties_format.rb +141 -0
  99. data/lib/azure_mgmt_network/Models/virtual_network_gateway_connection_type.rb +18 -0
  100. data/lib/azure_mgmt_network/Models/virtual_network_gateway_ip_configuration.rb +90 -0
  101. data/lib/azure_mgmt_network/Models/virtual_network_gateway_ip_configuration_properties_format.rb +117 -0
  102. data/lib/azure_mgmt_network/Models/virtual_network_gateway_list_result.rb +88 -0
  103. data/lib/azure_mgmt_network/Models/virtual_network_gateway_properties_format.rb +126 -0
  104. data/lib/azure_mgmt_network/Models/virtual_network_gateway_type.rb +15 -0
  105. data/lib/azure_mgmt_network/Models/virtual_network_list_result.rb +88 -0
  106. data/lib/azure_mgmt_network/Models/virtual_network_properties_format.rb +123 -0
  107. data/lib/azure_mgmt_network/Models/vpn_type.rb +16 -0
  108. data/lib/azure_mgmt_network/application_gateways.rb +915 -0
  109. data/lib/azure_mgmt_network/load_balancers.rb +709 -0
  110. data/lib/azure_mgmt_network/local_network_gateways.rb +550 -0
  111. data/lib/azure_mgmt_network/module_definition.rb +6 -0
  112. data/lib/azure_mgmt_network/network_interfaces.rb +709 -0
  113. data/lib/azure_mgmt_network/network_resource_provider_client.rb +195 -0
  114. data/lib/azure_mgmt_network/network_security_groups.rb +718 -0
  115. data/lib/azure_mgmt_network/public_ip_addresses.rb +711 -0
  116. data/lib/azure_mgmt_network/security_rules.rb +563 -0
  117. data/lib/azure_mgmt_network/subnets.rb +552 -0
  118. data/lib/azure_mgmt_network/usages.rb +113 -0
  119. data/lib/azure_mgmt_network/version.rb +6 -0
  120. data/lib/azure_mgmt_network/virtual_network_gateway_connections.rb +945 -0
  121. data/lib/azure_mgmt_network/virtual_network_gateways.rb +686 -0
  122. data/lib/azure_mgmt_network/virtual_networks.rb +707 -0
  123. metadata +311 -0
@@ -0,0 +1,563 @@
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::Network
7
+ #
8
+ # SecurityRules
9
+ #
10
+ class SecurityRules
11
+ include Azure::ARM::Network::Models
12
+ include MsRestAzure
13
+
14
+ #
15
+ # Creates and initializes a new instance of the SecurityRules 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 NetworkResourceProviderClient
23
+ attr_reader :client
24
+
25
+ #
26
+ # The delete network security rule operation deletes the specified network
27
+ # security rule.
28
+ # @param resource_group_name [String] The name of the resource group.
29
+ # @param network_security_group_name [String] The name of the network security
30
+ # group.
31
+ # @param security_rule_name [String] The name of the security rule.
32
+ # @return [Concurrent::Promise] promise which provides async access to http
33
+ # response.
34
+ #
35
+ def delete(resource_group_name, network_security_group_name, security_rule_name, custom_headers = nil)
36
+ # Send request
37
+ promise = begin_delete(resource_group_name, network_security_group_name, security_rule_name, custom_headers)
38
+
39
+ promise = promise.then do |response|
40
+ # Defining deserialization method.
41
+ deserialize_method = lambda do |parsed_response|
42
+ end
43
+
44
+ # Waiting for response.
45
+ @client.get_post_or_delete_operation_result(response, nil, deserialize_method)
46
+ end
47
+
48
+ promise
49
+ end
50
+
51
+ #
52
+ # The delete network security rule operation deletes the specified network
53
+ # security rule.
54
+ # @param resource_group_name [String] The name of the resource group.
55
+ # @param network_security_group_name [String] The name of the network security
56
+ # group.
57
+ # @param security_rule_name [String] The name of the security rule.
58
+ # @param [Hash{String => String}] The hash of custom headers need to be
59
+ # applied to HTTP request.
60
+ #
61
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
62
+ # response.
63
+ #
64
+ def begin_delete(resource_group_name, network_security_group_name, security_rule_name, custom_headers = nil)
65
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
66
+ fail ArgumentError, 'network_security_group_name is nil' if network_security_group_name.nil?
67
+ fail ArgumentError, 'security_rule_name is nil' if security_rule_name.nil?
68
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
69
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
70
+ # Construct URL
71
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}"
72
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
73
+ path['{networkSecurityGroupName}'] = ERB::Util.url_encode(network_security_group_name) if path.include?('{networkSecurityGroupName}')
74
+ path['{securityRuleName}'] = ERB::Util.url_encode(security_rule_name) if path.include?('{securityRuleName}')
75
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
76
+ url = URI.join(@client.base_url, path)
77
+ properties = {}
78
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
79
+ unless url.query.nil?
80
+ url.query.split('&').each do |url_item|
81
+ url_items_parts = url_item.split('=')
82
+ properties[url_items_parts[0]] = url_items_parts[1]
83
+ end
84
+ end
85
+ properties.reject!{ |key, value| value.nil? }
86
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
87
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
88
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
89
+ url = URI.parse(corrected_url)
90
+
91
+ connection = Faraday.new(:url => url) do |faraday|
92
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
93
+ faraday.use :cookie_jar
94
+ faraday.adapter Faraday.default_adapter
95
+ end
96
+ request_headers = Hash.new
97
+
98
+ # Set Headers
99
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
100
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
101
+
102
+ unless custom_headers.nil?
103
+ custom_headers.each do |key, value|
104
+ request_headers[key] = value
105
+ end
106
+ end
107
+
108
+ # Send Request
109
+ promise = Concurrent::Promise.new do
110
+ connection.delete do |request|
111
+ request.headers = request_headers
112
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
113
+ end
114
+ end
115
+
116
+ promise = promise.then do |http_response|
117
+ status_code = http_response.status
118
+ response_content = http_response.body
119
+ unless (status_code == 202 || status_code == 200 || status_code == 204)
120
+ fail MsRestAzure::AzureOperationError.new(connection, http_response)
121
+ end
122
+
123
+ # Create Result
124
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
125
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
126
+
127
+ result
128
+ end
129
+
130
+ promise.execute
131
+ end
132
+
133
+ #
134
+ # The Get NetworkSecurityRule operation retreives information about the
135
+ # specified network security rule.
136
+ # @param resource_group_name [String] The name of the resource group.
137
+ # @param network_security_group_name [String] The name of the network security
138
+ # group.
139
+ # @param security_rule_name [String] The name of the security rule.
140
+ # @param [Hash{String => String}] The hash of custom headers need to be
141
+ # applied to HTTP request.
142
+ #
143
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
144
+ # response.
145
+ #
146
+ def get(resource_group_name, network_security_group_name, security_rule_name, custom_headers = nil)
147
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
148
+ fail ArgumentError, 'network_security_group_name is nil' if network_security_group_name.nil?
149
+ fail ArgumentError, 'security_rule_name is nil' if security_rule_name.nil?
150
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
151
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
152
+ # Construct URL
153
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}"
154
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
155
+ path['{networkSecurityGroupName}'] = ERB::Util.url_encode(network_security_group_name) if path.include?('{networkSecurityGroupName}')
156
+ path['{securityRuleName}'] = ERB::Util.url_encode(security_rule_name) if path.include?('{securityRuleName}')
157
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
158
+ url = URI.join(@client.base_url, path)
159
+ properties = {}
160
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
161
+ unless url.query.nil?
162
+ url.query.split('&').each do |url_item|
163
+ url_items_parts = url_item.split('=')
164
+ properties[url_items_parts[0]] = url_items_parts[1]
165
+ end
166
+ end
167
+ properties.reject!{ |key, value| value.nil? }
168
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
169
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
170
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
171
+ url = URI.parse(corrected_url)
172
+
173
+ connection = Faraday.new(:url => url) do |faraday|
174
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
175
+ faraday.use :cookie_jar
176
+ faraday.adapter Faraday.default_adapter
177
+ end
178
+ request_headers = Hash.new
179
+
180
+ # Set Headers
181
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
182
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
183
+
184
+ unless custom_headers.nil?
185
+ custom_headers.each do |key, value|
186
+ request_headers[key] = value
187
+ end
188
+ end
189
+
190
+ # Send Request
191
+ promise = Concurrent::Promise.new do
192
+ connection.get do |request|
193
+ request.headers = request_headers
194
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
195
+ end
196
+ end
197
+
198
+ promise = promise.then do |http_response|
199
+ status_code = http_response.status
200
+ response_content = http_response.body
201
+ unless (status_code == 200)
202
+ error_model = JSON.load(response_content)
203
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
204
+ end
205
+
206
+ # Create Result
207
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
208
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
209
+ # Deserialize Response
210
+ if status_code == 200
211
+ begin
212
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
213
+ unless parsed_response.nil?
214
+ parsed_response = SecurityRule.deserialize_object(parsed_response)
215
+ end
216
+ result.body = parsed_response
217
+ rescue Exception => e
218
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
219
+ end
220
+ end
221
+
222
+ result
223
+ end
224
+
225
+ promise.execute
226
+ end
227
+
228
+ #
229
+ # The Put network security rule operation creates/updates a security rule in
230
+ # the specified network security group
231
+ # @param resource_group_name [String] The name of the resource group.
232
+ # @param network_security_group_name [String] The name of the network security
233
+ # group.
234
+ # @param security_rule_name [String] The name of the security rule.
235
+ # @param security_rule_parameters [SecurityRule] Parameters supplied to the
236
+ # create/update network security rule operation
237
+ # @param @client.api_version [String] Client Api Version.
238
+ # @param @client.subscription_id [String] Gets subscription credentials which
239
+ # uniquely identify Microsoft Azure subscription. The subscription ID forms
240
+ # part of the URI for every service call.
241
+ # @param @client.accept_language [String] Gets or sets the preferred language
242
+ # for the response.
243
+ #
244
+ # @return [Concurrent::Promise] promise which provides async access to http
245
+ # response.
246
+ #
247
+ def create_or_update(resource_group_name, network_security_group_name, security_rule_name, security_rule_parameters, custom_headers = nil)
248
+ # Send request
249
+ promise = begin_create_or_update(resource_group_name, network_security_group_name, security_rule_name, security_rule_parameters, custom_headers)
250
+
251
+ promise = promise.then do |response|
252
+ # Defining deserialization method.
253
+ deserialize_method = lambda do |parsed_response|
254
+ unless parsed_response.nil?
255
+ parsed_response = SecurityRule.deserialize_object(parsed_response)
256
+ end
257
+ end
258
+
259
+ # Waiting for response.
260
+ @client.get_put_operation_result(response, custom_headers, deserialize_method)
261
+ end
262
+
263
+ promise
264
+ end
265
+
266
+ #
267
+ # The Put network security rule operation creates/updates a security rule in
268
+ # the specified network security group
269
+ # @param resource_group_name [String] The name of the resource group.
270
+ # @param network_security_group_name [String] The name of the network security
271
+ # group.
272
+ # @param security_rule_name [String] The name of the security rule.
273
+ # @param security_rule_parameters [SecurityRule] Parameters supplied to the
274
+ # create/update network security rule operation
275
+ # @param [Hash{String => String}] The hash of custom headers need to be
276
+ # applied to HTTP request.
277
+ #
278
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
279
+ # response.
280
+ #
281
+ def begin_create_or_update(resource_group_name, network_security_group_name, security_rule_name, security_rule_parameters, custom_headers = nil)
282
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
283
+ fail ArgumentError, 'network_security_group_name is nil' if network_security_group_name.nil?
284
+ fail ArgumentError, 'security_rule_name is nil' if security_rule_name.nil?
285
+ fail ArgumentError, 'security_rule_parameters is nil' if security_rule_parameters.nil?
286
+ security_rule_parameters.validate unless security_rule_parameters.nil?
287
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
288
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
289
+ # Construct URL
290
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules/{securityRuleName}"
291
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
292
+ path['{networkSecurityGroupName}'] = ERB::Util.url_encode(network_security_group_name) if path.include?('{networkSecurityGroupName}')
293
+ path['{securityRuleName}'] = ERB::Util.url_encode(security_rule_name) if path.include?('{securityRuleName}')
294
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
295
+ url = URI.join(@client.base_url, path)
296
+ properties = {}
297
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
298
+ unless url.query.nil?
299
+ url.query.split('&').each do |url_item|
300
+ url_items_parts = url_item.split('=')
301
+ properties[url_items_parts[0]] = url_items_parts[1]
302
+ end
303
+ end
304
+ properties.reject!{ |key, value| value.nil? }
305
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
306
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
307
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
308
+ url = URI.parse(corrected_url)
309
+
310
+ connection = Faraday.new(:url => url) do |faraday|
311
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
312
+ faraday.use :cookie_jar
313
+ faraday.adapter Faraday.default_adapter
314
+ end
315
+ request_headers = Hash.new
316
+
317
+ # Set Headers
318
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
319
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
320
+
321
+ unless custom_headers.nil?
322
+ custom_headers.each do |key, value|
323
+ request_headers[key] = value
324
+ end
325
+ end
326
+
327
+ # Serialize Request
328
+ request_headers['Content-Type'] = 'application/json'
329
+ unless security_rule_parameters.nil?
330
+ security_rule_parameters = SecurityRule.serialize_object(security_rule_parameters)
331
+ end
332
+ request_content = JSON.generate(security_rule_parameters, quirks_mode: true)
333
+
334
+ # Send Request
335
+ promise = Concurrent::Promise.new do
336
+ connection.put do |request|
337
+ request.headers = request_headers
338
+ request.body = request_content
339
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
340
+ end
341
+ end
342
+
343
+ promise = promise.then do |http_response|
344
+ status_code = http_response.status
345
+ response_content = http_response.body
346
+ unless (status_code == 200 || status_code == 201)
347
+ error_model = JSON.load(response_content)
348
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
349
+ end
350
+
351
+ # Create Result
352
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
353
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
354
+ # Deserialize Response
355
+ if status_code == 200
356
+ begin
357
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
358
+ unless parsed_response.nil?
359
+ parsed_response = SecurityRule.deserialize_object(parsed_response)
360
+ end
361
+ result.body = parsed_response
362
+ rescue Exception => e
363
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
364
+ end
365
+ end
366
+ # Deserialize Response
367
+ if status_code == 201
368
+ begin
369
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
370
+ unless parsed_response.nil?
371
+ parsed_response = SecurityRule.deserialize_object(parsed_response)
372
+ end
373
+ result.body = parsed_response
374
+ rescue Exception => e
375
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
376
+ end
377
+ end
378
+
379
+ result
380
+ end
381
+
382
+ promise.execute
383
+ end
384
+
385
+ #
386
+ # The List network security rule opertion retrieves all the security rules in
387
+ # a network security group.
388
+ # @param resource_group_name [String] The name of the resource group.
389
+ # @param network_security_group_name [String] The name of the network security
390
+ # group.
391
+ # @param [Hash{String => String}] The hash of custom headers need to be
392
+ # applied to HTTP request.
393
+ #
394
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
395
+ # response.
396
+ #
397
+ def list(resource_group_name, network_security_group_name, custom_headers = nil)
398
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
399
+ fail ArgumentError, 'network_security_group_name is nil' if network_security_group_name.nil?
400
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
401
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
402
+ # Construct URL
403
+ path = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{networkSecurityGroupName}/securityRules"
404
+ path['{resourceGroupName}'] = ERB::Util.url_encode(resource_group_name) if path.include?('{resourceGroupName}')
405
+ path['{networkSecurityGroupName}'] = ERB::Util.url_encode(network_security_group_name) if path.include?('{networkSecurityGroupName}')
406
+ path['{subscriptionId}'] = ERB::Util.url_encode(@client.subscription_id) if path.include?('{subscriptionId}')
407
+ url = URI.join(@client.base_url, path)
408
+ properties = {}
409
+ properties['api-version'] = ERB::Util.url_encode(@client.api_version.to_s) unless @client.api_version.nil?
410
+ unless url.query.nil?
411
+ url.query.split('&').each do |url_item|
412
+ url_items_parts = url_item.split('=')
413
+ properties[url_items_parts[0]] = url_items_parts[1]
414
+ end
415
+ end
416
+ properties.reject!{ |key, value| value.nil? }
417
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
418
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
419
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
420
+ url = URI.parse(corrected_url)
421
+
422
+ connection = Faraday.new(:url => url) do |faraday|
423
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
424
+ faraday.use :cookie_jar
425
+ faraday.adapter Faraday.default_adapter
426
+ end
427
+ request_headers = Hash.new
428
+
429
+ # Set Headers
430
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
431
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
432
+
433
+ unless custom_headers.nil?
434
+ custom_headers.each do |key, value|
435
+ request_headers[key] = value
436
+ end
437
+ end
438
+
439
+ # Send Request
440
+ promise = Concurrent::Promise.new do
441
+ connection.get do |request|
442
+ request.headers = request_headers
443
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
444
+ end
445
+ end
446
+
447
+ promise = promise.then do |http_response|
448
+ status_code = http_response.status
449
+ response_content = http_response.body
450
+ unless (status_code == 200)
451
+ error_model = JSON.load(response_content)
452
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
453
+ end
454
+
455
+ # Create Result
456
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
457
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
458
+ # Deserialize Response
459
+ if status_code == 200
460
+ begin
461
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
462
+ unless parsed_response.nil?
463
+ parsed_response = SecurityRuleListResult.deserialize_object(parsed_response)
464
+ end
465
+ result.body = parsed_response
466
+ rescue Exception => e
467
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
468
+ end
469
+ end
470
+
471
+ result
472
+ end
473
+
474
+ promise.execute
475
+ end
476
+
477
+ #
478
+ # The List network security rule opertion retrieves all the security rules in
479
+ # a network security group.
480
+ # @param next_page_link [String] The NextLink from the previous successful
481
+ # call to List operation.
482
+ # @param [Hash{String => String}] The hash of custom headers need to be
483
+ # applied to HTTP request.
484
+ #
485
+ # @return [Concurrent::Promise] Promise object which allows to get HTTP
486
+ # response.
487
+ #
488
+ def list_next(next_page_link, custom_headers = nil)
489
+ fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?
490
+ # Construct URL
491
+ path = "{nextLink}"
492
+ path['{nextLink}'] = next_page_link if path.include?('{nextLink}')
493
+ url = URI.parse(path)
494
+ properties = {}
495
+ unless url.query.nil?
496
+ url.query.split('&').each do |url_item|
497
+ url_items_parts = url_item.split('=')
498
+ properties[url_items_parts[0]] = url_items_parts[1]
499
+ end
500
+ end
501
+ properties.reject!{ |key, value| value.nil? }
502
+ url.query = properties.map{ |key, value| "#{key}=#{value}" }.compact.join('&')
503
+ fail URI::Error unless url.to_s =~ /\A#{URI::regexp}\z/
504
+ corrected_url = url.to_s.gsub(/([^:])\/\//, '\1/')
505
+ url = URI.parse(corrected_url)
506
+
507
+ connection = Faraday.new(:url => url) do |faraday|
508
+ faraday.use MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02
509
+ faraday.use :cookie_jar
510
+ faraday.adapter Faraday.default_adapter
511
+ end
512
+ request_headers = Hash.new
513
+
514
+ # Set Headers
515
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
516
+ request_headers["accept-language"] = @client.accept_language unless @client.accept_language.nil?
517
+
518
+ unless custom_headers.nil?
519
+ custom_headers.each do |key, value|
520
+ request_headers[key] = value
521
+ end
522
+ end
523
+
524
+ # Send Request
525
+ promise = Concurrent::Promise.new do
526
+ connection.get do |request|
527
+ request.headers = request_headers
528
+ @client.credentials.sign_request(request) unless @client.credentials.nil?
529
+ end
530
+ end
531
+
532
+ promise = promise.then do |http_response|
533
+ status_code = http_response.status
534
+ response_content = http_response.body
535
+ unless (status_code == 200)
536
+ error_model = JSON.load(response_content)
537
+ fail MsRestAzure::AzureOperationError.new(connection, http_response, error_model)
538
+ end
539
+
540
+ # Create Result
541
+ result = MsRestAzure::AzureOperationResponse.new(connection, http_response)
542
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
543
+ # Deserialize Response
544
+ if status_code == 200
545
+ begin
546
+ parsed_response = JSON.load(response_content) unless response_content.to_s.empty?
547
+ unless parsed_response.nil?
548
+ parsed_response = SecurityRuleListResult.deserialize_object(parsed_response)
549
+ end
550
+ result.body = parsed_response
551
+ rescue Exception => e
552
+ fail MsRest::DeserializationError.new("Error occured in deserializing the response", e.message, e.backtrace, response_content)
553
+ end
554
+ end
555
+
556
+ result
557
+ end
558
+
559
+ promise.execute
560
+ end
561
+
562
+ end
563
+ end