far-gem 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (771) hide show
  1. checksums.yaml +7 -0
  2. data/.arclint +8 -0
  3. data/.codeclimate.yml +17 -0
  4. data/.gitignore +6 -0
  5. data/.hound.yml +2 -0
  6. data/.rubocop.yml +38 -0
  7. data/.travis.yml +47 -0
  8. data/CHANGELOG.md +356 -0
  9. data/CONTRIBUTING.md +40 -0
  10. data/CONTRIBUTORS.md +12 -0
  11. data/Gemfile +3 -0
  12. data/LICENSE.md +20 -0
  13. data/README.md +96 -0
  14. data/fog-azure-rm.gemspec +37 -0
  15. data/lib/fog/azurerm.rb +88 -0
  16. data/lib/fog/azurerm/application_gateway.rb +75 -0
  17. data/lib/fog/azurerm/async_response.rb +44 -0
  18. data/lib/fog/azurerm/compute.rb +102 -0
  19. data/lib/fog/azurerm/config.rb +1 -0
  20. data/lib/fog/azurerm/constants.rb +71 -0
  21. data/lib/fog/azurerm/credentials.rb +40 -0
  22. data/lib/fog/azurerm/dns.rb +70 -0
  23. data/lib/fog/azurerm/docs/application_gateway.md +245 -0
  24. data/lib/fog/azurerm/docs/compute.md +499 -0
  25. data/lib/fog/azurerm/docs/dns.md +149 -0
  26. data/lib/fog/azurerm/docs/key_vault.md +91 -0
  27. data/lib/fog/azurerm/docs/network.md +1132 -0
  28. data/lib/fog/azurerm/docs/resources.md +178 -0
  29. data/lib/fog/azurerm/docs/sql.md +170 -0
  30. data/lib/fog/azurerm/docs/storage.md +398 -0
  31. data/lib/fog/azurerm/docs/structure.md +53 -0
  32. data/lib/fog/azurerm/docs/traffic_manager.md +161 -0
  33. data/lib/fog/azurerm/key_vault.rb +51 -0
  34. data/lib/fog/azurerm/models/application_gateway/backend_address_pool.rb +24 -0
  35. data/lib/fog/azurerm/models/application_gateway/backend_http_setting.rb +28 -0
  36. data/lib/fog/azurerm/models/application_gateway/frontend_ip_configuration.rb +26 -0
  37. data/lib/fog/azurerm/models/application_gateway/frontend_port.rb +20 -0
  38. data/lib/fog/azurerm/models/application_gateway/gateway.rb +617 -0
  39. data/lib/fog/azurerm/models/application_gateway/gateways.rb +30 -0
  40. data/lib/fog/azurerm/models/application_gateway/http_listener.rb +30 -0
  41. data/lib/fog/azurerm/models/application_gateway/ip_configuration.rb +26 -0
  42. data/lib/fog/azurerm/models/application_gateway/probe.rb +30 -0
  43. data/lib/fog/azurerm/models/application_gateway/request_routing_rule.rb +27 -0
  44. data/lib/fog/azurerm/models/application_gateway/ssl_certificate.rb +24 -0
  45. data/lib/fog/azurerm/models/application_gateway/url_path_map.rb +30 -0
  46. data/lib/fog/azurerm/models/compute/availability_set.rb +67 -0
  47. data/lib/fog/azurerm/models/compute/availability_sets.rb +35 -0
  48. data/lib/fog/azurerm/models/compute/caching_types.rb +13 -0
  49. data/lib/fog/azurerm/models/compute/creation_data.rb +23 -0
  50. data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
  51. data/lib/fog/azurerm/models/compute/disk_create_option.rb +16 -0
  52. data/lib/fog/azurerm/models/compute/disk_create_option_types.rb +13 -0
  53. data/lib/fog/azurerm/models/compute/encryption_settings.rb +29 -0
  54. data/lib/fog/azurerm/models/compute/image_disk_reference.rb +15 -0
  55. data/lib/fog/azurerm/models/compute/managed_disk.rb +77 -0
  56. data/lib/fog/azurerm/models/compute/managed_disks.rb +43 -0
  57. data/lib/fog/azurerm/models/compute/operation_status_response.rb +18 -0
  58. data/lib/fog/azurerm/models/compute/server.rb +268 -0
  59. data/lib/fog/azurerm/models/compute/servers.rb +47 -0
  60. data/lib/fog/azurerm/models/compute/virtual_machine_extension.rb +76 -0
  61. data/lib/fog/azurerm/models/compute/virtual_machine_extensions.rb +31 -0
  62. data/lib/fog/azurerm/models/dns/a_record.rb +15 -0
  63. data/lib/fog/azurerm/models/dns/cname_record.rb +15 -0
  64. data/lib/fog/azurerm/models/dns/record_set.rb +103 -0
  65. data/lib/fog/azurerm/models/dns/record_sets.rb +34 -0
  66. data/lib/fog/azurerm/models/dns/zone.rb +58 -0
  67. data/lib/fog/azurerm/models/dns/zones.rb +29 -0
  68. data/lib/fog/azurerm/models/key_vault/access_policy_entry.rb +27 -0
  69. data/lib/fog/azurerm/models/key_vault/vault.rb +78 -0
  70. data/lib/fog/azurerm/models/key_vault/vaults.rb +27 -0
  71. data/lib/fog/azurerm/models/network/express_route_circuit.rb +86 -0
  72. data/lib/fog/azurerm/models/network/express_route_circuit_authorization.rb +50 -0
  73. data/lib/fog/azurerm/models/network/express_route_circuit_authorizations.rb +28 -0
  74. data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +91 -0
  75. data/lib/fog/azurerm/models/network/express_route_circuit_peerings.rb +27 -0
  76. data/lib/fog/azurerm/models/network/express_route_circuits.rb +30 -0
  77. data/lib/fog/azurerm/models/network/express_route_service_provider.rb +29 -0
  78. data/lib/fog/azurerm/models/network/express_route_service_providers.rb +18 -0
  79. data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +27 -0
  80. data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +26 -0
  81. data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +26 -0
  82. data/lib/fog/azurerm/models/network/ipallocation_method.rb +12 -0
  83. data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
  84. data/lib/fog/azurerm/models/network/load_balancers.rb +36 -0
  85. data/lib/fog/azurerm/models/network/load_balancing_rule.rb +37 -0
  86. data/lib/fog/azurerm/models/network/local_network_gateway.rb +62 -0
  87. data/lib/fog/azurerm/models/network/local_network_gateways.rb +27 -0
  88. data/lib/fog/azurerm/models/network/network_interface.rb +121 -0
  89. data/lib/fog/azurerm/models/network/network_interfaces.rb +30 -0
  90. data/lib/fog/azurerm/models/network/network_security_group.rb +114 -0
  91. data/lib/fog/azurerm/models/network/network_security_groups.rb +30 -0
  92. data/lib/fog/azurerm/models/network/network_security_rule.rb +66 -0
  93. data/lib/fog/azurerm/models/network/network_security_rules.rb +31 -0
  94. data/lib/fog/azurerm/models/network/path_rule.rb +30 -0
  95. data/lib/fog/azurerm/models/network/probe.rb +28 -0
  96. data/lib/fog/azurerm/models/network/public_ip.rb +70 -0
  97. data/lib/fog/azurerm/models/network/public_ips.rb +30 -0
  98. data/lib/fog/azurerm/models/network/security_rule_access.rb +12 -0
  99. data/lib/fog/azurerm/models/network/security_rule_direction.rb +12 -0
  100. data/lib/fog/azurerm/models/network/security_rule_protocol.rb +13 -0
  101. data/lib/fog/azurerm/models/network/subnet.rb +66 -0
  102. data/lib/fog/azurerm/models/network/subnets.rb +31 -0
  103. data/lib/fog/azurerm/models/network/virtual_network.rb +109 -0
  104. data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +137 -0
  105. data/lib/fog/azurerm/models/network/virtual_network_gateway_connection.rb +76 -0
  106. data/lib/fog/azurerm/models/network/virtual_network_gateway_connections.rb +27 -0
  107. data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +30 -0
  108. data/lib/fog/azurerm/models/network/virtual_networks.rb +36 -0
  109. data/lib/fog/azurerm/models/network/vpn_client_configuration.rb +34 -0
  110. data/lib/fog/azurerm/models/network/vpn_client_revoked_certificates.rb +22 -0
  111. data/lib/fog/azurerm/models/network/vpn_client_root_certificates.rb +22 -0
  112. data/lib/fog/azurerm/models/resources/azure_resource.rb +25 -0
  113. data/lib/fog/azurerm/models/resources/azure_resources.rb +32 -0
  114. data/lib/fog/azurerm/models/resources/dependency.rb +27 -0
  115. data/lib/fog/azurerm/models/resources/deployment.rb +65 -0
  116. data/lib/fog/azurerm/models/resources/deployments.rb +30 -0
  117. data/lib/fog/azurerm/models/resources/provider.rb +27 -0
  118. data/lib/fog/azurerm/models/resources/provider_resource_type.rb +22 -0
  119. data/lib/fog/azurerm/models/resources/resource_group.rb +34 -0
  120. data/lib/fog/azurerm/models/resources/resource_groups.rb +29 -0
  121. data/lib/fog/azurerm/models/sql/firewall_rule.rb +48 -0
  122. data/lib/fog/azurerm/models/sql/firewall_rules.rb +32 -0
  123. data/lib/fog/azurerm/models/sql/sql_database.rb +67 -0
  124. data/lib/fog/azurerm/models/sql/sql_databases.rb +32 -0
  125. data/lib/fog/azurerm/models/sql/sql_server.rb +50 -0
  126. data/lib/fog/azurerm/models/sql/sql_servers.rb +31 -0
  127. data/lib/fog/azurerm/models/storage/directories.rb +75 -0
  128. data/lib/fog/azurerm/models/storage/directory.rb +151 -0
  129. data/lib/fog/azurerm/models/storage/file.rb +263 -0
  130. data/lib/fog/azurerm/models/storage/files.rb +183 -0
  131. data/lib/fog/azurerm/models/storage/kind.rb +12 -0
  132. data/lib/fog/azurerm/models/storage/sku_name.rb +15 -0
  133. data/lib/fog/azurerm/models/storage/sku_tier.rb +12 -0
  134. data/lib/fog/azurerm/models/storage/storage_account.rb +92 -0
  135. data/lib/fog/azurerm/models/storage/storage_accounts.rb +47 -0
  136. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +82 -0
  137. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +30 -0
  138. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +90 -0
  139. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +27 -0
  140. data/lib/fog/azurerm/network.rb +178 -0
  141. data/lib/fog/azurerm/requests/application_gateway/check_ag_exists.rb +31 -0
  142. data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +302 -0
  143. data/lib/fog/azurerm/requests/application_gateway/delete_application_gateway.rb +26 -0
  144. data/lib/fog/azurerm/requests/application_gateway/get_application_gateway.rb +159 -0
  145. data/lib/fog/azurerm/requests/application_gateway/list_application_gateways.rb +29 -0
  146. data/lib/fog/azurerm/requests/application_gateway/start_application_gateway.rb +27 -0
  147. data/lib/fog/azurerm/requests/application_gateway/stop_application_gateway.rb +27 -0
  148. data/lib/fog/azurerm/requests/application_gateway/update_sku_attributes.rb +28 -0
  149. data/lib/fog/azurerm/requests/application_gateway/update_subnet_id_in_gateway_ip_configuration.rb +29 -0
  150. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +208 -0
  151. data/lib/fog/azurerm/requests/compute/check_availability_set_exists.rb +31 -0
  152. data/lib/fog/azurerm/requests/compute/check_managed_disk_exists.rb +33 -0
  153. data/lib/fog/azurerm/requests/compute/check_vm_exists.rb +39 -0
  154. data/lib/fog/azurerm/requests/compute/check_vm_extension_exists.rb +31 -0
  155. data/lib/fog/azurerm/requests/compute/check_vm_status.rb +38 -0
  156. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +64 -0
  157. data/lib/fog/azurerm/requests/compute/create_image.rb +68 -0
  158. data/lib/fog/azurerm/requests/compute/create_or_update_managed_disk.rb +121 -0
  159. data/lib/fog/azurerm/requests/compute/create_or_update_vm_extension.rb +63 -0
  160. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +403 -0
  161. data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +35 -0
  162. data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +27 -0
  163. data/lib/fog/azurerm/requests/compute/delete_image.rb +29 -0
  164. data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +29 -0
  165. data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +35 -0
  166. data/lib/fog/azurerm/requests/compute/delete_vm_extension.rb +28 -0
  167. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +102 -0
  168. data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +35 -0
  169. data/lib/fog/azurerm/requests/compute/get_availability_set.rb +32 -0
  170. data/lib/fog/azurerm/requests/compute/get_image.rb +45 -0
  171. data/lib/fog/azurerm/requests/compute/get_managed_disk.rb +64 -0
  172. data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +88 -0
  173. data/lib/fog/azurerm/requests/compute/get_vm_extension.rb +46 -0
  174. data/lib/fog/azurerm/requests/compute/grant_access_to_managed_disk.rb +30 -0
  175. data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +40 -0
  176. data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +64 -0
  177. data/lib/fog/azurerm/requests/compute/list_managed_disks_by_rg.rb +66 -0
  178. data/lib/fog/azurerm/requests/compute/list_managed_disks_in_subscription.rb +66 -0
  179. data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +69 -0
  180. data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +35 -0
  181. data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +35 -0
  182. data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +35 -0
  183. data/lib/fog/azurerm/requests/compute/revoke_access_to_managed_disk.rb +33 -0
  184. data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +35 -0
  185. data/lib/fog/azurerm/requests/dns/check_record_set_exists.rb +31 -0
  186. data/lib/fog/azurerm/requests/dns/check_zone_exists.rb +34 -0
  187. data/lib/fog/azurerm/requests/dns/create_or_update_record_set.rb +72 -0
  188. data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +56 -0
  189. data/lib/fog/azurerm/requests/dns/delete_record_set.rb +28 -0
  190. data/lib/fog/azurerm/requests/dns/delete_zone.rb +28 -0
  191. data/lib/fog/azurerm/requests/dns/get_record_set.rb +47 -0
  192. data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +32 -0
  193. data/lib/fog/azurerm/requests/dns/get_zone.rb +41 -0
  194. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +63 -0
  195. data/lib/fog/azurerm/requests/dns/list_zones.rb +72 -0
  196. data/lib/fog/azurerm/requests/key_vault/check_vault_exists.rb +31 -0
  197. data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +106 -0
  198. data/lib/fog/azurerm/requests/key_vault/delete_vault.rb +28 -0
  199. data/lib/fog/azurerm/requests/key_vault/get_vault.rb +54 -0
  200. data/lib/fog/azurerm/requests/key_vault/list_vaults.rb +56 -0
  201. data/lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb +68 -0
  202. data/lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb +76 -0
  203. data/lib/fog/azurerm/requests/network/add_security_rules.rb +154 -0
  204. data/lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb +71 -0
  205. data/lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb +57 -0
  206. data/lib/fog/azurerm/requests/network/attach_resource_to_nic.rb +89 -0
  207. data/lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb +57 -0
  208. data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +31 -0
  209. data/lib/fog/azurerm/requests/network/check_express_route_circuit_exists.rb +31 -0
  210. data/lib/fog/azurerm/requests/network/check_load_balancer_exists.rb +31 -0
  211. data/lib/fog/azurerm/requests/network/check_local_net_gateway_exists.rb +31 -0
  212. data/lib/fog/azurerm/requests/network/check_net_sec_group_exists.rb +31 -0
  213. data/lib/fog/azurerm/requests/network/check_net_sec_rule_exists.rb +31 -0
  214. data/lib/fog/azurerm/requests/network/check_network_interface_exists.rb +31 -0
  215. data/lib/fog/azurerm/requests/network/check_public_ip_exists.rb +33 -0
  216. data/lib/fog/azurerm/requests/network/check_subnet_exists.rb +32 -0
  217. data/lib/fog/azurerm/requests/network/check_virtual_network_exists.rb +33 -0
  218. data/lib/fog/azurerm/requests/network/check_vnet_gateway_connection_exists.rb +32 -0
  219. data/lib/fog/azurerm/requests/network/check_vnet_gateway_exists.rb +32 -0
  220. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +189 -0
  221. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +111 -0
  222. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_authorization.rb +51 -0
  223. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_peering.rb +79 -0
  224. data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +79 -0
  225. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +121 -0
  226. data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +178 -0
  227. data/lib/fog/azurerm/requests/network/create_or_update_network_security_rule.rb +59 -0
  228. data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +61 -0
  229. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +111 -0
  230. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway.rb +159 -0
  231. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +83 -0
  232. data/lib/fog/azurerm/requests/network/create_subnet.rb +54 -0
  233. data/lib/fog/azurerm/requests/network/delete_express_route_circuit.rb +28 -0
  234. data/lib/fog/azurerm/requests/network/delete_express_route_circuit_authorization.rb +29 -0
  235. data/lib/fog/azurerm/requests/network/delete_express_route_circuit_peering.rb +28 -0
  236. data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +28 -0
  237. data/lib/fog/azurerm/requests/network/delete_local_network_gateway.rb +29 -0
  238. data/lib/fog/azurerm/requests/network/delete_network_interface.rb +28 -0
  239. data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +30 -0
  240. data/lib/fog/azurerm/requests/network/delete_network_security_rule.rb +30 -0
  241. data/lib/fog/azurerm/requests/network/delete_public_ip.rb +27 -0
  242. data/lib/fog/azurerm/requests/network/delete_subnet.rb +28 -0
  243. data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +28 -0
  244. data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway.rb +28 -0
  245. data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway_connection.rb +29 -0
  246. data/lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb +51 -0
  247. data/lib/fog/azurerm/requests/network/detach_resource_from_nic.rb +81 -0
  248. data/lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb +51 -0
  249. data/lib/fog/azurerm/requests/network/get_available_ipaddresses_count.rb +23 -0
  250. data/lib/fog/azurerm/requests/network/get_connection_shared_key.rb +25 -0
  251. data/lib/fog/azurerm/requests/network/get_express_route_circuit.rb +51 -0
  252. data/lib/fog/azurerm/requests/network/get_express_route_circuit_authorization.rb +35 -0
  253. data/lib/fog/azurerm/requests/network/get_express_route_circuit_peering.rb +48 -0
  254. data/lib/fog/azurerm/requests/network/get_load_balancer.rb +170 -0
  255. data/lib/fog/azurerm/requests/network/get_local_network_gateway.rb +47 -0
  256. data/lib/fog/azurerm/requests/network/get_network_interface.rb +60 -0
  257. data/lib/fog/azurerm/requests/network/get_network_security_group.rb +165 -0
  258. data/lib/fog/azurerm/requests/network/get_network_security_rule.rb +47 -0
  259. data/lib/fog/azurerm/requests/network/get_public_ip.rb +41 -0
  260. data/lib/fog/azurerm/requests/network/get_subnet.rb +37 -0
  261. data/lib/fog/azurerm/requests/network/get_virtual_network.rb +62 -0
  262. data/lib/fog/azurerm/requests/network/get_virtual_network_gateway.rb +45 -0
  263. data/lib/fog/azurerm/requests/network/get_virtual_network_gateway_connection.rb +47 -0
  264. data/lib/fog/azurerm/requests/network/list_express_route_circuit_authorizations.rb +37 -0
  265. data/lib/fog/azurerm/requests/network/list_express_route_circuit_peerings.rb +44 -0
  266. data/lib/fog/azurerm/requests/network/list_express_route_circuits.rb +53 -0
  267. data/lib/fog/azurerm/requests/network/list_express_route_service_providers.rb +37 -0
  268. data/lib/fog/azurerm/requests/network/list_load_balancers.rb +31 -0
  269. data/lib/fog/azurerm/requests/network/list_load_balancers_in_subscription.rb +31 -0
  270. data/lib/fog/azurerm/requests/network/list_local_network_gateways.rb +50 -0
  271. data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +67 -0
  272. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +169 -0
  273. data/lib/fog/azurerm/requests/network/list_network_security_rules.rb +51 -0
  274. data/lib/fog/azurerm/requests/network/list_public_ips.rb +46 -0
  275. data/lib/fog/azurerm/requests/network/list_subnets.rb +55 -0
  276. data/lib/fog/azurerm/requests/network/list_virtual_network_gateway_connections.rb +50 -0
  277. data/lib/fog/azurerm/requests/network/list_virtual_network_gateways.rb +43 -0
  278. data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +74 -0
  279. data/lib/fog/azurerm/requests/network/list_virtual_networks_in_subscription.rb +74 -0
  280. data/lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb +69 -0
  281. data/lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb +69 -0
  282. data/lib/fog/azurerm/requests/network/remove_security_rule.rb +157 -0
  283. data/lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb +59 -0
  284. data/lib/fog/azurerm/requests/network/reset_connection_shared_key.rb +36 -0
  285. data/lib/fog/azurerm/requests/network/set_connection_shared_key.rb +36 -0
  286. data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +40 -0
  287. data/lib/fog/azurerm/requests/resources/check_deployment_exists.rb +30 -0
  288. data/lib/fog/azurerm/requests/resources/check_resource_group_exists.rb +30 -0
  289. data/lib/fog/azurerm/requests/resources/create_deployment.rb +97 -0
  290. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +40 -0
  291. data/lib/fog/azurerm/requests/resources/delete_deployment.rb +28 -0
  292. data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +28 -0
  293. data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +44 -0
  294. data/lib/fog/azurerm/requests/resources/get_deployment.rb +81 -0
  295. data/lib/fog/azurerm/requests/resources/get_resource_group.rb +47 -0
  296. data/lib/fog/azurerm/requests/resources/list_deployments.rb +77 -0
  297. data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +51 -0
  298. data/lib/fog/azurerm/requests/resources/list_tagged_resources.rb +50 -0
  299. data/lib/fog/azurerm/requests/resources/tag_resource.rb +43 -0
  300. data/lib/fog/azurerm/requests/sql/check_database_exists.rb +21 -0
  301. data/lib/fog/azurerm/requests/sql/check_firewall_rule_exists.rb +21 -0
  302. data/lib/fog/azurerm/requests/sql/check_sql_server_exists.rb +21 -0
  303. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +71 -0
  304. data/lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb +42 -0
  305. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +53 -0
  306. data/lib/fog/azurerm/requests/sql/delete_database.rb +28 -0
  307. data/lib/fog/azurerm/requests/sql/delete_firewall_rule.rb +29 -0
  308. data/lib/fog/azurerm/requests/sql/delete_sql_server.rb +29 -0
  309. data/lib/fog/azurerm/requests/sql/get_database.rb +42 -0
  310. data/lib/fog/azurerm/requests/sql/get_firewall_rule.rb +37 -0
  311. data/lib/fog/azurerm/requests/sql/get_sql_server.rb +34 -0
  312. data/lib/fog/azurerm/requests/sql/list_databases.rb +58 -0
  313. data/lib/fog/azurerm/requests/sql/list_firewall_rules.rb +49 -0
  314. data/lib/fog/azurerm/requests/sql/list_sql_servers.rb +44 -0
  315. data/lib/fog/azurerm/requests/storage/acquire_blob_lease.rb +32 -0
  316. data/lib/fog/azurerm/requests/storage/acquire_container_lease.rb +32 -0
  317. data/lib/fog/azurerm/requests/storage/check_container_exists.rb +30 -0
  318. data/lib/fog/azurerm/requests/storage/check_storage_account_exists.rb +37 -0
  319. data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +44 -0
  320. data/lib/fog/azurerm/requests/storage/commit_blob_blocks.rb +30 -0
  321. data/lib/fog/azurerm/requests/storage/compare_container_blobs.rb +148 -0
  322. data/lib/fog/azurerm/requests/storage/copy_blob.rb +30 -0
  323. data/lib/fog/azurerm/requests/storage/copy_blob_from_uri.rb +30 -0
  324. data/lib/fog/azurerm/requests/storage/create_block_blob.rb +108 -0
  325. data/lib/fog/azurerm/requests/storage/create_container.rb +40 -0
  326. data/lib/fog/azurerm/requests/storage/create_disk.rb +62 -0
  327. data/lib/fog/azurerm/requests/storage/create_page_blob.rb +31 -0
  328. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +66 -0
  329. data/lib/fog/azurerm/requests/storage/delete_blob.rb +32 -0
  330. data/lib/fog/azurerm/requests/storage/delete_container.rb +31 -0
  331. data/lib/fog/azurerm/requests/storage/delete_disk.rb +36 -0
  332. data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +27 -0
  333. data/lib/fog/azurerm/requests/storage/get_blob.rb +163 -0
  334. data/lib/fog/azurerm/requests/storage/get_blob_http_url.rb +39 -0
  335. data/lib/fog/azurerm/requests/storage/get_blob_https_url.rb +39 -0
  336. data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +55 -0
  337. data/lib/fog/azurerm/requests/storage/get_blob_url.rb +28 -0
  338. data/lib/fog/azurerm/requests/storage/get_container_acl.rb +30 -0
  339. data/lib/fog/azurerm/requests/storage/get_container_properties.rb +41 -0
  340. data/lib/fog/azurerm/requests/storage/get_container_url.rb +34 -0
  341. data/lib/fog/azurerm/requests/storage/get_storage_access_keys.rb +32 -0
  342. data/lib/fog/azurerm/requests/storage/get_storage_account.rb +36 -0
  343. data/lib/fog/azurerm/requests/storage/list_blobs.rb +168 -0
  344. data/lib/fog/azurerm/requests/storage/list_containers.rb +73 -0
  345. data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +49 -0
  346. data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +49 -0
  347. data/lib/fog/azurerm/requests/storage/multipart_save_block_blob.rb +110 -0
  348. data/lib/fog/azurerm/requests/storage/put_blob_block.rb +30 -0
  349. data/lib/fog/azurerm/requests/storage/put_blob_metadata.rb +31 -0
  350. data/lib/fog/azurerm/requests/storage/put_blob_pages.rb +30 -0
  351. data/lib/fog/azurerm/requests/storage/put_blob_properties.rb +31 -0
  352. data/lib/fog/azurerm/requests/storage/put_container_acl.rb +31 -0
  353. data/lib/fog/azurerm/requests/storage/put_container_metadata.rb +31 -0
  354. data/lib/fog/azurerm/requests/storage/release_blob_lease.rb +30 -0
  355. data/lib/fog/azurerm/requests/storage/release_container_lease.rb +30 -0
  356. data/lib/fog/azurerm/requests/storage/save_page_blob.rb +111 -0
  357. data/lib/fog/azurerm/requests/storage/update_storage_account.rb +59 -0
  358. data/lib/fog/azurerm/requests/storage/wait_blob_copy_operation_to_finish.rb +56 -0
  359. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_endpoint_exists.rb +31 -0
  360. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_profile_exists.rb +31 -0
  361. data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_endpoint.rb +54 -0
  362. data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +130 -0
  363. data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_endpoint.rb +28 -0
  364. data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_profile.rb +26 -0
  365. data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_endpoint.rb +39 -0
  366. data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_profile.rb +80 -0
  367. data/lib/fog/azurerm/requests/traffic_manager/list_traffic_manager_profiles.rb +82 -0
  368. data/lib/fog/azurerm/resources.rb +71 -0
  369. data/lib/fog/azurerm/sql.rb +66 -0
  370. data/lib/fog/azurerm/storage.rb +136 -0
  371. data/lib/fog/azurerm/traffic_manager.rb +62 -0
  372. data/lib/fog/azurerm/utilities/general.rb +179 -0
  373. data/lib/fog/azurerm/utilities/logger_messages.yml +19 -0
  374. data/lib/fog/azurerm/version.rb +5 -0
  375. data/rake-script.sh +10 -0
  376. data/rakefile +29 -0
  377. data/test/api_stub.rb +145 -0
  378. data/test/api_stub/models/application_gateway/gateway.rb +165 -0
  379. data/test/api_stub/models/compute/availability_set.rb +69 -0
  380. data/test/api_stub/models/compute/managed_disk.rb +59 -0
  381. data/test/api_stub/models/compute/server.rb +268 -0
  382. data/test/api_stub/models/compute/virtual_machine_extension.rb +31 -0
  383. data/test/api_stub/models/dns/record_set.rb +57 -0
  384. data/test/api_stub/models/dns/zone.rb +29 -0
  385. data/test/api_stub/models/key_vault/vault.rb +39 -0
  386. data/test/api_stub/models/network/express_route_circuit.rb +47 -0
  387. data/test/api_stub/models/network/express_route_circuit_authorization.rb +22 -0
  388. data/test/api_stub/models/network/express_route_circuit_peering.rb +33 -0
  389. data/test/api_stub/models/network/express_route_service_provider.rb +29 -0
  390. data/test/api_stub/models/network/load_balancer.rb +154 -0
  391. data/test/api_stub/models/network/local_network_gateway.rb +31 -0
  392. data/test/api_stub/models/network/network_interface.rb +72 -0
  393. data/test/api_stub/models/network/network_security_group.rb +95 -0
  394. data/test/api_stub/models/network/network_security_rule.rb +30 -0
  395. data/test/api_stub/models/network/public_ip.rb +36 -0
  396. data/test/api_stub/models/network/subnet.rb +36 -0
  397. data/test/api_stub/models/network/virtual_network.rb +62 -0
  398. data/test/api_stub/models/network/virtual_network_gateway.rb +26 -0
  399. data/test/api_stub/models/network/virtual_network_gateway_connection.rb +31 -0
  400. data/test/api_stub/models/resources/deployment.rb +116 -0
  401. data/test/api_stub/models/resources/resource.rb +43 -0
  402. data/test/api_stub/models/resources/resource_group.rb +24 -0
  403. data/test/api_stub/models/sql/sql_database.rb +30 -0
  404. data/test/api_stub/models/sql/sql_firewall_rule.rb +24 -0
  405. data/test/api_stub/models/sql/sql_server.rb +24 -0
  406. data/test/api_stub/models/storage/directory.rb +178 -0
  407. data/test/api_stub/models/storage/file.rb +181 -0
  408. data/test/api_stub/models/storage/storageaccount.rb +22 -0
  409. data/test/api_stub/models/traffic_manager/traffic_manager_end_point.rb +27 -0
  410. data/test/api_stub/models/traffic_manager/traffic_manager_profile.rb +75 -0
  411. data/test/api_stub/requests/application_gateway/gateway.rb +461 -0
  412. data/test/api_stub/requests/compute/availability_set.rb +114 -0
  413. data/test/api_stub/requests/compute/image.rb +41 -0
  414. data/test/api_stub/requests/compute/managed_disk.rb +102 -0
  415. data/test/api_stub/requests/compute/virtual_machine.rb +1018 -0
  416. data/test/api_stub/requests/compute/virtual_machine_extension.rb +46 -0
  417. data/test/api_stub/requests/dns/record_set.rb +75 -0
  418. data/test/api_stub/requests/dns/zone.rb +52 -0
  419. data/test/api_stub/requests/key_vault/vault.rb +95 -0
  420. data/test/api_stub/requests/network/express_route_circuit.rb +100 -0
  421. data/test/api_stub/requests/network/express_route_circuit_authorization.rb +31 -0
  422. data/test/api_stub/requests/network/express_route_circuit_peering.rb +62 -0
  423. data/test/api_stub/requests/network/express_route_service_provider.rb +30 -0
  424. data/test/api_stub/requests/network/load_balancer.rb +388 -0
  425. data/test/api_stub/requests/network/local_network_gateway.rb +62 -0
  426. data/test/api_stub/requests/network/network_interface.rb +264 -0
  427. data/test/api_stub/requests/network/network_security_group.rb +225 -0
  428. data/test/api_stub/requests/network/network_security_rule.rb +72 -0
  429. data/test/api_stub/requests/network/public_ip.rb +71 -0
  430. data/test/api_stub/requests/network/subnet.rb +71 -0
  431. data/test/api_stub/requests/network/virtual_network.rb +125 -0
  432. data/test/api_stub/requests/network/virtual_network_gateway.rb +49 -0
  433. data/test/api_stub/requests/network/virtual_network_gateway_connection.rb +68 -0
  434. data/test/api_stub/requests/resources/deployment.rb +68 -0
  435. data/test/api_stub/requests/resources/resource.rb +45 -0
  436. data/test/api_stub/requests/resources/resource_group.rb +51 -0
  437. data/test/api_stub/requests/sql/database.rb +71 -0
  438. data/test/api_stub/requests/sql/firewall_rule.rb +50 -0
  439. data/test/api_stub/requests/sql/sql_server.rb +49 -0
  440. data/test/api_stub/requests/storage/directory.rb +89 -0
  441. data/test/api_stub/requests/storage/file.rb +243 -0
  442. data/test/api_stub/requests/storage/storageaccount.rb +126 -0
  443. data/test/api_stub/requests/traffic_manager/traffic_manager_endpoint.rb +41 -0
  444. data/test/api_stub/requests/traffic_manager/traffic_manager_profile.rb +166 -0
  445. data/test/integration/README.md +14 -0
  446. data/test/integration/application_gateway.rb +260 -0
  447. data/test/integration/availability_set.rb +184 -0
  448. data/test/integration/blob.rb +297 -0
  449. data/test/integration/container.rb +160 -0
  450. data/test/integration/credentials/azure.yml +5 -0
  451. data/test/integration/data_disk.rb +90 -0
  452. data/test/integration/deployment.rb +78 -0
  453. data/test/integration/express_route_circuit.rb +139 -0
  454. data/test/integration/external_load_balancer.rb +156 -0
  455. data/test/integration/internal_load_balancer.rb +145 -0
  456. data/test/integration/key_vault.rb +99 -0
  457. data/test/integration/local_network_gateway.rb +91 -0
  458. data/test/integration/managed_disk.rb +118 -0
  459. data/test/integration/network_interface.rb +157 -0
  460. data/test/integration/network_security_group.rb +134 -0
  461. data/test/integration/network_security_rule.rb +102 -0
  462. data/test/integration/public_ip.rb +84 -0
  463. data/test/integration/record_set.rb +126 -0
  464. data/test/integration/resource_group.rb +62 -0
  465. data/test/integration/resource_tag.rb +93 -0
  466. data/test/integration/server.rb +356 -0
  467. data/test/integration/server_custom_image.rb +227 -0
  468. data/test/integration/sql_server.rb +183 -0
  469. data/test/integration/storage_account.rb +135 -0
  470. data/test/integration/subnet.rb +122 -0
  471. data/test/integration/traffic_manager.rb +142 -0
  472. data/test/integration/virtual_machine_extension.rb +165 -0
  473. data/test/integration/virtual_network.rb +163 -0
  474. data/test/integration/virtual_network_gateway.rb +119 -0
  475. data/test/integration/virtual_network_gateway_connection.rb +221 -0
  476. data/test/integration/virtual_network_gateway_connection_to_express_route.rb +123 -0
  477. data/test/integration/zone.rb +81 -0
  478. data/test/models/application_gateway/test_gateway.rb +136 -0
  479. data/test/models/application_gateway/test_gateways.rb +55 -0
  480. data/test/models/compute/test_availability_set.rb +57 -0
  481. data/test/models/compute/test_availability_sets.rb +55 -0
  482. data/test/models/compute/test_data_disk.rb +23 -0
  483. data/test/models/compute/test_managed_disk.rb +62 -0
  484. data/test/models/compute/test_managed_disks.rb +68 -0
  485. data/test/models/compute/test_server.rb +236 -0
  486. data/test/models/compute/test_servers.rb +56 -0
  487. data/test/models/compute/test_virtual_machine_extension.rb +61 -0
  488. data/test/models/compute/test_virtual_machine_extensions.rb +49 -0
  489. data/test/models/dns/test_record_set.rb +86 -0
  490. data/test/models/dns/test_record_sets.rb +66 -0
  491. data/test/models/dns/test_zone.rb +51 -0
  492. data/test/models/dns/test_zones.rb +51 -0
  493. data/test/models/key_vault/test_vault.rb +40 -0
  494. data/test/models/key_vault/test_vaults.rb +55 -0
  495. data/test/models/network/test_express_route_circuit.rb +52 -0
  496. data/test/models/network/test_express_route_circuit_authorization.rb +50 -0
  497. data/test/models/network/test_express_route_circuit_authorizations.rb +56 -0
  498. data/test/models/network/test_express_route_circuit_peering.rb +53 -0
  499. data/test/models/network/test_express_route_circuit_peerings.rb +43 -0
  500. data/test/models/network/test_express_route_circuits.rb +55 -0
  501. data/test/models/network/test_express_route_service_providers.rb +30 -0
  502. data/test/models/network/test_load_balancer.rb +52 -0
  503. data/test/models/network/test_load_balancers.rb +55 -0
  504. data/test/models/network/test_local_network_gateway.rb +53 -0
  505. data/test/models/network/test_local_network_gateways.rb +55 -0
  506. data/test/models/network/test_network_interface.rb +97 -0
  507. data/test/models/network/test_network_interfaces.rb +55 -0
  508. data/test/models/network/test_network_security_group.rb +87 -0
  509. data/test/models/network/test_network_security_groups.rb +54 -0
  510. data/test/models/network/test_network_security_rule.rb +44 -0
  511. data/test/models/network/test_network_security_rules.rb +55 -0
  512. data/test/models/network/test_public_ip.rb +62 -0
  513. data/test/models/network/test_public_ips.rb +55 -0
  514. data/test/models/network/test_subnet.rb +83 -0
  515. data/test/models/network/test_subnets.rb +56 -0
  516. data/test/models/network/test_virtual_network.rb +107 -0
  517. data/test/models/network/test_virtual_network_gateway.rb +62 -0
  518. data/test/models/network/test_virtual_network_gateway_connection.rb +59 -0
  519. data/test/models/network/test_virtual_network_gateway_connections.rb +55 -0
  520. data/test/models/network/test_virtual_network_gateways.rb +55 -0
  521. data/test/models/network/test_virtual_networks.rb +67 -0
  522. data/test/models/resources/test_deployment.rb +55 -0
  523. data/test/models/resources/test_deployments.rb +51 -0
  524. data/test/models/resources/test_resource.rb +22 -0
  525. data/test/models/resources/test_resource_group.rb +45 -0
  526. data/test/models/resources/test_resource_groups.rb +51 -0
  527. data/test/models/resources/test_resources.rb +52 -0
  528. data/test/models/sql/test_database.rb +68 -0
  529. data/test/models/sql/test_databases.rb +42 -0
  530. data/test/models/sql/test_firewall_rule.rb +55 -0
  531. data/test/models/sql/test_firewall_rules.rb +42 -0
  532. data/test/models/sql/test_sql_server.rb +58 -0
  533. data/test/models/sql/test_sql_servers.rb +41 -0
  534. data/test/models/storage/test_directories.rb +74 -0
  535. data/test/models/storage/test_directory.rb +178 -0
  536. data/test/models/storage/test_file.rb +294 -0
  537. data/test/models/storage/test_files.rb +234 -0
  538. data/test/models/storage/test_storage_account.rb +89 -0
  539. data/test/models/storage/test_storage_accounts.rb +78 -0
  540. data/test/models/traffic_manager/test_traffic_manager_end_point.rb +54 -0
  541. data/test/models/traffic_manager/test_traffic_manager_end_points.rb +56 -0
  542. data/test/models/traffic_manager/test_traffic_manager_profile.rb +63 -0
  543. data/test/models/traffic_manager/test_traffic_manager_profiles.rb +55 -0
  544. data/test/requests/application_gateway/test_check_ag_exists.rb +38 -0
  545. data/test/requests/application_gateway/test_create_or_update_application_gateway.rb +35 -0
  546. data/test/requests/application_gateway/test_delete_application_gateway.rb +23 -0
  547. data/test/requests/application_gateway/test_get_application_gateway.rb +24 -0
  548. data/test/requests/application_gateway/test_list_application_gateways.rb +24 -0
  549. data/test/requests/application_gateway/test_start_application_gateway.rb +25 -0
  550. data/test/requests/application_gateway/test_stop_application_gateway.rb +25 -0
  551. data/test/requests/compute/test_attach_data_disk_to_vm.rb +105 -0
  552. data/test/requests/compute/test_check_availability_set_exists.rb +38 -0
  553. data/test/requests/compute/test_check_managed_disk_exists.rb +38 -0
  554. data/test/requests/compute/test_check_vm_exists.rb +38 -0
  555. data/test/requests/compute/test_check_vm_extension_exists.rb +38 -0
  556. data/test/requests/compute/test_create_availability_set.rb +112 -0
  557. data/test/requests/compute/test_create_image.rb +27 -0
  558. data/test/requests/compute/test_create_or_update_managed_disk.rb +38 -0
  559. data/test/requests/compute/test_create_virtual_machine.rb +90 -0
  560. data/test/requests/compute/test_create_vm_extension.rb +35 -0
  561. data/test/requests/compute/test_deallocate_virtual_machine.rb +32 -0
  562. data/test/requests/compute/test_delete_availability_set.rb +23 -0
  563. data/test/requests/compute/test_delete_image.rb +23 -0
  564. data/test/requests/compute/test_delete_managed_disk.rb +23 -0
  565. data/test/requests/compute/test_delete_virtual_machine.rb +32 -0
  566. data/test/requests/compute/test_detach_data_disk_from_vm.rb +32 -0
  567. data/test/requests/compute/test_generalize_virtual_machine.rb +32 -0
  568. data/test/requests/compute/test_get_availability_set.rb +24 -0
  569. data/test/requests/compute/test_get_image.rb +23 -0
  570. data/test/requests/compute/test_get_managed_disk.rb +24 -0
  571. data/test/requests/compute/test_get_virtual_machine.rb +24 -0
  572. data/test/requests/compute/test_get_vm_extension.rb +26 -0
  573. data/test/requests/compute/test_get_vm_status.rb +25 -0
  574. data/test/requests/compute/test_grant_access_to_managed_disk.rb +26 -0
  575. data/test/requests/compute/test_list_availability_sets.rb +24 -0
  576. data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +33 -0
  577. data/test/requests/compute/test_list_managed_disks_by_rg.rb +24 -0
  578. data/test/requests/compute/test_list_managed_disks_in_subscription.rb +24 -0
  579. data/test/requests/compute/test_list_virtual_machines.rb +24 -0
  580. data/test/requests/compute/test_power_off_virtual_machine.rb +32 -0
  581. data/test/requests/compute/test_redeploy_virtual_machine.rb +33 -0
  582. data/test/requests/compute/test_restart_virtual_machine.rb +32 -0
  583. data/test/requests/compute/test_revoke_access_to_managed_disk.rb +24 -0
  584. data/test/requests/compute/test_start_virtual_machine.rb +32 -0
  585. data/test/requests/compute/test_update_vm_extension.rb +35 -0
  586. data/test/requests/dns/test_check_record_set_exists.rb +38 -0
  587. data/test/requests/dns/test_check_zone_exists.rb +49 -0
  588. data/test/requests/dns/test_create_record_set.rb +46 -0
  589. data/test/requests/dns/test_create_zone.rb +37 -0
  590. data/test/requests/dns/test_delete_record_set.rb +24 -0
  591. data/test/requests/dns/test_delete_zone.rb +24 -0
  592. data/test/requests/dns/test_get_record_set.rb +24 -0
  593. data/test/requests/dns/test_get_records_from_record_set.rb +42 -0
  594. data/test/requests/dns/test_get_zone.rb +35 -0
  595. data/test/requests/dns/test_list_record_sets.rb +35 -0
  596. data/test/requests/dns/test_list_zones.rb +26 -0
  597. data/test/requests/key_vault/test_check_vault_exists.rb +38 -0
  598. data/test/requests/key_vault/test_create_or_update_vault.rb +25 -0
  599. data/test/requests/key_vault/test_delete_vault.rb +23 -0
  600. data/test/requests/key_vault/test_get_vault.rb +24 -0
  601. data/test/requests/key_vault/test_list_vaults.rb +24 -0
  602. data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +29 -0
  603. data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +29 -0
  604. data/test/requests/network/test_add_security_rules.rb +43 -0
  605. data/test/requests/network/test_add_subnets_in_virtual_network.rb +29 -0
  606. data/test/requests/network/test_attach_network_security_group_to_subnet.rb +26 -0
  607. data/test/requests/network/test_attach_resource_to_nic.rb +43 -0
  608. data/test/requests/network/test_attach_route_table_to_subnet.rb +26 -0
  609. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +38 -0
  610. data/test/requests/network/test_check_express_route_circuit_exists.rb +38 -0
  611. data/test/requests/network/test_check_load_balancer_exists.rb +38 -0
  612. data/test/requests/network/test_check_local_net_gateway_exists.rb +38 -0
  613. data/test/requests/network/test_check_net_sec_group_exists.rb +38 -0
  614. data/test/requests/network/test_check_net_sec_rule_exists.rb +38 -0
  615. data/test/requests/network/test_check_network_interface_exists.rb +38 -0
  616. data/test/requests/network/test_check_public_ip_exists.rb +37 -0
  617. data/test/requests/network/test_check_subnet_exists.rb +38 -0
  618. data/test/requests/network/test_check_virtual_network_exists.rb +40 -0
  619. data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +38 -0
  620. data/test/requests/network/test_check_vnet_gateway_exists.rb +38 -0
  621. data/test/requests/network/test_create_express_route_circuit.rb +39 -0
  622. data/test/requests/network/test_create_express_route_circuit_authorization.rb +35 -0
  623. data/test/requests/network/test_create_express_route_circuit_peering.rb +37 -0
  624. data/test/requests/network/test_create_load_balancer.rb +50 -0
  625. data/test/requests/network/test_create_local_network_gateway.rb +36 -0
  626. data/test/requests/network/test_create_network_interface.rb +43 -0
  627. data/test/requests/network/test_create_or_update_network_security_group.rb +39 -0
  628. data/test/requests/network/test_create_or_update_network_security_rule.rb +28 -0
  629. data/test/requests/network/test_create_or_update_virtual_network.rb +57 -0
  630. data/test/requests/network/test_create_public_ip.rb +36 -0
  631. data/test/requests/network/test_create_subnet.rb +35 -0
  632. data/test/requests/network/test_create_virtual_network_gateway.rb +37 -0
  633. data/test/requests/network/test_create_virtual_network_gateway_connection.rb +36 -0
  634. data/test/requests/network/test_delete_express_route_circuit.rb +24 -0
  635. data/test/requests/network/test_delete_express_route_circuit_authorization.rb +23 -0
  636. data/test/requests/network/test_delete_express_route_circuit_peering.rb +24 -0
  637. data/test/requests/network/test_delete_load_balancer.rb +24 -0
  638. data/test/requests/network/test_delete_local_network_gateway.rb +23 -0
  639. data/test/requests/network/test_delete_network_interface.rb +24 -0
  640. data/test/requests/network/test_delete_network_security_group.rb +25 -0
  641. data/test/requests/network/test_delete_network_security_rule.rb +25 -0
  642. data/test/requests/network/test_delete_public_ip.rb +24 -0
  643. data/test/requests/network/test_delete_subnet.rb +24 -0
  644. data/test/requests/network/test_delete_virtual_network.rb +24 -0
  645. data/test/requests/network/test_delete_virtual_network_gateway.rb +24 -0
  646. data/test/requests/network/test_delete_virtual_network_gateway_connection.rb +23 -0
  647. data/test/requests/network/test_detach_network_security_group_from_subnet.rb +26 -0
  648. data/test/requests/network/test_detach_resource_from_nic.rb +41 -0
  649. data/test/requests/network/test_detach_route_table_from_subnet.rb +26 -0
  650. data/test/requests/network/test_get_available_ipaddresses_count.rb +18 -0
  651. data/test/requests/network/test_get_connection_shared_key.rb +24 -0
  652. data/test/requests/network/test_get_express_route_circuit.rb +24 -0
  653. data/test/requests/network/test_get_express_route_circuit_authorization.rb +24 -0
  654. data/test/requests/network/test_get_express_route_circuit_peering.rb +24 -0
  655. data/test/requests/network/test_get_load_balancer.rb +24 -0
  656. data/test/requests/network/test_get_local_network_gateway.rb +24 -0
  657. data/test/requests/network/test_get_network_interface.rb +24 -0
  658. data/test/requests/network/test_get_network_security_group.rb +26 -0
  659. data/test/requests/network/test_get_network_security_rule.rb +26 -0
  660. data/test/requests/network/test_get_public_ip.rb +26 -0
  661. data/test/requests/network/test_get_subnet.rb +26 -0
  662. data/test/requests/network/test_get_virtual_network.rb +26 -0
  663. data/test/requests/network/test_get_virtual_network_gateway.rb +24 -0
  664. data/test/requests/network/test_get_virtual_network_gateway_connection.rb +24 -0
  665. data/test/requests/network/test_list_express_route_circuit_authorizations.rb +24 -0
  666. data/test/requests/network/test_list_express_route_circuit_peerings.rb +24 -0
  667. data/test/requests/network/test_list_express_route_circuits.rb +26 -0
  668. data/test/requests/network/test_list_express_route_service_providers.rb +24 -0
  669. data/test/requests/network/test_list_load_balancers.rb +24 -0
  670. data/test/requests/network/test_list_local_network_gateways.rb +24 -0
  671. data/test/requests/network/test_list_network_interfaces.rb +24 -0
  672. data/test/requests/network/test_list_network_security_groups.rb +26 -0
  673. data/test/requests/network/test_list_network_security_rules.rb +26 -0
  674. data/test/requests/network/test_list_public_ips.rb +24 -0
  675. data/test/requests/network/test_list_subnets.rb +24 -0
  676. data/test/requests/network/test_list_virtual_network_gateway_connections.rb +24 -0
  677. data/test/requests/network/test_list_virtual_network_gateways.rb +24 -0
  678. data/test/requests/network/test_list_virtual_networks.rb +24 -0
  679. data/test/requests/network/test_list_virtual_networks_in_subscription.rb +24 -0
  680. data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +29 -0
  681. data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +29 -0
  682. data/test/requests/network/test_remove_security_rule.rb +29 -0
  683. data/test/requests/network/test_remove_subnets_from_virtual_network.rb +29 -0
  684. data/test/requests/network/test_reset_connection_shared_key.rb +23 -0
  685. data/test/requests/network/test_set_connection_shared_key.rb +23 -0
  686. data/test/requests/network/test_update_public_ip.rb +35 -0
  687. data/test/requests/resources/test_check_azure_resource_exists.rb +22 -0
  688. data/test/requests/resources/test_check_deployment_exists.rb +29 -0
  689. data/test/requests/resources/test_check_resource_group_exists.rb +29 -0
  690. data/test/requests/resources/test_create_deployment.rb +32 -0
  691. data/test/requests/resources/test_create_resource_group.rb +25 -0
  692. data/test/requests/resources/test_delete_deployment.rb +25 -0
  693. data/test/requests/resources/test_delete_resource_group.rb +24 -0
  694. data/test/requests/resources/test_delete_resource_tag.rb +35 -0
  695. data/test/requests/resources/test_get_deployment.rb +24 -0
  696. data/test/requests/resources/test_get_resource_group.rb +24 -0
  697. data/test/requests/resources/test_list_deployments.rb +25 -0
  698. data/test/requests/resources/test_list_resource_groups.rb +24 -0
  699. data/test/requests/resources/test_list_tagged_resources.rb +24 -0
  700. data/test/requests/resources/test_tag_resource.rb +35 -0
  701. data/test/requests/sql/test_create_or_update_database.rb +25 -0
  702. data/test/requests/sql/test_create_or_update_firewall_rule.rb +25 -0
  703. data/test/requests/sql/test_create_or_update_sql_server.rb +25 -0
  704. data/test/requests/sql/test_delete_database.rb +23 -0
  705. data/test/requests/sql/test_delete_firewall_rule.rb +23 -0
  706. data/test/requests/sql/test_delete_sql_server.rb +23 -0
  707. data/test/requests/sql/test_get_database.rb +24 -0
  708. data/test/requests/sql/test_get_firewall_rule.rb +24 -0
  709. data/test/requests/sql/test_get_sql_server.rb +24 -0
  710. data/test/requests/sql/test_list_databases.rb +24 -0
  711. data/test/requests/sql/test_list_firewall_rules.rb +24 -0
  712. data/test/requests/sql/test_list_sql_servers.rb +24 -0
  713. data/test/requests/storage/test_acquire_blob_lease.rb +36 -0
  714. data/test/requests/storage/test_acquire_container_lease.rb +36 -0
  715. data/test/requests/storage/test_check_container_exists.rb +18 -0
  716. data/test/requests/storage/test_check_storage_account_exists.rb +41 -0
  717. data/test/requests/storage/test_check_storage_account_name_availability.rb +35 -0
  718. data/test/requests/storage/test_commit_blob_blocks.rb +34 -0
  719. data/test/requests/storage/test_compare_container_blobs.rb +36 -0
  720. data/test/requests/storage/test_copy_blob.rb +36 -0
  721. data/test/requests/storage/test_copy_blob_from_uri.rb +36 -0
  722. data/test/requests/storage/test_create_block_blob.rb +80 -0
  723. data/test/requests/storage/test_create_container.rb +36 -0
  724. data/test/requests/storage/test_create_disk.rb +70 -0
  725. data/test/requests/storage/test_create_page_blob.rb +34 -0
  726. data/test/requests/storage/test_create_storage_account.rb +34 -0
  727. data/test/requests/storage/test_delete_blob.rb +42 -0
  728. data/test/requests/storage/test_delete_container.rb +42 -0
  729. data/test/requests/storage/test_delete_disk.rb +30 -0
  730. data/test/requests/storage/test_delete_storage_account.rb +28 -0
  731. data/test/requests/storage/test_get_blob.rb +141 -0
  732. data/test/requests/storage/test_get_blob_http_url.rb +30 -0
  733. data/test/requests/storage/test_get_blob_https_url.rb +30 -0
  734. data/test/requests/storage/test_get_blob_properties.rb +45 -0
  735. data/test/requests/storage/test_get_blob_url.rb +75 -0
  736. data/test/requests/storage/test_get_container_acl.rb +37 -0
  737. data/test/requests/storage/test_get_container_properties.rb +45 -0
  738. data/test/requests/storage/test_get_container_url.rb +33 -0
  739. data/test/requests/storage/test_get_storage_access_keys.rb +24 -0
  740. data/test/requests/storage/test_get_storage_account.rb +25 -0
  741. data/test/requests/storage/test_list_blobs.rb +77 -0
  742. data/test/requests/storage/test_list_containers.rb +54 -0
  743. data/test/requests/storage/test_list_storage_accounts.rb +37 -0
  744. data/test/requests/storage/test_list_storage_accounts_for_rg.rb +37 -0
  745. data/test/requests/storage/test_multipart_save_block_blob.rb +105 -0
  746. data/test/requests/storage/test_put_blob_block.rb +34 -0
  747. data/test/requests/storage/test_put_blob_metadata.rb +36 -0
  748. data/test/requests/storage/test_put_blob_pages.rb +34 -0
  749. data/test/requests/storage/test_put_blob_properties.rb +39 -0
  750. data/test/requests/storage/test_put_container_acl.rb +34 -0
  751. data/test/requests/storage/test_put_container_metadata.rb +36 -0
  752. data/test/requests/storage/test_release_blob_lease.rb +34 -0
  753. data/test/requests/storage/test_release_container_lease.rb +34 -0
  754. data/test/requests/storage/test_save_page_blob.rb +115 -0
  755. data/test/requests/storage/test_update_storage_account.rb +34 -0
  756. data/test/requests/storage/test_wait_blob_copy_operation_to_finish.rb +148 -0
  757. data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +38 -0
  758. data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +38 -0
  759. data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +25 -0
  760. data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +25 -0
  761. data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +23 -0
  762. data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +23 -0
  763. data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +24 -0
  764. data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +24 -0
  765. data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +24 -0
  766. data/test/requests/traffic_manager/test_update_traffic_manager_endpoint.rb +27 -0
  767. data/test/requests/traffic_manager/test_update_traffic_manager_profile.rb +27 -0
  768. data/test/smoke_tests/compute/test_resource_group_smoke.rb +37 -0
  769. data/test/test_credentials.rb +63 -0
  770. data/test/test_helper.rb +831 -0
  771. metadata +1050 -0
