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,149 @@
1
+ # DNS
2
+
3
+ This document explains how to get started using Azure DNS Service with Fog.
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
+
13
+ ## Create Connection
14
+
15
+ Next, create a connection to the DNS Service:
16
+
17
+ ```ruby
18
+ fog_dns_service = Fog::DNS::AzureRM.new(
19
+ tenant_id: '<Tenant Id>', # Tenant Id of Azure Active Directory Application
20
+ client_id: '<Client Id>', # Client Id of Azure Active Directory Application
21
+ client_secret: '<Client Secret>', # Client Secret of Azure Active Directory Application
22
+ subscription_id: '<Subscription Id>', # Subscription Id of an Azure Account
23
+ environment: '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
24
+ )
25
+ ```
26
+
27
+ ## Check Zone Existence
28
+
29
+ ```ruby
30
+ fog_dns_service.zones.check_zone_exists('<Resource Group Name>', '<Zone Name>')
31
+ ```
32
+
33
+ ## Create Zone
34
+
35
+ Create a new Zone
36
+
37
+ ```ruby
38
+ fog_dns_service.zones.create(
39
+ name: '<Zone Name>',
40
+ resource_group: '<Resource Group Name>',
41
+ tags: {
42
+ key: 'value' # [Optional]
43
+ }
44
+ )
45
+ ```
46
+ ## List Zones
47
+
48
+ ```ruby
49
+ fog_dns_service.zones.each do |zone|
50
+ puts "#{zone.name}"
51
+ puts "#{zone.resource_group}"
52
+ end
53
+ ```
54
+
55
+ ## Retrieve a single Zone
56
+
57
+ Get a single record of Zone
58
+
59
+ ```ruby
60
+ zone = fog_dns_service
61
+ .zones
62
+ .get('<Resource Group Name>', '<Zone Name>')
63
+ puts "#{zone.name}"
64
+ ```
65
+
66
+ ## Destroy a single Zone
67
+
68
+ Get Zone object from the get method(described above) and then destroy that Zone.
69
+
70
+ ```ruby
71
+ zone.destroy
72
+ ```
73
+
74
+ ## Check Record Set Existence
75
+
76
+ ```ruby
77
+ fog_dns_service.record_sets.check_record_set_exists('<Resource Group Name>', '<Record Set Name>', '<Zone Name>', '<Record Type(A/CNAME)>')
78
+ ```
79
+
80
+ ## Create Record Set
81
+
82
+ Create a new Record Set
83
+
84
+ ```ruby
85
+ fog_dns_service.record_sets.create(
86
+ name: '<Record Set Name>',
87
+ resource_group: '<Resource Group Name>',
88
+ zone_name: '<Zone Name>',
89
+ records: '<String Array of Records>',
90
+ type: '<Record Type (A/CNAME)>',
91
+ ttl: <TTL>
92
+ )
93
+ ```
94
+
95
+ ## List Record Sets
96
+
97
+ ```ruby
98
+ fog_dns_service.record_sets(
99
+ resource_group: '<Resource Group Name>',
100
+ zone_name: '<Zone Name>'
101
+ ).each do |record_set|
102
+ puts "#{record_set.name}"
103
+ puts "#{record_set.resource_group}"
104
+ end
105
+ ```
106
+
107
+ ## Retrieve a single Record Set
108
+
109
+ Get a single record of Record Set
110
+
111
+ ```ruby
112
+ record_set = fog_dns_service
113
+ .record_sets
114
+ .get('<Resource Group Name>', '<Record Set Name>', '<Zone Name>', '<Record Type>')
115
+ puts "#{record_set.name}"
116
+ ```
117
+
118
+ ## Update TTL
119
+
120
+ Get an object of record set and then update TTL
121
+
122
+ ```ruby
123
+ record_set.update_ttl(ttl: <Time to live (Integer)>)
124
+ ```
125
+
126
+ ## Add/Remove Record set in Existing Record sets
127
+
128
+ Add a record by giving the value of record set in the form of string.
129
+
130
+ ```ruby
131
+ record_set.add_a_type_record('<Record>')
132
+ ```
133
+
134
+ Remove record from existing records by giving its value in the form of string.
135
+
136
+ ```ruby
137
+ record_set.remove_a_type_record('<Record>')
138
+ ```
139
+
140
+ ## Destroy a single Record Set
141
+
142
+ Get Record Set object from the get method(described above) and then destroy that Record Set.
143
+
144
+ ```ruby
145
+ record_set.destroy
146
+ ```
147
+
148
+ ## Support and Feedback
149
+ Your feedback is appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.
@@ -0,0 +1,91 @@
1
+ # Key Vault
2
+
3
+ This document explains how to get started using Azure Key Vault Service with Fog to manage Vault. With this gem you can create, list or delete Vault.
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 Key Vault Service:
15
+
16
+ ```ruby
17
+ fog_key_vault_service = Fog::KeyVault::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
+ )
23
+ ```
24
+
25
+ ## Check Vault Existence
26
+
27
+ ```ruby
28
+ fog_key_vault_service.vaults.check_vault_exists('<Resource Group Name>', '<Vault Name>')
29
+ ```
30
+
31
+ ## Create Vault
32
+
33
+ Create a new Vault.
34
+
35
+ ```ruby
36
+ vault = fog_key_vault_service.vaults.create(
37
+ name: '<Vault Name>',
38
+ location: '<Location>',
39
+ resource_group: '<Resource Group Name>',
40
+ tenant_id: '<Tenant Id>',
41
+ sku_family: '<SKU Family>',
42
+ sku_name: '<SKU Name>',
43
+ access_policies: [
44
+ {
45
+ tenant_id: '<Tenant Id>',
46
+ object_id: '<Tenant Id>',
47
+ permissions: {
48
+ keys: ['<Key Permissions>'],
49
+ secrets: ['<Secret Permissions>']
50
+ }
51
+ }
52
+ ],
53
+ tags: {
54
+ key: 'value' # [Optional]
55
+ }
56
+
57
+ )
58
+ ```
59
+
60
+ ## List Vaults
61
+
62
+ List all vaults in a resource group
63
+
64
+ ```ruby
65
+ vaults = fog_key_vault_service.vaults(resource_group: '<Resource Group Name>')
66
+ vaults.each do |vault|
67
+ puts "#{vault.name}"
68
+ end
69
+ ```
70
+
71
+ ## Retrieve a single Vault
72
+
73
+ Get a single record of Vault
74
+
75
+ ```ruby
76
+ vault = fog_key_vault_service
77
+ .vaults
78
+ .get('<Resource Group Name>', '<Vault Name>')
79
+ puts "#{vault.name}"
80
+ ```
81
+
82
+ ## Destroy a single Vault
83
+
84
+ Get a vault object from the get method and then destroy that vault.
85
+
86
+ ```ruby
87
+ vault.destroy
88
+ ```
89
+
90
+ ## Support and Feedback
91
+ Your feedback is highly appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.
@@ -0,0 +1,1132 @@
1
+ # Network
2
+
3
+ This document explains how to get started using Azure Network Service with Fog. With this gem you can create, update, list or delete virtual networks, subnets, public IPs and network interfaces.
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 Network Service:
15
+
16
+ ```ruby
17
+ fog_network_service = Fog::Network::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 Virtual Network Existence
27
+
28
+ ```ruby
29
+ fog_network_service.virtual_networks.check_virtual_network_exists('<Resource Group Name>', '<Virtual Network Name>')
30
+ ```
31
+
32
+ ## Create Virtual Network
33
+
34
+ Create a new virtual network
35
+
36
+ **Optional parameters for Virtual Network**: subnets, dns_servers & address_prefixes
37
+
38
+ **Optional parameters for Subnet**: network_security_group_id, route_table_id & address_prefix
39
+
40
+ ```ruby
41
+ vnet = fog_network_service.virtual_networks.create(
42
+ name: '<Virtual Network Name>',
43
+ location: '<Location>',
44
+ resource_group: '<Resource Group Name>',
45
+ subnets: [{
46
+ name: '<Subnet Name>',
47
+ address_prefix: '<Subnet IP Range>',
48
+ network_security_group_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkSecurityGroups/<Network Security Group Name>',
49
+ route_table_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/routeTables/<Route Table Name>'
50
+ }],
51
+ dns_servers: ['<IP Address>','<IP Address>'],
52
+ address_prefixes: ['<IP Address Range>','<IP Address Range>'],
53
+ tags: { key: 'value' } # [Optional]
54
+ )
55
+ ```
56
+
57
+ ## List Virtual Networks in Resource Group
58
+
59
+ List all virtual networks in a resource group
60
+
61
+ ```ruby
62
+ vnets = fog_network_service.virtual_networks(resource_group: '<Resource Group Name>')
63
+ vnets.each do |vnet|
64
+ puts "#{vnet.name}"
65
+ puts "#{vnet.location}"
66
+ end
67
+ ```
68
+
69
+ ## List Virtual Networks in Subscription
70
+
71
+ List all virtual networks in a subscription
72
+
73
+ ```ruby
74
+ vnets = fog_network_service.virtual_networks
75
+ vnets.each do |vnet|
76
+ puts "#{vnet.name}"
77
+ puts "#{vnet.location}"
78
+ end
79
+ ```
80
+
81
+ ## Retrieve a single Virtual Network
82
+
83
+ Get a single record of virtual network
84
+
85
+ ```ruby
86
+ vnet = fog_network_service.virtual_networks.get('<Resource Group Name>', '<Virtual Network Name>')
87
+ puts "#{vnet.name}"
88
+ ```
89
+
90
+ ## Add/Remove DNS Servers to/from Virtual Network
91
+
92
+ Add/Remove DNS Servers to/from Virtual Network
93
+
94
+ ```ruby
95
+ vnet.add_dns_servers(['<IP Address>','<IP Address>'])
96
+ vnet.remove_dns_servers(['10.3.0.0','10.4.0.0'])
97
+ ```
98
+
99
+ ## Add/Remove Address Prefixes to/from Virtual Network
100
+
101
+ Add/Remove Address Prefixes to/from Virtual Network
102
+
103
+ ```ruby
104
+ vnet.add_address_prefixes(['<IP Address Range>', '<IP Address Range>'])
105
+ vnet.remove_address_prefixes(['<IP Address Range>'])
106
+ ```
107
+
108
+ ## Add/Remove Subnets to/from Virtual Network
109
+
110
+ Add/Remove Subnets to/from Virtual Network
111
+
112
+ ```ruby
113
+ vnet.add_subnets([{
114
+ name: '<Subnet Name>',
115
+ address_prefix: '<Subnet Range>'
116
+ }])
117
+
118
+ vnet.remove_subnets(['<Subnet Name>'])
119
+ ```
120
+
121
+ ## Update Virtual Network
122
+
123
+ Update Virtual Network
124
+
125
+ ```ruby
126
+ vnet.update({
127
+ subnets:[{
128
+ name: '<Subnet Name>',
129
+ address_prefix: '<Subnet Range>'
130
+ }],
131
+ dns_servers: ['<IP Address>','<IP Address>']
132
+ })
133
+ ```
134
+
135
+ ## Destroy a single virtual network
136
+
137
+ Get virtual network object from the get method and then destroy that virtual network.
138
+
139
+ ```ruby
140
+ vnet.destroy
141
+ ```
142
+
143
+ ## Check Subnet Existence
144
+
145
+ ```ruby
146
+ fog_network_service.subnets.check_subnet_exists('<Resource Group Name>', '<Virtual Network Name>', '<Subnet Name>')
147
+ ```
148
+
149
+ ## Create Subnet
150
+
151
+ Create a new Subnet
152
+
153
+ Optional parameters: network_security_group_id, route_table_id & address_prefix
154
+
155
+ ```ruby
156
+ subnet = fog_network_service.subnets.create(
157
+ name: '<Subnet Name>',
158
+ resource_group: '<Resource Group Name>',
159
+ virtual_network_name: '<Virtual Network Name>',
160
+ address_prefix: '<Subnet Range>',
161
+ network_security_group_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkSecurityGroups/<Network Security Group Name>',
162
+ route_table_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/routeTables/<Route Table Name>'
163
+ )
164
+ ```
165
+
166
+ ## List Subnets
167
+
168
+ List subnets in a resource group and a virtual network
169
+
170
+ ```ruby
171
+ subnets = fog_network_service.subnets(resource_group: '<Resource Group Name>', virtual_network_name: '<Virtual Network Name>')
172
+ subnets.each do |subnet|
173
+ puts "#{subnet.name}"
174
+ end
175
+ ```
176
+
177
+ ## Retrieve a single Subnet
178
+
179
+ Get a single record of Subnet
180
+
181
+ ```ruby
182
+ subnet = fog_network_service
183
+ .subnets
184
+ .get('<Resource Group Name>', '<Virtual Network Name>', '<Subnet Name>')
185
+ puts "#{subnet.name}"
186
+ ```
187
+
188
+ ## Attach Network Security Group to Subnet
189
+
190
+ Attach Network Security Group to Subnet
191
+
192
+ ```ruby
193
+ subnet = fog_network_service.attach_network_security_group('/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/networkSecurityGroups/<Network Security Group Name>')
194
+ puts "#{subnet.network_security_group_id}"
195
+ ```
196
+
197
+ ## Detach Network Security Group from Subnet
198
+
199
+ Detach Network Security Group from Subnet
200
+
201
+ ```ruby
202
+ subnet = fog_network_service.detach_network_security_group
203
+ puts "#{subnet.network_security_group_id}"
204
+ ```
205
+
206
+ ## Attach Route Table to Subnet
207
+
208
+ Attach Route Table to Subnet
209
+
210
+ ```ruby
211
+ subnet = fog_network_service.attach_route_table('/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/routeTables/<Route Table Name>')
212
+ puts "#{subnet.route_table_id}"
213
+ ```
214
+
215
+ ## Detach Route Table from Subnet
216
+
217
+ Detach Route Table from Subnet
218
+
219
+ ```ruby
220
+ subnet = fog_network_service.detach_route_table
221
+ puts "#{subnet.route_table_id}"
222
+ ```
223
+
224
+ ## List Number of Available IP Addresses in Subnet
225
+
226
+ The parameter is a boolean which checks if the Virtual Network the Subnet belongs to is attached to an Express Route Circuit or not
227
+
228
+ ```ruby
229
+ puts "#{subnet.get_available_ipaddresses_count(<True/False>)}"
230
+ ```
231
+
232
+ ## Destroy a single Subnet
233
+
234
+ Get a subnet object from the get method and then destroy that subnet.
235
+
236
+ ```ruby
237
+ subnet.destroy
238
+ ```
239
+
240
+ ## Check Network Interface Card Existence
241
+
242
+ ```ruby
243
+ fog_network_service.network_interfaces.check_network_interface_exists('<Resource Group Name>', '<Network Interface Name>')
244
+ ```
245
+
246
+ ## Create Network Interface Card
247
+
248
+ Create a new network interface. Skip public_ip_address_id parameter to create network interface without PublicIP. The parameter, private_ip_allocation_method can be Dynamic or Static.
249
+
250
+ ```ruby
251
+ nic = fog_network_service.network_interfaces.create(
252
+ name: '<Network Interface Name>',
253
+ resource_group: '<Resource Group Name>',
254
+ location: '<Location>',
255
+ subnet_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Virtual Network Name>/subnets/<Subnet Name>',
256
+ public_ip_address_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>',
257
+ ip_configuration_name: '<IP Configuration Name>',
258
+ private_ip_allocation_method: '<IP Allocation Method Name>',
259
+ tags: { key: 'value' } # [Optional]
260
+ )
261
+ ```
262
+
263
+ ## List Network Interface Cards
264
+
265
+ List network interfaces in a resource group
266
+
267
+ ```ruby
268
+ nics = fog_network_service.network_interfaces(resource_group: '<Resource Group Name>')
269
+ nics.each do |nic|
270
+ puts "#{nic.name}"
271
+ end
272
+ ```
273
+
274
+ ## Retrieve a single Network Interface Card
275
+
276
+ Get a single record of Network Interface
277
+
278
+ ```ruby
279
+ nic = fog_network_service
280
+ .network_interfaces
281
+ .get('<Resource Group Name>', '<Network Interface Name>')
282
+ puts "#{nic.name}"
283
+ ```
284
+
285
+ ## Update Network Interface Card
286
+
287
+ You can update network interface by passing only updated attributes, in the form of hash.
288
+ For example,
289
+ ```ruby
290
+ nic.update(private_ip_allocation_method: '<IP Allocation Method Name>', private_ip_address: '<Private IP Address>')
291
+ ```
292
+ ## Attach/Detach resources to Network Interface Card
293
+
294
+ Attach Subnet, Public-IP or Network-Security-Group as following
295
+ ```ruby
296
+ subnet_id = '<Subnet Id>'
297
+ nic.attach_subnet(subnet_id)
298
+
299
+ public_ip_id = '<Public IP Id>'
300
+ nic.attach_public_ip(public_ip_id)
301
+
302
+ nsg_id = '<NSG Id>'
303
+ nic.attach_network_security_group(nsg_id)
304
+ ```
305
+ Detach Public-IP or Network-Security-Group as following
306
+
307
+ ```ruby
308
+ nic.detach_public_ip
309
+
310
+ nic.detach_network_security_group
311
+ ```
312
+ `Note: You can't detach subnet from Network Interface.`
313
+
314
+ ## Destroy a single Network Interface Card
315
+
316
+ Get a network interface object from the get method and then destroy that network interface.
317
+
318
+ ```ruby
319
+ nic.destroy
320
+ ```
321
+
322
+ ## Check Public IP Existence
323
+
324
+ ```ruby
325
+ fog_network_service.public_ips.check_public_ip_exists('<Resource Group Name>', '<Public IP Name>')
326
+ ```
327
+
328
+ ## Create Public IP
329
+
330
+ Create a new public IP. The parameter, type can be Dynamic or Static.
331
+
332
+ ```ruby
333
+ public_ip = fog_network_service.public_ips.create(
334
+ name: '<Public IP name>',
335
+ resource_group: '<Resource Group Name>',
336
+ location: '<Location>',
337
+ public_ip_allocation_method: '<IP Allocation Method Name>',
338
+ tags: { key: 'value' } # [Optional]
339
+ )
340
+ ```
341
+
342
+ ## Check for Public IP
343
+
344
+ Checks if the Public IP already exists or not.
345
+
346
+ ```ruby
347
+ fog_network_service.public_ips.check_if_exists('<Public IP Name>', '<Resource Group Name>')
348
+ ```
349
+
350
+ ## List Public IPs
351
+
352
+ List network interfaces in a resource group
353
+
354
+ ```ruby
355
+ public_ips = fog_network_service.public_ips(resource_group: '<Resource Group Name>')
356
+ public_ips.each do |pubip|
357
+ puts "#{public_ip.name}"
358
+ end
359
+ ```
360
+
361
+ ## Retrieve a single Public IP
362
+
363
+ Get a single record of Public IP
364
+
365
+ ```ruby
366
+ public_ip = fog_network_service
367
+ .public_ips
368
+ .get('<Resource Group Name>', '<Public IP Name>')
369
+ puts "#{public_ip.name}"
370
+ ```
371
+
372
+ ## Update Public IP
373
+
374
+ Get a Public IP object from the get method and then update that public IP. You can update the Public IP by passing the modifiable attributes in the form of a hash.
375
+
376
+ ```ruby
377
+ public_ip.update(
378
+ public_ip_allocation_method: '<IP Allocation Method Name>',
379
+ idle_timeout_in_minutes: '<Idle Timeout in Minutes>',
380
+ domain_name_label: '<Domain Name Label>'
381
+ )
382
+ ```
383
+
384
+ ## Destroy a single Public IP
385
+
386
+ Get a Public IP object from the get method and then destroy that public IP.
387
+
388
+ ```ruby
389
+ public_ip.destroy
390
+ ```
391
+
392
+ ## Check Network Security Group Existence
393
+
394
+ ```ruby
395
+ fog_network_service.network_security_groups.check_net_sec_group_exists('<Resource Group Name>', '<Network Security Group Name>')
396
+ ```
397
+
398
+ ## Create Network Security Group
399
+
400
+ Network security group requires a resource group to create.
401
+
402
+ ```ruby
403
+ fog_network_service.network_security_groups.create(
404
+ name: '<Network Security Group Name>',
405
+ resource_group: '<Resource Group Name>',
406
+ location: '<Location>',
407
+ security_rules: [{
408
+ name: '<Security Rule Name>',
409
+ protocol: '<Protocol Name>',
410
+ source_port_range: '<Source Port Range>',
411
+ destination_port_range: '<Destination Port Range>',
412
+ source_address_prefix: '<Source IP Address Range>',
413
+ destination_address_prefix: 'Destination IP Address Range',
414
+ access: '<Security Rule Access Type>',
415
+ priority: '<Priority Number>',
416
+ direction: '<Security Rule Direction>'
417
+ }],
418
+ tags: { key: 'value' } # [Optional]
419
+ )
420
+ ```
421
+
422
+ ## List Network Security Groups
423
+
424
+ List all the network security groups in a resource group
425
+
426
+ ```ruby
427
+ network_security_groups = fog_network_service.network_security_groups(resource_group: '<Resource Group Name>')
428
+ network_security_groups.each do |nsg|
429
+ puts "#{nsg.name}"
430
+ end
431
+ ```
432
+
433
+ ## Retrieve a single Network Security Group
434
+
435
+ Get a single record of Network Security Group
436
+
437
+ ```ruby
438
+ nsg = fog_network_service
439
+ .network_security_groups
440
+ .get('<Resource Group Name>','<Network Security Group Name>')
441
+ puts "#{nsg.name}"
442
+ ```
443
+
444
+ ## Update Security Rules
445
+
446
+ You can update security rules by passing the modified attributes in the form of hash.
447
+
448
+ ```ruby
449
+ nsg.update_security_rules(
450
+ security_rules:
451
+ [
452
+ {
453
+ name: '<Security Rule Name>',
454
+ protocol: '<Security Rule Protocol>',
455
+ source_port_range: '<Port Range>',
456
+ destination_port_range: '<Port Range>',
457
+ source_address_prefix: '<Source IP Address Range>',
458
+ destination_address_prefix: '<Destination IP Address Range>',
459
+ access: '<Security Rule Access Type>',
460
+ priority: '<Priority Number>',
461
+ direction: '<Security Rule Direction>'
462
+ }
463
+ ]
464
+ )
465
+ ```
466
+ `Note: You can't modify Name of a security rule.`
467
+
468
+ ## Add and Remove Security Rules in a Network Security Group
469
+
470
+ Add array of security rules in the form of hash.
471
+
472
+ ```ruby
473
+ nsg.add_security_rules(
474
+ [
475
+ {
476
+ name: '<Security Rule Name>',
477
+ protocol: '<Security Rule Protocol>',
478
+ source_port_range: '<Port Range>',
479
+ destination_port_range: '<Port Range>',
480
+ source_address_prefix: '<Source IP Address Range>',
481
+ destination_address_prefix: '<Destination IP Address Range>',
482
+ access: '<Security Rule Access Type>',
483
+ priority: '<Priority Number>',
484
+ direction: '<Security Rule Direction>'
485
+ }
486
+ ]
487
+ )
488
+ ```
489
+
490
+ Delete security rule by providing its name.
491
+
492
+ ```ruby
493
+ nsg.remove_security_rule('<Security Rule Name>')
494
+ ```
495
+
496
+ ## Destroy a Network Security Group
497
+
498
+ Get a network security group object from the get method and then destroy that network security group.
499
+
500
+ ```ruby
501
+ nsg.destroy
502
+ ```
503
+
504
+ ## Check Network Security Rule Existence
505
+
506
+ ```ruby
507
+ fog_network_service.network_security_rules.check_net_sec_rule_exists('<Resource Group Name>', '<Network Security Group Name>', '<Security Rule Name>')
508
+ ```
509
+
510
+ ## Create Network Security Rule
511
+
512
+ Network security rule requires a resource group and network security group to create.
513
+
514
+ ```ruby
515
+ fog_network_service.network_security_rules.create(
516
+ name: '<Security Rule Name>',
517
+ resource_group: '<Resource Group Name>',
518
+ protocol: '<Security Rule Protocol>',
519
+ network_security_group_name: '<Network Security Group Name>',
520
+ source_port_range: '<Source Port Range>',
521
+ destination_port_range: '<Destination Port Range>',
522
+ source_address_prefix: 'Source IP Address Range',
523
+ destination_address_prefix: 'Destination IP Address Range',
524
+ access: '<Security Rule Access Type>',
525
+ priority: '<Priority Number>',
526
+ direction: '<Security Rule Direction>'
527
+ )
528
+ ```
529
+
530
+ ## List Network Security Rules
531
+
532
+ List all the network security rules in a resource group and network security group
533
+
534
+ ```ruby
535
+ network_security_rules = fog_network_service.network_security_rules(resource_group: '<Resource Group Name>', network_security_group_name: '<Network Security Group Name>')
536
+ network_security_rules.each do |network_security_rule|
537
+ puts network_security_rule.name
538
+ end
539
+ ```
540
+
541
+ ## Retrieve a single Network Security Rule
542
+
543
+ Get a single record of Network Security Rule
544
+
545
+ ```ruby
546
+ network_security_rule = fog_network_service
547
+ .network_security_rules
548
+ .get('<Resource Group Name>','<Network Security Group Name>', '<Security Rule Name>')
549
+ puts "#{network_security_rule.name}"
550
+ ```
551
+
552
+ ## Destroy a Network Security Rule
553
+
554
+ Get a network security rule object from the get method and then destroy that network security rule.
555
+
556
+ ```ruby
557
+ network_security_rule.destroy
558
+ ```
559
+
560
+ ## Check External Load Balancer Existence
561
+
562
+ ```ruby
563
+ fog_network_service.load_balancers.check_load_balancer_exists('<Resource Group Name>', '<Load Balancer Name>')
564
+ ```
565
+
566
+ ## Create External Load Balancer
567
+
568
+ Create a new load balancer.
569
+
570
+ ```ruby
571
+ lb = fog_network_service.load_balancers.create(
572
+ name: '<Load Balancer Name>',
573
+ resource_group: '<Resource Group Name>',
574
+ location: '<Location>',
575
+ frontend_ip_configurations:
576
+ [
577
+ {
578
+ name: '<Frontend IP Config Name>',
579
+ private_ipallocation_method: '<Private IP Allocation Method>',
580
+ public_ipaddress_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>'
581
+ }
582
+ ],
583
+ backend_address_pool_names:
584
+ [
585
+ '<Backend Address Pool Name>'
586
+ ],
587
+ load_balancing_rules:
588
+ [
589
+ {
590
+ name: '<Rule Name>',
591
+ frontend_ip_configuration_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/frontendIPConfigurations/<Frontend IP Config Name>',
592
+ backend_address_pool_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/backendAddressPools/<Backend Address Pool Name>',
593
+ protocol: '<Protocol Name>',
594
+ frontend_port: '<Frontend Port Number>',
595
+ backend_port: '<Backend Port Number>',
596
+ enable_floating_ip: <True/False>,
597
+ idle_timeout_in_minutes: <Timeout in Minutes>,
598
+ load_distribution: '<Load Distribution Value>'
599
+ }
600
+ ],
601
+ inbound_nat_rules:
602
+ [
603
+ {
604
+ name: 'NAT Rule Name',
605
+ frontend_ip_configuration_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer name>/frontendIPConfigurations/<Frontend IP Config Name>',
606
+ protocol: '<Protocol Name>',
607
+ frontend_port: '<Frontend Port Number>',
608
+ backend_port: '<Backend Port Number>'
609
+ }
610
+ ],
611
+ tags: { key: 'value' } # [Optional]
612
+ )
613
+ ```
614
+
615
+ ## Create Internal Load Balancer
616
+
617
+ ```ruby
618
+ lb = fog_network_service.load_balancers.create(
619
+ name: '<Load Balancer Name>',
620
+ resource_group: '<Resource Group Name>',
621
+ location: '<Location>',
622
+ frontend_ip_configurations:
623
+ [
624
+ {
625
+ name: '<Frontend IP Config Name>',
626
+ private_ipallocation_method: '<Private IP Allocation Method>',
627
+ private_ipaddress: 'IP Address',
628
+ subnet_id: '<Subnet Id>'
629
+ }
630
+ ],
631
+ backend_address_pool_names:
632
+ [
633
+ '<Backend Address Pool Name>'
634
+ ],
635
+ load_balancing_rules:
636
+ [
637
+ {
638
+ name: 'Rule Name',
639
+ frontend_ip_configuration_id: "/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/frontendIPConfigurations/<Frontend IP Config Name>",
640
+ backend_address_pool_id: "/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/backendAddressPools/<Backend Address Pool Name>",
641
+ probe_id: "/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers<Load Balancer Name>lb/probes/<Probe Name>",
642
+ protocol: '<Protocol Name>',
643
+ frontend_port: '<Frontend Port Number>',
644
+ backend_port: '<Backend Port Number>'
645
+ }
646
+ ],
647
+ inbound_nat_rules:
648
+ [
649
+ {
650
+ name: '<Rule Name>',
651
+ frontend_ip_configuration_id: "/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/frontendIPConfigurations/<Frontend IP Config Name>",
652
+ protocol: '<Protocol Name>',
653
+ frontend_port: '<Frontend Port Number>',
654
+ backend_port: '<Backend Port Number>'
655
+ },
656
+
657
+ {
658
+ name: '<Rule Name>',
659
+ frontend_ip_configuration_id: "/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/loadBalancers/<Load Balancer Name>/frontendIPConfigurations/<Frontend IP Config Name>",
660
+ protocol: '<Protocol Name>',
661
+ frontend_port: '<Frontend Port Number>',
662
+ backend_port: '<Backend Port Number>'
663
+ }
664
+ ],
665
+ probes:
666
+ [
667
+ {
668
+ name: '<Probe Name>',
669
+ protocol: '<Protocol Name>',
670
+ request_path: '<Probe Request Path>',
671
+ port: '<Port Number>',
672
+ interval_in_seconds: <Interval in Seconds>,
673
+ number_of_probes: <Number of Probes>
674
+ }
675
+ ],
676
+ tags: { key: 'value' } # [Optional]
677
+ )
678
+ ```
679
+
680
+ ## List Load Balancers
681
+
682
+ List all load balancers in a resource group
683
+
684
+ ```ruby
685
+ lbs = fog_network_service.load_balancers(resource_group: '<Resource Group Name>')
686
+ lbs.each do |lb|
687
+ puts "#{lb.name}"
688
+ end
689
+ ```
690
+
691
+ ## List Load Balancers in subscription
692
+
693
+ List all load balancers in a subscription
694
+
695
+ ```ruby
696
+ lbs = fog_network_service.load_balancers
697
+ lbs.each do |lb|
698
+ puts "#{lb.name}"
699
+ end
700
+ ```
701
+
702
+ ## Retrieve a single Load Balancer
703
+
704
+ Get a single record of Load Balancer
705
+
706
+ ```ruby
707
+ lb = fog_network_service
708
+ .load_balancers
709
+ .get('<Resource Group Name>', '<Load Balancer Name>')
710
+ puts "#{lb.name}"
711
+ ```
712
+
713
+ ## Destroy a Load Balancer
714
+
715
+ Get a load balancer object from the get method and then destroy that load balancer.
716
+
717
+ ```ruby
718
+ lb.destroy
719
+ ```
720
+
721
+ ## Check Virtual Network Gateway Existence
722
+
723
+ ```ruby
724
+ fog_network_service.virtual_network_gateways.check_vnet_gateway_exists('<Resource Group Name>', '<Virtual Network Gateway Name>')
725
+ ```
726
+
727
+ ## Create Virtual Network Gateway
728
+
729
+ Create a new Virtual Network Gateway.
730
+
731
+ ```ruby
732
+ network_gateway = network.virtual_network_gateways.create(
733
+ name: '<Virtual Network Gateway Name>',
734
+ location: '<Location>',
735
+ ip_configurations: [
736
+ {
737
+ name: '<IP Config Name>',
738
+ private_ipallocation_method:'<Private IP Allocation Method>',
739
+ public_ipaddress_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>',
740
+ subnet_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Virtual Network Name>/subnets/<Subnet Name>',
741
+ private_ipaddress: <IP Address Value> # could be 'nil'
742
+ }
743
+ ],
744
+ resource_group: '<Resource Group Name>',
745
+ sku_name: '<SKU Name>',
746
+ sku_tier: '<SKU Tier>',
747
+ sku_capacity: <SKU Capacity>,
748
+ gateway_type: '<Gateway Type>',
749
+ enable_bgp: <True/False>,
750
+ gateway_size: <Gateway Size>,
751
+ asn: <ASN Value>,
752
+ bgp_peering_address: <Peering Address>,
753
+ peer_weight: <Peer Weight>,
754
+ vpn_type: '<VPN Type>',
755
+ vpn_client_address_pool: [],
756
+ gateway_default_site: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/localNetworkGateways/<Local Network Gateway Name>',
757
+ default_sites: [],
758
+ vpn_client_configuration: {
759
+ address_pool: ['<IP Address>', '<IP Address>'],
760
+ root_certificates: [
761
+ {
762
+ name: '<Certificate Name>',
763
+ public_cert_data: '<Certificate Data>'
764
+ }
765
+ ],
766
+ revoked_certificates: [
767
+ {
768
+ name: '<Certificate Name>',
769
+ thumbprint: '<Thumb Print Detail>'
770
+ }
771
+ ]
772
+ },
773
+ tags: { # [Optional]
774
+ key1: 'value1',
775
+ key2: 'value2'
776
+ }
777
+ )
778
+ ```
779
+
780
+ ## List Virtual Network Gateways
781
+
782
+ List all virtual network gateways in a resource group
783
+
784
+ ```ruby
785
+ network_gateways = network.virtual_network_gateways(resource_group: '<Resource Group Name>')
786
+ network_gateways.each do |gateway|
787
+ puts "#{gateway.name}"
788
+ end
789
+ ```
790
+
791
+ ## Retrieve single Virtual Network Gateway
792
+
793
+ Get single record of Virtual Network Gateway
794
+
795
+ ```ruby
796
+ network_gateway = network.virtual_network_gateways.get('<Resource Group Name>', '<Virtual Network Gateway Name>')
797
+ puts "#{network_gateway.name}"
798
+ ```
799
+
800
+ ## Destroy single Virtual Network Gateway
801
+
802
+ Get a virtual network gateway object from the get method and then destroy that virtual network gateway.
803
+
804
+ ```ruby
805
+ network_gateway.destroy
806
+ ```
807
+
808
+ ## Check Local Network Gateway Existence
809
+
810
+ ```ruby
811
+ fog_network_service.local_network_gateways.check_local_net_gateway_exists('<Resource Group Name>', '<Local Network Gateway Name>')
812
+ ```
813
+
814
+ ## Create Local Network Gateway
815
+
816
+ Create a new Local Network Gateway.
817
+
818
+ ```ruby
819
+ local_network_gateway = network.local_network_gateways.create(
820
+ name: "<Local Network Gateway Name>",
821
+ location: '<Location>',
822
+ resource_group: "<Resource Group Name>",
823
+ gateway_ip_address: '<IP Address>',
824
+ local_network_address_space_prefixes: [],
825
+ asn: <ASN Value>,
826
+ bgp_peering_address: '<Peering IP Address>',
827
+ peer_weight: <Peer Weight>,
828
+ tags: { # [Optional]
829
+ key1: 'value1',
830
+ key2: 'value2'
831
+ },
832
+ )
833
+ ```
834
+
835
+ ## List Local Network Gateways
836
+
837
+ List all local network gateways in a resource group
838
+
839
+ ```ruby
840
+ local_network_gateways = network.local_network_gateways(resource_group: '<Resource Group Name>')
841
+ local_network_gateways.each do |gateway|
842
+ puts "#{gateway.name}"
843
+ end
844
+ ```
845
+
846
+ ## Retrieve single Local Network Gateway
847
+
848
+ Get single record of Local Network Gateway
849
+
850
+ ```ruby
851
+ local_network_gateway = network.local_network_gateways.get('<Resource Group Name>', '<Local Network Gateway Name>')
852
+ puts "#{local_network_gateway.name}"
853
+ ```
854
+
855
+ ## Destroy single Local Network Gateway
856
+
857
+ Get a local network gateway object from the get method and then destroy that local network gateway.
858
+
859
+ ```ruby
860
+ local_network_gateway.destroy
861
+ ```
862
+
863
+ # Express Route
864
+
865
+ Microsoft Azure ExpressRoute lets you extend your on-premises networks into the Microsoft cloud over a dedicated private connection facilitated by a connectivity provider.
866
+ For more details about express route [click here](https://azure.microsoft.com/en-us/documentation/articles/expressroute-introduction/).
867
+
868
+ # Express Route Circuit
869
+
870
+ The Circuit represents the entity created by customer to register with an express route service provider with intent to connect to Microsoft.
871
+
872
+ ## Check Express Route Circuit Existence
873
+
874
+ ```ruby
875
+ fog_network_service.express_route_circuits.check_express_route_circuit_exists('<Resource Group Name>', '<Circuit Name>')
876
+ ```
877
+
878
+ ## Create an Express Route Circuit
879
+
880
+ Create a new Express Route Circuit.
881
+
882
+ ```ruby
883
+ circuit = network.express_route_circuits.create(
884
+ name: '<Circuit Name>',
885
+ location: '<Location>',
886
+ resource_group: '<Resource Group Name>',
887
+ sku_name: '<SKU Name>',
888
+ sku_tier: '<SKU Tier>',
889
+ sku_family: '<SKU Family>',
890
+ service_provider_name: '<Security Provider Name>',
891
+ peering_location: '<Peering Location Name>',
892
+ bandwidth_in_mbps: <Bandwidth Value>,
893
+ peerings: [
894
+ {
895
+ name: '<Peering Name>',
896
+ peering_type: '<Peering Type>',
897
+ peer_asn: <ASN Value>,
898
+ primary_peer_address_prefix: '<Primary Peer IP Address Range>',
899
+ secondary_peer_address_prefix: '<Secondary Peer IP Address Range>',
900
+ vlan_id: <VLAN Id>
901
+ }
902
+ ],
903
+ tags: { # [Optional]
904
+ key1: 'value1',
905
+ key2: 'value2'
906
+ }
907
+ )
908
+ ```
909
+
910
+ ## List Express Route Circuits
911
+
912
+ List all express route circuits in a resource group
913
+
914
+ ```ruby
915
+ circuits = network.express_route_circuits(resource_group: '<Resource Group Name>')
916
+ circuits.each do |circuit|
917
+ puts "#{circuit.name}"
918
+ end
919
+ ```
920
+
921
+ ## Retrieve a single Express Route Circuit
922
+
923
+ Get a single record of Express Route Circuit
924
+
925
+ ```ruby
926
+ circuit = network.express_route_circuits.get('<Resource Group Name>', '<Circuit Name>')
927
+ puts "#{circuit.name}"
928
+ ```
929
+
930
+ ## Destroy a single Express Route Circuit
931
+
932
+ Get an express route circuit object from the get method and then destroy that express route circuit.
933
+
934
+ ```ruby
935
+ circuit.destroy
936
+ ```
937
+ # Express Route Authorization
938
+
939
+ Authorization is part of Express Route circuit.
940
+
941
+ ## Check Express Route Circuit Authorization Existence
942
+
943
+ ```ruby
944
+ fog_network_service.express_route_circuit_authorizations.check_express_route_cir_auth_exists('<Resource Group Name>', '<Circuit Name>', '<Authorization Name>')
945
+ ```
946
+
947
+ ## Create an Express Route Circuit Authorization
948
+
949
+ Create a new Express Route Circuit Authorization. Parameter 'authorization_status' can be 'Available' or 'InUse'.
950
+
951
+ ```ruby
952
+ authorization = network.express_route_circuit_authorizations.create(
953
+ resource_group: '<Resourse Group Name>',
954
+ name: '<Resource Unique Name>',
955
+ circuit_name: '<Circuit Name>',
956
+ authorization_status: '<Status Value>',
957
+ authorization_name: '<Authorization Name>'
958
+ )
959
+ ```
960
+
961
+ ## List Express Route Circuit Authorizations
962
+
963
+ List all express route circuit authorizations in a resource group.
964
+
965
+ ```ruby
966
+ authorizations = network.express_route_circuit_authorizations(resource_group: '<Resource Group Name>', circuit_name: '<Circuit Name>')
967
+ authorizations.each do |authorization|
968
+ puts "#{authorization.name}"
969
+ end
970
+ ```
971
+
972
+ ## Retrieve single Express Route Circuit Authorization
973
+
974
+ Get a single record of Express Route Circuit Authorization.
975
+
976
+ ```ruby
977
+ authorization = network.express_route_circuit_authorizations.get('<Resource Group Name>', '<Circuit Name>', '<Authorization Name>')
978
+ puts "#{authorization.name}"
979
+ ```
980
+
981
+ ## Destroy single Express Route Circuit Authorization
982
+
983
+ Get an express route circuit authorization object from the get method and then destroy that express route circuit authorization.
984
+
985
+ ```ruby
986
+ authorization.destroy
987
+ ```
988
+
989
+
990
+ # Express Route Peering
991
+
992
+ BGP Peering is part of Express Route circuit and defines the type of connectivity needed with Microsoft.
993
+
994
+ ## Create an Express Route Circuit Peering
995
+
996
+ Create a new Express Route Circuit Peering.
997
+
998
+ ```ruby
999
+ peering = network.express_route_circuit_peerings.create(
1000
+ name: '<Peering Name>',
1001
+ circuit_name: '<Circuit Name>',
1002
+ resource_group: '<Resourse Group Name>',
1003
+ peering_type: '<Peering Type>',
1004
+ peer_asn: <ASN Value>,
1005
+ primary_peer_address_prefix: '<Primary Peer IP Address Range>',
1006
+ secondary_peer_address_prefix:'<Secondary Peer IP Address Range>',
1007
+ vlan_id: <VLAN Id>
1008
+ )
1009
+ ```
1010
+
1011
+ ## List Express Route Circuit Peerings
1012
+
1013
+ List all express route circuit peerings in a resource group
1014
+
1015
+ ```ruby
1016
+ peerings = network.express_route_circuit_peerings(resource_group: '<Resource Group Name>', circuit_name: '<Circuit Name>')
1017
+ peerings.each do |peering|
1018
+ puts "#{peering.name}"
1019
+ end
1020
+ ```
1021
+
1022
+ ## Retrieve single Express Route Circuit Peering
1023
+
1024
+ Get a single record of Express Route Circuit Peering
1025
+
1026
+ ```ruby
1027
+ peering = network.express_route_circuit_peerings.get('<Resource Group Name>', '<Peering Name>', '<Circuit Name>')
1028
+ puts "#{peering.peering_type}"
1029
+ ```
1030
+
1031
+ ## Destroy single Express Route Circuit Peering
1032
+
1033
+ Get an express route circuit peering object from the get method and then destroy that express route circuit peering.
1034
+
1035
+ ```ruby
1036
+ peering.destroy
1037
+ ```
1038
+
1039
+ # Express Route Service Provider
1040
+
1041
+ Express Route Service Providers are telcos and exchange providers who are approved in the system to provide Express Route connectivity.
1042
+
1043
+ ## List Express Route Service Providers
1044
+
1045
+ List all express route service providers
1046
+
1047
+ ```ruby
1048
+ service_providers = network.express_route_service_providers
1049
+ puts service_providers
1050
+ ```
1051
+
1052
+ ## Check Virtual Network Gateway Connection Existence
1053
+
1054
+ ```ruby
1055
+ fog_network_service.virtual_network_gateway_connections.check_vnet_gateway_connection_exists('<Resource Group Name>', '<Virtual Network Gateway Connection Name>')
1056
+ ```
1057
+
1058
+ ## Create Virtual Network Gateway Connection
1059
+
1060
+ Create a new Virtual Network Gateway Connection.
1061
+
1062
+ ```ruby
1063
+ gateway_connection = network.virtual_network_gateway_connections.create(
1064
+ name: '<Virtual Network Gateway Connection Name>',
1065
+ location: '<Location>',
1066
+ resource_group: '<Resource Group Name>',
1067
+ virtual_network_gateway1: {
1068
+ name: '<VN Gateway Name>',
1069
+ resource_group: '<Resource Group Name>'
1070
+ },
1071
+ virtual_network_gateway2: {
1072
+ name: '<VN Gateway Name>',
1073
+ resource_group: '<Resource Group Name>'
1074
+ }
1075
+ connection_type: '<Connection Type>',
1076
+ tags: { # [Optional]
1077
+ key1: 'value1',
1078
+ key2: 'value2'
1079
+ },
1080
+ )
1081
+ ```
1082
+
1083
+ ## List Virtual Network Gateway Connections
1084
+
1085
+ List all virtual network gateway connections in a resource group
1086
+
1087
+ ```ruby
1088
+ gateway_connections = network.virtual_network_gateway_connections(resource_group: '<Resource Group Name>')
1089
+ gateway_connections.each do |connection|
1090
+ puts "#{connection.name}"
1091
+ end
1092
+ ```
1093
+
1094
+ ## Retrieve single Virtual Network Gateway Connection
1095
+
1096
+ Get single record of Virtual Network Gateway Connection
1097
+
1098
+ ```ruby
1099
+ gateway_connection = network.virtual_network_gateway_connections.get('<Resource Group Name>', '<Virtual Network Gateway Connection Name>')
1100
+ puts "#{gateway_connection.name}"
1101
+ ```
1102
+
1103
+ ## Destroy single Virtual Network Gateway Connection
1104
+
1105
+ Get a virtual network gateway connection object from the get method and then destroy that virtual network gateway connection.
1106
+
1107
+ ```ruby
1108
+ gateway_connection.destroy
1109
+ ```
1110
+
1111
+ ## Get the shared key for a connection
1112
+
1113
+ ```ruby
1114
+ shared_key = network.get_connection_shared_key('<Resource Group Name>', '<Virtual Network Gateway Connection Name>')
1115
+ puts gateway_connection
1116
+ ```
1117
+
1118
+ ## Set the shared key for a connection
1119
+
1120
+ ```ruby
1121
+ network.set_connection_shared_key('<Resource Group Name>', '<Virtual Network Gateway Connection Name>', 'Value')
1122
+ ```
1123
+
1124
+ ## Reset the shared key for a connection
1125
+
1126
+ ```ruby
1127
+ network.reset_connection_shared_key('<Resource Group Name>', '<Virtual Network Gateway Connection Name>', '<Key Length In Integer>')
1128
+ ```
1129
+
1130
+
1131
+ ## Support and Feedback
1132
+ Your feedback is highly appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.