@@ -0,0 +1,53 @@
1
+ # Fog
2
+ Whether you need compute, dns, storage, or a multitude of other services, fog provides an accessible entry point and facilitates cross service compatibility. Fog delivers the knowledge of cloud experts to you, helping you to bootstrap your cloud usage and guiding you as your own expertise develops.
3
+
4
+ By coding with fog from the start you avoid vendor lock-in and give yourself more flexibility to provide value. Whether you are writing a library, designing a software as a service product or just hacking on the weekend this flexibility is a huge boon.
5
+
6
+ # Structure
7
+ fog is the Ruby cloud computing library, top to bottom:
8
+
9
+ - Collections provide a simplified interface, making clouds easier to work with and switch between.
10
+ - Requests allow power users to get the most out of the features of each individual cloud.
11
+ - Mocks make testing and integrating a breeze.
12
+
13
+ #### Collections
14
+ Some collections are available across multiple providers:
15
+ - dns providers have `zones` and `records`
16
+ - compute providers have `images` and `servers`
17
+
18
+ Collections share basic CRUD type operations, such as:
19
+ - **all** - fetch every object of that type from the provider.
20
+ - **get** - fetch a single object by it’s identity from the provider.
21
+
22
+ #### Models
23
+ Many of the collection methods return individual objects, which also provide common methods:
24
+ - **destroy** - will destroy the persisted object from the provider.
25
+ - **save** - persist the object to the provider.
26
+
27
+ #### Requests
28
+ Requests allow you to dive deeper when the models just can’t cut it. You can see a list of available requests by calling `requests` on the connection object.
29
+
30
+ #### Mocks
31
+ As you might imagine, testing code using fog can be slow and expensive, constantly turning on and shutting down instances. Mocking allows skipping this overhead by providing an in-memory representation resources as you make requests.
32
+
33
+ # Fog Provider Directory Structure
34
+ ```sh
35
+ Plugin Root
36
+ |--- lib
37
+ |--- fog
38
+ |--- azurerm.rb #registers provider
39
+ |--- azurerm
40
+ |--- compute.rb #registers all models, collections and requests
41
+ |--- dns.rb #registers all models, collections and requests
42
+ |--- storage.rb #registers all models, collections and requests
43
+ |--- models #models and collections
44
+ |--- compute #models and collections for compute
45
+ |--- dns
46
+ |--- storage
47
+ |--- requests #requests - includes Real and Mock Classes
48
+ |--- compute #requests for compute
49
+ |--- dns
50
+ |--- storage
51
+ ```
52
+
53
+ For more information about fog structure [Click Here](http://fog.io/about/structure.html)
@@ -0,0 +1,161 @@
1
+ # Traffic Manager
2
+
3
+ This document explains how to get started using Azure Traffic Manager Service with Fog. With this gem you can create, update, list or delete Traffic Manager Profiles and End Points.
4
+
5
+ ## Usage
6
+
7
+ First of all, you need to require the Fog library by executing:
8
+
9
+ ```ruby
10
+ require 'fog/azurerm'
11
+ ```
12
+ ## Create Connection
13
+
14
+ Next, create a connection to the Traffic Manager Service:
15
+
16
+ ```ruby
17
+ fog_traffic_manager_service = Fog::TrafficManager::AzureRM.new(
18
+ tenant_id: '<Tenant Id>', # Tenant Id of Azure Active Directory Application
19
+ client_id: '<Client Id>', # Client Id of Azure Active Directory Application
20
+ client_secret: '<Client Secret>', # Client Secret of Azure Active Directory Application
21
+ subscription_id: '<Subscription Id>', # Subscription Id of an Azure Account
22
+ environment: '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
23
+ )
24
+ ```
25
+
26
+ ## Check Traffic Manager Profile Existence
27
+
28
+ ```ruby
29
+ fog_traffic_manager_service.traffic_manager_profiles.check_traffic_manager_profile_exists('<Resource Group Name>', '<Profile Name>')
30
+ ```
31
+
32
+ ## Create Traffic Manager Profile
33
+
34
+ Create a new Traffic Manager Profile. The parameter 'traffic_routing_method' can be 'Performance', 'Weighted' or 'Priority'.
35
+
36
+ ```ruby
37
+ profile = fog_traffic_manager_service.traffic_manager_profiles.create(
38
+ name: '<Profile Name>',
39
+ resource_group: '<Resource Group Name>',
40
+ traffic_routing_method: '<Routing Method Name>',
41
+ relative_name: '<Profile Relative Name>',
42
+ ttl: '<TTL>',
43
+ protocol: '<Protocol Name>',
44
+ port: '<Port Number>',
45
+ path: '<Path>',
46
+ tags: { key1: 'value1', key2: 'value2', keyN: 'valueN' } # [Optional]
47
+ )
48
+ ```
49
+
50
+ ## List Traffic Manager Profiles
51
+
52
+ List Traffic Manager Profiles in a resource group
53
+
54
+ ```ruby
55
+ profiles = fog_traffic_manager_service.traffic_manager_profiles(resource_group: '<Resource Group Name>')
56
+ profiles.each do |profile|
57
+ puts "#{profile.name}"
58
+ end
59
+ ```
60
+
61
+ ## Retrieve a single Traffic Manager Profile
62
+
63
+ Get a single record of Traffic Manager Profile
64
+
65
+ ```ruby
66
+ profile = fog_traffic_manager_service
67
+ .traffic_manager_profiles
68
+ .get('<Resource Group Name>', '<Profile Name>')
69
+ puts "#{profile.name}"
70
+ ```
71
+
72
+ ## Update a Traffic Manager Profile
73
+
74
+ Get a Traffic Manager Profile object from the get method and then update that Traffic Manager Profile. You can update the Traffic Manager Profile by passing the modifiable attributes in the form of a hash.
75
+
76
+ ```ruby
77
+ profile.update(
78
+ traffic_routing_method: '<Routing Method Name>',
79
+ ttl: '<TTL>',
80
+ protocol: '<Protocol Name>',
81
+ port: '<Port Number>',
82
+ path: '<Path>'
83
+ )
84
+ ```
85
+
86
+ ## Destroy a single Traffic Manager Profile
87
+
88
+ Get a Traffic Manager Profile object from the get method and then destroy that Traffic Manager Profile.
89
+
90
+ ```ruby
91
+ profile.destroy
92
+ ```
93
+
94
+ ## Check Traffic Manager Endpoint Existence
95
+
96
+ ```ruby
97
+ azure_network_service.traffic_manager_end_points.check_traffic_manager_endpoint_exists(
98
+ '<Resource Group Name>',
99
+ '<Profile Name>',
100
+ '<Endpoint Name>',
101
+ '<Type(<Endpoint Type>)>'
102
+ )
103
+ ```
104
+
105
+ ## Create Traffic Manager Endpoint
106
+
107
+ Traffic Manager Profile is pre-requisite of Traffic Manager Endpoint. Create a new Traffic Manager Endpoint. The parameter 'type' can be 'externalEndpoints, 'azureEndpoints' or 'nestedEndpoints'.
108
+
109
+ ```ruby
110
+ endpoint = azure_network_service.traffic_manager_end_points.create(
111
+ name: '<Endpoint Name>',
112
+ traffic_manager_profile_name: '<Profile Name>',
113
+ resource_group: '<Resource Group Name>',
114
+ type: '<Endpoint Type>',
115
+ target: '<Target URL>',
116
+ endpoint_location: '<Location>'
117
+ )
118
+ ```
119
+
120
+ ## List Traffic Manager Endpoints
121
+
122
+ List Traffic Manager Endpoints in a resource group.
123
+
124
+ ```ruby
125
+ endpoints = fog_traffic_manager_service.traffic_manager_end_points(resource_group: '<Resource Group Name>', traffic_manager_profile_name: '<Profile Name>')
126
+ endpoints.each do |endpoint|
127
+ puts "#{endpoint.name}"
128
+ end
129
+ ```
130
+
131
+ ## Retrieve a single Traffic Manager Endpoint
132
+
133
+ Get a single Traffic Manager Endpoint.
134
+
135
+ ```ruby
136
+ endpoint = fog_traffic_manager_service
137
+ .traffic_manager_end_points
138
+ .get('<Resource Group Name>', '<Profile Name>', '<Endpoint name>', '<Endpoint Type>')
139
+ puts "#{endpoint.name}"
140
+ ```
141
+ ## Update a Traffic Manager Endpoint
142
+
143
+ Get a Traffic Manager Endpoint object from the get method and then update that Traffic Manager Endpoint. You can update the Traffic Manager Endpoint by passing the modifiable attributes in the form of a hash.
144
+
145
+ ```ruby
146
+ endpoint.update(type: '<Endpoint Type>',
147
+ target: '<Target URL>',
148
+ endpoint_location: '<Location>'
149
+ )
150
+ ```
151
+
152
+ ## Destroy a single Traffic Manager Endpoint
153
+
154
+ Get a Traffic Manager Endpoint object from the get method and then destroy that Traffic Manager Endpoint.
155
+
156
+ ```ruby
157
+ endpoint.destroy
158
+ ```
159
+
160
+ ## Support and Feedback
161
+ Your feedback is highly appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.
@@ -0,0 +1,51 @@
1
+ module Fog
2
+ module KeyVault
3
+ # This class registers models, requests and collections
4
+ class AzureRM < Fog::Service
5
+ requires :tenant_id
6
+ requires :client_id
7
+ requires :client_secret
8
+ requires :subscription_id
9
+
10
+ request_path 'fog/azurerm/requests/key_vault'
11
+ request :get_vault
12
+ request :list_vaults
13
+ request :create_or_update_vault
14
+ request :delete_vault
15
+ request :check_vault_exists
16
+
17
+ model_path 'fog/azurerm/models/key_vault'
18
+ model :vault
19
+ model :access_policy_entry
20
+ collection :vaults
21
+
22
+ # This class provides the mock implementation for unit tests.
23
+ class Mock
24
+ def initialize(_options = {})
25
+ begin
26
+ require 'azure_mgmt_key_vault'
27
+ rescue LoadError => e
28
+ retry if require('rubygems')
29
+ raise e.message
30
+ end
31
+ end
32
+ end
33
+
34
+ # This class provides the actual implementation for service calls.
35
+ class Real
36
+ def initialize(options)
37
+ begin
38
+ require 'azure_mgmt_key_vault'
39
+ rescue LoadError => e
40
+ retry if require('rubygems')
41
+ raise e.message
42
+ end
43
+
44
+ credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
45
+ @key_vault_client = ::Azure::ARM::KeyVault::KeyVaultManagementClient.new(credentials)
46
+ @key_vault_client.subscription_id = options[:subscription_id]
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,24 @@
1
+ module Fog
2
+ module ApplicationGateway
3
+ class AzureRM
4
+ # Backend Address Pool model class for Application Gateway Service
5
+ class BackendAddressPool < Fog::Model
6
+ identity :name
7
+ attribute :id
8
+ attribute :ip_addresses
9
+
10
+ def self.parse(backend_address_pool)
11
+ hash = {}
12
+ backend_addresses = backend_address_pool.backend_addresses
13
+ hash['id'] = backend_address_pool.id
14
+ hash['name'] = backend_address_pool.name
15
+ hash['ip_addresses'] = []
16
+ backend_addresses.each do |ip_address|
17
+ hash['ip_addresses'] << ip_address
18
+ end unless backend_addresses.nil?
19
+ hash
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module ApplicationGateway
3
+ class AzureRM
4
+ # Backend Http Settings model class for Application Gateway Service
5
+ class BackendHttpSetting < Fog::Model
6
+ identity :name
7
+ attribute :id
8
+ attribute :port
9
+ attribute :protocol
10
+ attribute :cookie_based_affinity
11
+ attribute :request_timeout
12
+ attribute :probe
13
+
14
+ def self.parse(backend_http_setting)
15
+ hash = {}
16
+ hash['id'] = backend_http_setting.id
17
+ hash['name'] = backend_http_setting.name
18
+ hash['port'] = backend_http_setting.port
19
+ hash['protocol'] = backend_http_setting.protocol
20
+ hash['cookie_based_affinity'] = backend_http_setting.cookie_based_affinity
21
+ hash['request_timeout'] = backend_http_setting.request_timeout
22
+ hash['probe'] = backend_http_setting.probe
23
+ hash
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module ApplicationGateway
3
+ class AzureRM
4
+ # Frontend IP Configuration model class for Application Gateway Service
5
+ class FrontendIPConfiguration < Fog::Model
6
+ identity :name
7
+ attribute :id
8
+ attribute :public_ip_address_id
9
+ attribute :private_ip_allocation_method
10
+ attribute :private_ip_address
11
+ attribute :subnet_id
12
+ def self.parse(frontend_ip_configuration)
13
+ hash = {}
14
+ hash['id'] = frontend_ip_configuration.id
15
+ hash['name'] = frontend_ip_configuration.name
16
+ hash['public_ip_address_id'] = frontend_ip_configuration.public_ipaddress.id unless frontend_ip_configuration.public_ipaddress.nil?
17
+ hash['private_ip_allocation_method'] = frontend_ip_configuration.private_ipallocation_method
18
+ private_ip_address = frontend_ip_configuration.private_ipaddress
19
+ hash['private_ip_address'] = private_ip_address
20
+ hash['subnet_id'] = frontend_ip_configuration.subnet.id unless frontend_ip_configuration.subnet.nil?
21
+ hash
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module ApplicationGateway
3
+ class AzureRM
4
+ # Frontenf Port model class for Application Gateway Service
5
+ class FrontendPort < Fog::Model
6
+ identity :name
7
+ attribute :id
8
+ attribute :port
9
+
10
+ def self.parse(frontend_port)
11
+ hash = {}
12
+ hash['id'] = frontend_port.id
13
+ hash['name'] = frontend_port.name
14
+ hash['port'] = frontend_port.port
15
+ hash
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,617 @@
1
+ module Fog
2
+ module ApplicationGateway
3
+ class AzureRM
4
+ # Gateway model class for Application Gateway Service
5
+ class Gateway < Fog::Model
6
+ identity :name
7
+ attribute :id
8
+ attribute :location
9
+ attribute :resource_group
10
+ attribute :provisioning_state
11
+ attribute :sku_name
12
+ attribute :sku_tier
13
+ attribute :sku_capacity
14
+ attribute :operational_state
15
+ attribute :gateway_ip_configurations
16
+ attribute :ssl_certificates
17
+ attribute :frontend_ip_configurations
18
+ attribute :frontend_ports
19
+ attribute :probes
20
+ attribute :backend_address_pools
21
+ attribute :backend_http_settings_list
22
+ attribute :http_listeners
23
+ attribute :url_path_maps
24
+ attribute :request_routing_rules
25
+ attribute :tags
26
+
27
+ def self.parse(gateway)
28
+ hash = {}
29
+ hash['name'] = gateway.name
30
+ hash['id'] = gateway.id
31
+ hash['location'] = gateway.location
32
+ hash['resource_group'] = get_resource_group_from_id(gateway.id)
33
+ hash['provisioning_state'] = gateway.provisioning_state
34
+ unless gateway.sku.nil?
35
+ hash['sku_name'] = gateway.sku.name
36
+ hash['sku_tier'] = gateway.sku.tier
37
+ hash['sku_capacity'] = gateway.sku.capacity
38
+ end
39
+ hash['operational_state'] = gateway.operational_state
40
+
41
+ hash['gateway_ip_configurations'] = []
42
+ gateway.gateway_ipconfigurations.each do |ip_configuration|
43
+ gateway_ip_configuration = Fog::ApplicationGateway::AzureRM::IPConfiguration.new
44
+ hash['gateway_ip_configurations'] << gateway_ip_configuration.merge_attributes(Fog::ApplicationGateway::AzureRM::IPConfiguration.parse(ip_configuration))
45
+ end unless gateway.gateway_ipconfigurations.nil?
46
+
47
+ hash['ssl_certificates'] = []
48
+ gateway.ssl_certificates.each do |certificate|
49
+ ssl_certificate = Fog::ApplicationGateway::AzureRM::SslCertificate.new
50
+ hash['ssl_certificates'] << ssl_certificate.merge_attributes(Fog::ApplicationGateway::AzureRM::SslCertificate.parse(certificate))
51
+ end unless gateway.ssl_certificates.nil?
52
+
53
+ hash['frontend_ip_configurations'] = []
54
+ gateway.frontend_ipconfigurations.each do |frontend_ip_config|
55
+ frontend_ip_configuration = Fog::ApplicationGateway::AzureRM::FrontendIPConfiguration.new
56
+ hash['frontend_ip_configurations'] << frontend_ip_configuration.merge_attributes(Fog::ApplicationGateway::AzureRM::FrontendIPConfiguration.parse(frontend_ip_config))
57
+ end unless gateway.frontend_ipconfigurations.nil?
58
+
59
+ hash['frontend_ports'] = []
60
+ gateway.frontend_ports.each do |port|
61
+ frontend_port = Fog::ApplicationGateway::AzureRM::FrontendPort.new
62
+ hash['frontend_ports'] << frontend_port.merge_attributes(Fog::ApplicationGateway::AzureRM::FrontendPort.parse(port))
63
+ end unless gateway.frontend_ports.nil?
64
+
65
+ hash['probes'] = []
66
+ gateway.probes.each do |probe|
67
+ gateway_probe = Fog::ApplicationGateway::AzureRM::Probe.new
68
+ hash['probes'] << gateway_probe.merge_attributes(Fog::ApplicationGateway::AzureRM::Probe.parse(probe))
69
+ end unless gateway.probes.nil?
70
+
71
+ hash['backend_address_pools'] = []
72
+ gateway.backend_address_pools.each do |address|
73
+ backend_address_pool = Fog::ApplicationGateway::AzureRM::BackendAddressPool.new
74
+ hash['backend_address_pools'] << backend_address_pool.merge_attributes(Fog::ApplicationGateway::AzureRM::BackendAddressPool.parse(address))
75
+ end unless gateway.backend_address_pools.nil?
76
+
77
+ hash['backend_http_settings_list'] = []
78
+ gateway.backend_http_settings_collection.each do |http_setting|
79
+ backend_http_setting = Fog::ApplicationGateway::AzureRM::BackendHttpSetting.new
80
+ hash['backend_http_settings_list'] << backend_http_setting.merge_attributes(Fog::ApplicationGateway::AzureRM::BackendHttpSetting.parse(http_setting))
81
+ end unless gateway.backend_http_settings_collection.nil?
82
+
83
+ hash['http_listeners'] = []
84
+ gateway.http_listeners.each do |listener|
85
+ http_listener = Fog::ApplicationGateway::AzureRM::HttpListener.new
86
+ hash['http_listeners'] << http_listener.merge_attributes(Fog::ApplicationGateway::AzureRM::HttpListener.parse(listener))
87
+ end unless gateway.http_listeners.nil?
88
+
89
+ hash['url_path_maps'] = []
90
+ gateway.url_path_maps.each do |map|
91
+ url_path_map = Fog::ApplicationGateway::AzureRM::UrlPathMap.new
92
+ hash['url_path_maps'] << url_path_map.merge_attributes(Fog::ApplicationGateway::AzureRM::UrlPathMap.parse(map))
93
+ end unless gateway.url_path_maps.nil?
94
+
95
+ hash['request_routing_rules'] = []
96
+ gateway.request_routing_rules.each do |rule|
97
+ request_routing_rule = Fog::ApplicationGateway::AzureRM::RequestRoutingRule.new
98
+ hash['request_routing_rules'] << request_routing_rule.merge_attributes(Fog::ApplicationGateway::AzureRM::RequestRoutingRule.parse(rule))
99
+ end unless gateway.request_routing_rules.nil?
100
+
101
+ hash['tags'] = gateway.tags
102
+ hash
103
+ end
104
+
105
+ def save
106
+ requires :name, :location, :resource_group, :sku_name, :sku_tier, :sku_capacity, :gateway_ip_configurations, :frontend_ip_configurations, :frontend_ports, :backend_address_pools, :backend_http_settings_list, :http_listeners, :request_routing_rules
107
+
108
+ validate_gateway_ip_configurations(gateway_ip_configurations) unless gateway_ip_configurations.nil?
109
+ validate_ssl_certificates(ssl_certificates) unless ssl_certificates.nil?
110
+ validate_frontend_ip_configurations(frontend_ip_configurations) unless frontend_ip_configurations.nil?
111
+ validate_frontend_ports(frontend_ports) unless frontend_ports.nil?
112
+ validate_probes(probes) unless probes.nil?
113
+ validate_backend_address_pools(backend_address_pools) unless backend_address_pools.nil?
114
+ validate_backend_http_settings_list(backend_http_settings_list) unless backend_http_settings_list.nil?
115
+ validate_http_listeners(http_listeners) unless http_listeners.nil?
116
+ validate_url_path_maps(url_path_maps) unless url_path_maps.nil?
117
+ validate_request_routing_rules(request_routing_rules) unless request_routing_rules.nil?
118
+ gateway = service.create_or_update_application_gateway(application_gateway_params)
119
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
120
+ end
121
+
122
+ def application_gateway_params
123
+ {
124
+ name: name,
125
+ location: location,
126
+ resource_group: resource_group,
127
+ sku_name: sku_name,
128
+ sku_tier: sku_tier,
129
+ sku_capacity: sku_capacity,
130
+ gateway_ip_configurations: gateway_ip_configurations,
131
+ ssl_certificates: ssl_certificates,
132
+ frontend_ip_configurations: frontend_ip_configurations,
133
+ frontend_ports: frontend_ports,
134
+ probes: probes,
135
+ backend_address_pools: backend_address_pools,
136
+ backend_http_settings_list: backend_http_settings_list,
137
+ http_listeners: http_listeners,
138
+ url_path_maps: url_path_maps,
139
+ request_routing_rules: request_routing_rules,
140
+ tags: tags
141
+ }
142
+ end
143
+
144
+ def validate_gateway_ip_configurations(gateway_ip_configurations)
145
+ if gateway_ip_configurations.is_a?(Array)
146
+ if gateway_ip_configurations.any?
147
+ gateway_ip_configurations.each do |gateway_ip_configuration|
148
+ if gateway_ip_configuration.is_a?(Hash)
149
+ validate_gateway_ip_configuration_params(gateway_ip_configuration)
150
+ else
151
+ raise(ArgumentError, ':gateway_ip_configurations must be an Array of Hashes')
152
+ end
153
+ end
154
+ else
155
+ raise(ArgumentError, ':gateway_ip_configurations must not be an empty Array')
156
+ end
157
+ else
158
+ raise(ArgumentError, ':gateway_ip_configurations must be an Array')
159
+ end
160
+ end
161
+
162
+ def validate_gateway_ip_configuration_params(gateway_ip_configuration)
163
+ required_params = [
164
+ :name,
165
+ :subnet_id
166
+ ]
167
+ missing = required_params.select { |p| p unless gateway_ip_configuration.key?(p) }
168
+ if missing.length == 1
169
+ raise(ArgumentError, "#{missing.first} is required for this operation")
170
+ elsif missing.any?
171
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
172
+ end
173
+ end
174
+
175
+ def validate_ssl_certificates(ssl_certificates)
176
+ if ssl_certificates.is_a?(Array)
177
+ if ssl_certificates.any?
178
+ ssl_certificates.each do |ssl_certificate|
179
+ if ssl_certificate.is_a?(Hash)
180
+ validate_ssl_certificate_params(ssl_certificate)
181
+ else
182
+ raise(ArgumentError, ':ssl_certificates must be an Array of Hashes')
183
+ end
184
+ end
185
+ else
186
+ raise(ArgumentError, ':ssl_certificates must not be an empty Array')
187
+ end
188
+ else
189
+ raise(ArgumentError, ':ssl_certificates must be an Array')
190
+ end
191
+ end
192
+
193
+ def validate_ssl_certificate_params(ssl_certificate)
194
+ required_params = [
195
+ :name,
196
+ :data,
197
+ :password,
198
+ :public_cert_data
199
+ ]
200
+ missing = required_params.select { |p| p unless ssl_certificate.key?(p) }
201
+ if missing.length == 1
202
+ raise(ArgumentError, "#{missing.first} is required for this operation")
203
+ elsif missing.any?
204
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
205
+ end
206
+ end
207
+
208
+ def validate_frontend_ip_configurations(frontend_ip_configurations)
209
+ if frontend_ip_configurations.is_a?(Array)
210
+ if frontend_ip_configurations.any?
211
+ frontend_ip_configurations.each do |frontend_ip_configuration|
212
+ if frontend_ip_configuration.is_a?(Hash)
213
+ validate_frontend_ip_configuration_params(frontend_ip_configuration)
214
+ else
215
+ raise(ArgumentError, ':frontend_ip_configurations must be an Array of Hashes')
216
+ end
217
+ end
218
+ else
219
+ raise(ArgumentError, ':frontend_ip_configurations must not be an empty Array')
220
+ end
221
+ else
222
+ raise(ArgumentError, ':frontend_ip_configurations must be an Array')
223
+ end
224
+ end
225
+
226
+ def validate_frontend_ip_configuration_params(frontend_ip_configuration)
227
+ required_params = [
228
+ :name
229
+ ]
230
+ missing = required_params.select { |p| p unless frontend_ip_configuration.key?(p) }
231
+ if missing.length == 1
232
+ raise(ArgumentError, "#{missing.first} is required for this operation")
233
+ elsif missing.any?
234
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
235
+ end
236
+ end
237
+
238
+ def validate_frontend_ports(frontend_ports)
239
+ if frontend_ports.is_a?(Array)
240
+ if frontend_ports.any?
241
+ frontend_ports.each do |frontend_port|
242
+ if frontend_port.is_a?(Hash)
243
+ validate_frontend_port_params(frontend_port)
244
+ else
245
+ raise(ArgumentError, ':frontend_ports must be an Array of Hashes')
246
+ end
247
+ end
248
+ else
249
+ raise(ArgumentError, ':frontend_ports must not be an empty Array')
250
+ end
251
+ else
252
+ raise(ArgumentError, ':frontend_ports must be an Array')
253
+ end
254
+ end
255
+
256
+ def validate_frontend_port_params(frontend_port)
257
+ required_params = [
258
+ :name,
259
+ :port
260
+ ]
261
+ missing = required_params.select { |p| p unless frontend_port.key?(p) }
262
+ if missing.length == 1
263
+ raise(ArgumentError, "#{missing.first} is required for this operation")
264
+ elsif missing.any?
265
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
266
+ end
267
+ end
268
+
269
+ def validate_probes(probes)
270
+ if probes.is_a?(Array)
271
+ if probes.any?
272
+ probes.each do |probe|
273
+ if probe.is_a?(Hash)
274
+ validate_probe_params(probe)
275
+ else
276
+ raise(ArgumentError, ':probes must be an Array of Hashes')
277
+ end
278
+ end
279
+ else
280
+ raise(ArgumentError, ':probes must not be an empty Array')
281
+ end
282
+ else
283
+ raise(ArgumentError, ':probes must be an Array')
284
+ end
285
+ end
286
+
287
+ def validate_probe_params(probe)
288
+ required_params = [
289
+ :name,
290
+ :protocol,
291
+ :host,
292
+ :path,
293
+ :interval,
294
+ :timeout,
295
+ :unhealthy_threshold
296
+ ]
297
+ missing = required_params.select { |p| p unless probe.key?(p) }
298
+ if missing.length == 1
299
+ raise(ArgumentError, "#{missing.first} is required for this operation")
300
+ elsif missing.any?
301
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
302
+ end
303
+ end
304
+
305
+ def validate_backend_address_pools(backend_address_pools)
306
+ if backend_address_pools.is_a?(Array)
307
+ if backend_address_pools.any?
308
+ backend_address_pools.each do |backend_address_pool|
309
+ if backend_address_pool.is_a?(Hash)
310
+ validate_backend_address_pool_params(backend_address_pool)
311
+ else
312
+ raise(ArgumentError, ':backend_address_pools must be an Array of Hashes')
313
+ end
314
+ end
315
+ else
316
+ raise(ArgumentError, ':backend_address_pools must not be an empty Array')
317
+ end
318
+ else
319
+ raise(ArgumentError, ':backend_address_pools must be an Array')
320
+ end
321
+ end
322
+
323
+ def validate_backend_address_pool_params(backend_address_pool)
324
+ required_params = [
325
+ :name,
326
+ :ip_addresses
327
+ ]
328
+ missing = required_params.select { |p| p unless backend_address_pool.key?(p) }
329
+ if missing.length == 1
330
+ raise(ArgumentError, "#{missing.first} is required for this operation")
331
+ elsif missing.any?
332
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
333
+ end
334
+ end
335
+
336
+ def validate_backend_http_settings_list(backend_http_settings_list)
337
+ if backend_http_settings_list.is_a?(Array)
338
+ if backend_http_settings_list.any?
339
+ backend_http_settings_list.each do |backend_http_settings|
340
+ if backend_http_settings.is_a?(Hash)
341
+ validate_backend_http_settings_params(backend_http_settings)
342
+ else
343
+ raise(ArgumentError, ':backend_http_settings_list must be an Array of Hashes')
344
+ end
345
+ end
346
+ else
347
+ raise(ArgumentError, ':backend_http_settings_list must not be an empty Array')
348
+ end
349
+ else
350
+ raise(ArgumentError, ':backend_http_settings_list must be an Array')
351
+ end
352
+ end
353
+
354
+ def validate_backend_http_settings_params(backend_http_settings)
355
+ required_params = [
356
+ :name,
357
+ :port,
358
+ :protocol,
359
+ :cookie_based_affinity
360
+ ]
361
+ missing = required_params.select { |p| p unless backend_http_settings.key?(p) }
362
+ if missing.length == 1
363
+ raise(ArgumentError, "#{missing.first} is required for this operation")
364
+ elsif missing.any?
365
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
366
+ end
367
+ end
368
+
369
+ def validate_http_listeners(http_listeners)
370
+ if http_listeners.is_a?(Array)
371
+ if http_listeners.any?
372
+ http_listeners.each do |http_listener|
373
+ if http_listener.is_a?(Hash)
374
+ validate_http_listener_params(http_listener)
375
+ else
376
+ raise(ArgumentError, ':http_listeners must be an Array of Hashes')
377
+ end
378
+ end
379
+ else
380
+ raise(ArgumentError, ':http_listeners must not be an empty Array')
381
+ end
382
+ else
383
+ raise(ArgumentError, ':http_listeners must be an Array')
384
+ end
385
+ end
386
+
387
+ def validate_http_listener_params(http_listener)
388
+ required_params = [
389
+ :name,
390
+ :frontend_ip_config_id,
391
+ :frontend_port_id,
392
+ :protocol
393
+ ]
394
+ missing = required_params.select { |p| p unless http_listener.key?(p) }
395
+ if missing.length == 1
396
+ raise(ArgumentError, "#{missing.first} is required for this operation")
397
+ elsif missing.any?
398
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
399
+ end
400
+ end
401
+
402
+ def validate_url_path_maps(url_path_maps)
403
+ if url_path_maps.is_a?(Array)
404
+ if url_path_maps.any?
405
+ url_path_maps.each do |url_path_map|
406
+ if url_path_map.is_a?(Hash)
407
+ validate_url_path_map_params(url_path_map)
408
+ else
409
+ raise(ArgumentError, ':url_path_maps must be an Array of Hashes')
410
+ end
411
+ end
412
+ else
413
+ raise(ArgumentError, ':url_path_maps must not be an empty Array')
414
+ end
415
+ else
416
+ raise(ArgumentError, ':url_path_maps must be an Array')
417
+ end
418
+ end
419
+
420
+ def validate_url_path_map_params(url_path_map)
421
+ required_params = [
422
+ :name,
423
+ :default_backend_address_pool_id,
424
+ :default_backend_http_settings_id,
425
+ :path_rules
426
+ ]
427
+ missing = required_params.select { |p| p unless url_path_map.key?(p) }
428
+ if missing.length == 1
429
+ raise(ArgumentError, "#{missing.first} is required for this operation")
430
+ elsif missing.any?
431
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
432
+ end
433
+ end
434
+
435
+ def validate_request_routing_rules(request_routing_rules)
436
+ if request_routing_rules.is_a?(Array)
437
+ if request_routing_rules.any?
438
+ request_routing_rules.each do |request_routing_rule|
439
+ if request_routing_rule.is_a?(Hash)
440
+ validate_request_routing_rule_params(request_routing_rule)
441
+ else
442
+ raise(ArgumentError, ':request_routing_rules must be an Array of Hashes')
443
+ end
444
+ end
445
+ else
446
+ raise(ArgumentError, ':request_routing_rules must not be an empty Array')
447
+ end
448
+ else
449
+ raise(ArgumentError, ':request_routing_rules must be an Array')
450
+ end
451
+ end
452
+
453
+ def validate_request_routing_rule_params(request_routing_rule)
454
+ required_params = [
455
+ :type,
456
+ :http_listener_id
457
+ ]
458
+ missing = required_params.select { |p| p unless request_routing_rule.key?(p) }
459
+ if missing.length == 1
460
+ raise(ArgumentError, "#{missing.first} is required for this operation")
461
+ elsif missing.any?
462
+ raise(ArgumentError, "#{missing[0...-1].join(', ')} and #{missing[-1]} are required for this operation")
463
+ end
464
+ end
465
+
466
+ def serialize_sub_resources(gateway_params)
467
+ ip_configurations = []
468
+ gateway_params[:gateway_ip_configurations].each do |ip_configuration|
469
+ hash = {}
470
+ ip_configuration.attributes.each { |key, value| hash[key] = value }
471
+ ip_configurations << hash
472
+ end
473
+ gateway_params[:gateway_ip_configurations] = ip_configurations
474
+ ssl_certificates = []
475
+ gateway_params[:ssl_certificates].each do |ssl_certificate|
476
+ hash = {}
477
+ ssl_certificate.attributes.each { |key, value| hash[key] = value }
478
+ ssl_certificates << hash
479
+ end
480
+ gateway_params[:ssl_certificates] = ssl_certificates
481
+ frontend_ip_configurations = []
482
+ gateway_params[:frontend_ip_configurations].each do |frontend_ip_configuration|
483
+ hash = {}
484
+ frontend_ip_configuration.attributes.each { |key, value| hash[key] = value }
485
+ frontend_ip_configurations << hash
486
+ end
487
+ gateway_params[:frontend_ip_configurations] = frontend_ip_configurations
488
+ frontend_ports = []
489
+ gateway_params[:frontend_ports].each do |frontend_port|
490
+ hash = {}
491
+ frontend_port.attributes.each { |key, value| hash[key] = value }
492
+ frontend_ports << hash
493
+ end
494
+ gateway_params[:frontend_ports] = frontend_ports
495
+ probes = []
496
+ gateway_params[:probes].each do |probe|
497
+ hash = {}
498
+ probe.attributes.each { |key, value| hash[key] = value }
499
+ probes << hash
500
+ end
501
+ gateway_params[:probes] = probes
502
+ backend_address_pools = []
503
+ gateway_params[:backend_address_pools].each do |backend_address_pool|
504
+ hash = {}
505
+ backend_address_pool.attributes.each { |key, value| hash[key] = value }
506
+ backend_address_pools << hash
507
+ end
508
+ gateway_params[:backend_address_pools] = backend_address_pools
509
+ backend_address_ip_addresses = []
510
+ gateway_params[:backend_address_pools].each do |backend_address_pool|
511
+ backend_address_pool[:ip_addresses].each do |ip_address|
512
+ hash = {}
513
+ ip_address.instance_variables.each_with_object({}) { |instance_variable| hash[:ipAddress] = ip_address.instance_variable_get(instance_variable) }
514
+ backend_address_ip_addresses << hash
515
+ end
516
+ backend_address_pool[:ip_addresses] = backend_address_ip_addresses
517
+ end
518
+ backend_http_settings_list = []
519
+ gateway_params[:backend_http_settings_list].each do |backend_http_setting|
520
+ hash = {}
521
+ backend_http_setting.attributes.each { |key, value| hash[key] = value }
522
+ backend_http_settings_list << hash
523
+ end
524
+ gateway_params[:backend_http_settings_list] = backend_http_settings_list
525
+ http_listeners = []
526
+ gateway_params[:http_listeners].each do |http_listener|
527
+ hash = {}
528
+ http_listener.attributes.each { |key, value| hash[key] = value }
529
+ http_listeners << hash
530
+ end
531
+ gateway_params[:http_listeners] = http_listeners
532
+ url_path_maps = []
533
+ gateway_params[:url_path_maps].each do |url_path_map|
534
+ hash = {}
535
+ url_path_map.attributes.each { |key, value| hash[key] = value }
536
+ url_path_maps << hash
537
+ end
538
+ gateway_params[:url_path_maps] = url_path_maps
539
+ request_routing_rules = []
540
+ gateway_params[:request_routing_rules].each do |request_routing_rule|
541
+ hash = {}
542
+ request_routing_rule.attributes.each { |key, value| hash[key] = value }
543
+ request_routing_rules << hash
544
+ end
545
+ gateway_params[:request_routing_rules] = request_routing_rules
546
+ gateway_params
547
+ end
548
+
549
+ def update_sku(sku_name, sku_capacity = nil)
550
+ gateway_hash = serialize_sub_resources(application_gateway_params)
551
+ gateway = service.update_sku_attributes(gateway_hash, sku_name, sku_capacity)
552
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
553
+ end
554
+
555
+ def update_gateway_ip_configuration(subnet_id)
556
+ gateway_hash = serialize_sub_resources(application_gateway_params)
557
+ gateway = service.update_subnet_id_in_gateway_ip_configuration(gateway_hash, subnet_id)
558
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
559
+ end
560
+
561
+ def add_ssl_certificate(ssl_certificate_obj)
562
+ gateway_hash = serialize_sub_resources(application_gateway_params)
563
+ gateway_hash[:ssl_certificates] << ssl_certificate_obj
564
+ gateway = service.create_or_update_application_gateway(gateway_hash)
565
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
566
+ end
567
+
568
+ def remove_ssl_certificate(ssl_certificate_obj)
569
+ gateway_hash = serialize_sub_resources(application_gateway_params)
570
+ gateway_hash[:ssl_certificates].delete(ssl_certificate_obj)
571
+ gateway = service.create_or_update_application_gateway(gateway_hash)
572
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
573
+ end
574
+
575
+ def add_frontend_port(frontend_port_obj)
576
+ gateway_hash = serialize_sub_resources(application_gateway_params)
577
+ gateway_hash[:frontend_ports] << frontend_port_obj
578
+ gateway = service.create_or_update_application_gateway(gateway_hash)
579
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
580
+ end
581
+
582
+ def remove_frontend_port(frontend_port_obj)
583
+ gateway_hash = serialize_sub_resources(application_gateway_params)
584
+ gateway_hash[:frontend_ports].delete(frontend_port_obj)
585
+ gateway = service.create_or_update_application_gateway(gateway_hash)
586
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
587
+ end
588
+
589
+ def add_probe(probe_obj)
590
+ gateway_hash = serialize_sub_resources(application_gateway_params)
591
+ gateway_hash[:probes] << probe_obj
592
+ gateway = service.create_or_update_application_gateway(gateway_hash)
593
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
594
+ end
595
+
596
+ def remove_probe(probe_obj)
597
+ gateway_hash = serialize_sub_resources(application_gateway_params)
598
+ gateway_hash[:probes].delete(probe_obj)
599
+ gateway = service.create_or_update_application_gateway(gateway_hash)
600
+ merge_attributes(Fog::ApplicationGateway::AzureRM::Gateway.parse(gateway))
601
+ end
602
+
603
+ def start
604
+ service.start_application_gateway(resource_group, name)
605
+ end
606
+
607
+ def stop
608
+ service.stop_application_gateway(resource_group, name)
609
+ end
610
+
611
+ def destroy
612
+ service.delete_application_gateway(resource_group, name)
613
+ end
614
+ end
615
+ end
616
+ end
617
+ end