fog-google 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rubocop.yml +20 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +17 -0
  7. data/CONTRIBUTING.md +18 -0
  8. data/CONTRIBUTORS.md +41 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.md +20 -0
  11. data/README.md +55 -0
  12. data/Rakefile +34 -0
  13. data/examples/backend_services.rb +22 -0
  14. data/examples/bootstrap.rb +9 -0
  15. data/examples/create.rb +49 -0
  16. data/examples/dns/project.rb +8 -0
  17. data/examples/dns/zones.rb +43 -0
  18. data/examples/eric-fail.rb +36 -0
  19. data/examples/get_list_images.rb +26 -0
  20. data/examples/get_list_snapshots.rb +18 -0
  21. data/examples/image_all.rb +6 -0
  22. data/examples/image_create.rb +17 -0
  23. data/examples/l7_load_balance.rb +73 -0
  24. data/examples/launch_micro_instance.rb +29 -0
  25. data/examples/load-balance.rb +98 -0
  26. data/examples/metadata.rb +30 -0
  27. data/examples/monitoring/metric_descriptors.rb +11 -0
  28. data/examples/monitoring/timeseries_collection.rb +15 -0
  29. data/examples/monitoring/timeseries_descriptors.rb +15 -0
  30. data/examples/network.rb +38 -0
  31. data/examples/precreated_client.rb +14 -0
  32. data/examples/sql/flags.rb +7 -0
  33. data/examples/sql/instances.rb +38 -0
  34. data/examples/sql/operations.rb +20 -0
  35. data/examples/sql/ssl_certs.rb +28 -0
  36. data/examples/sql/tiers.rb +7 -0
  37. data/fog-google.gemspec +37 -0
  38. data/gemfiles/Gemfile.1.9.2+ +6 -0
  39. data/gemfiles/Gemfile.1.9.2- +9 -0
  40. data/lib/fog/bin/google.rb +88 -0
  41. data/lib/fog/google.rb +226 -0
  42. data/lib/fog/google/compute.rb +1068 -0
  43. data/lib/fog/google/dns.rb +96 -0
  44. data/lib/fog/google/models/compute/address.rb +94 -0
  45. data/lib/fog/google/models/compute/addresses.rb +40 -0
  46. data/lib/fog/google/models/compute/backend_service.rb +92 -0
  47. data/lib/fog/google/models/compute/backend_services.rb +22 -0
  48. data/lib/fog/google/models/compute/disk.rb +120 -0
  49. data/lib/fog/google/models/compute/disk_type.rb +28 -0
  50. data/lib/fog/google/models/compute/disk_types.rb +40 -0
  51. data/lib/fog/google/models/compute/disks.rb +41 -0
  52. data/lib/fog/google/models/compute/firewall.rb +46 -0
  53. data/lib/fog/google/models/compute/firewalls.rb +25 -0
  54. data/lib/fog/google/models/compute/flavor.rb +33 -0
  55. data/lib/fog/google/models/compute/flavors.rb +31 -0
  56. data/lib/fog/google/models/compute/forwarding_rule.rb +86 -0
  57. data/lib/fog/google/models/compute/forwarding_rules.rb +41 -0
  58. data/lib/fog/google/models/compute/global_forwarding_rule.rb +86 -0
  59. data/lib/fog/google/models/compute/global_forwarding_rules.rb +23 -0
  60. data/lib/fog/google/models/compute/http_health_check.rb +84 -0
  61. data/lib/fog/google/models/compute/http_health_checks.rb +26 -0
  62. data/lib/fog/google/models/compute/image.rb +90 -0
  63. data/lib/fog/google/models/compute/images.rb +73 -0
  64. data/lib/fog/google/models/compute/network.rb +43 -0
  65. data/lib/fog/google/models/compute/networks.rb +25 -0
  66. data/lib/fog/google/models/compute/operation.rb +75 -0
  67. data/lib/fog/google/models/compute/operations.rb +37 -0
  68. data/lib/fog/google/models/compute/project.rb +30 -0
  69. data/lib/fog/google/models/compute/projects.rb +20 -0
  70. data/lib/fog/google/models/compute/region.rb +32 -0
  71. data/lib/fog/google/models/compute/regions.rb +25 -0
  72. data/lib/fog/google/models/compute/resource_view.rb +116 -0
  73. data/lib/fog/google/models/compute/resource_views.rb +57 -0
  74. data/lib/fog/google/models/compute/route.rb +50 -0
  75. data/lib/fog/google/models/compute/routes.rb +25 -0
  76. data/lib/fog/google/models/compute/server.rb +258 -0
  77. data/lib/fog/google/models/compute/servers.rb +80 -0
  78. data/lib/fog/google/models/compute/snapshot.rb +48 -0
  79. data/lib/fog/google/models/compute/snapshots.rb +26 -0
  80. data/lib/fog/google/models/compute/target_http_proxies.rb +22 -0
  81. data/lib/fog/google/models/compute/target_http_proxy.rb +75 -0
  82. data/lib/fog/google/models/compute/target_instance.rb +74 -0
  83. data/lib/fog/google/models/compute/target_instances.rb +28 -0
  84. data/lib/fog/google/models/compute/target_pool.rb +113 -0
  85. data/lib/fog/google/models/compute/target_pools.rb +41 -0
  86. data/lib/fog/google/models/compute/url_map.rb +95 -0
  87. data/lib/fog/google/models/compute/url_maps.rb +22 -0
  88. data/lib/fog/google/models/compute/zone.rb +23 -0
  89. data/lib/fog/google/models/compute/zones.rb +24 -0
  90. data/lib/fog/google/models/dns/change.rb +40 -0
  91. data/lib/fog/google/models/dns/changes.rb +52 -0
  92. data/lib/fog/google/models/dns/project.rb +75 -0
  93. data/lib/fog/google/models/dns/projects.rb +25 -0
  94. data/lib/fog/google/models/dns/record.rb +112 -0
  95. data/lib/fog/google/models/dns/records.rb +52 -0
  96. data/lib/fog/google/models/dns/zone.rb +74 -0
  97. data/lib/fog/google/models/dns/zones.rb +34 -0
  98. data/lib/fog/google/models/monitoring/metric_descriptor.rb +20 -0
  99. data/lib/fog/google/models/monitoring/metric_descriptors.rb +28 -0
  100. data/lib/fog/google/models/monitoring/timeseries.rb +17 -0
  101. data/lib/fog/google/models/monitoring/timeseries_collection.rb +31 -0
  102. data/lib/fog/google/models/monitoring/timeseries_descriptor.rb +20 -0
  103. data/lib/fog/google/models/monitoring/timeseries_descriptors.rb +31 -0
  104. data/lib/fog/google/models/sql/backup_run.rb +34 -0
  105. data/lib/fog/google/models/sql/backup_runs.rb +38 -0
  106. data/lib/fog/google/models/sql/flag.rb +22 -0
  107. data/lib/fog/google/models/sql/flags.rb +21 -0
  108. data/lib/fog/google/models/sql/instance.rb +353 -0
  109. data/lib/fog/google/models/sql/instances.rb +39 -0
  110. data/lib/fog/google/models/sql/operation.rb +61 -0
  111. data/lib/fog/google/models/sql/operations.rb +49 -0
  112. data/lib/fog/google/models/sql/ssl_cert.rb +73 -0
  113. data/lib/fog/google/models/sql/ssl_certs.rb +49 -0
  114. data/lib/fog/google/models/sql/tier.rb +20 -0
  115. data/lib/fog/google/models/sql/tiers.rb +21 -0
  116. data/lib/fog/google/models/storage/directories.rb +39 -0
  117. data/lib/fog/google/models/storage/directory.rb +74 -0
  118. data/lib/fog/google/models/storage/file.rb +144 -0
  119. data/lib/fog/google/models/storage/files.rb +104 -0
  120. data/lib/fog/google/monitoring.rb +87 -0
  121. data/lib/fog/google/parsers/storage/access_control_list.rb +44 -0
  122. data/lib/fog/google/parsers/storage/copy_object.rb +18 -0
  123. data/lib/fog/google/parsers/storage/get_bucket.rb +58 -0
  124. data/lib/fog/google/parsers/storage/get_bucket_logging.rb +36 -0
  125. data/lib/fog/google/parsers/storage/get_bucket_object_versions.rb +84 -0
  126. data/lib/fog/google/parsers/storage/get_bucket_versioning.rb +20 -0
  127. data/lib/fog/google/parsers/storage/get_request_payment.rb +16 -0
  128. data/lib/fog/google/parsers/storage/get_service.rb +28 -0
  129. data/lib/fog/google/requests/compute/add_backend_service_backends.rb +29 -0
  130. data/lib/fog/google/requests/compute/add_region_view_resources.rb +27 -0
  131. data/lib/fog/google/requests/compute/add_server_access_config.rb +32 -0
  132. data/lib/fog/google/requests/compute/add_target_pool_health_checks.rb +27 -0
  133. data/lib/fog/google/requests/compute/add_target_pool_instances.rb +27 -0
  134. data/lib/fog/google/requests/compute/add_url_map_host_rules.rb +25 -0
  135. data/lib/fog/google/requests/compute/add_url_map_path_matchers.rb +29 -0
  136. data/lib/fog/google/requests/compute/add_zone_view_resources.rb +27 -0
  137. data/lib/fog/google/requests/compute/attach_disk.rb +34 -0
  138. data/lib/fog/google/requests/compute/delete_address.rb +24 -0
  139. data/lib/fog/google/requests/compute/delete_backend_service.rb +43 -0
  140. data/lib/fog/google/requests/compute/delete_disk.rb +48 -0
  141. data/lib/fog/google/requests/compute/delete_firewall.rb +23 -0
  142. data/lib/fog/google/requests/compute/delete_forwarding_rule.rb +49 -0
  143. data/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb +48 -0
  144. data/lib/fog/google/requests/compute/delete_global_operation.rb +25 -0
  145. data/lib/fog/google/requests/compute/delete_http_health_check.rb +41 -0
  146. data/lib/fog/google/requests/compute/delete_image.rb +42 -0
  147. data/lib/fog/google/requests/compute/delete_network.rb +23 -0
  148. data/lib/fog/google/requests/compute/delete_region_operation.rb +29 -0
  149. data/lib/fog/google/requests/compute/delete_region_view.rb +24 -0
  150. data/lib/fog/google/requests/compute/delete_route.rb +23 -0
  151. data/lib/fog/google/requests/compute/delete_server.rb +69 -0
  152. data/lib/fog/google/requests/compute/delete_server_access_config.rb +26 -0
  153. data/lib/fog/google/requests/compute/delete_snapshot.rb +23 -0
  154. data/lib/fog/google/requests/compute/delete_target_http_proxy.rb +43 -0
  155. data/lib/fog/google/requests/compute/delete_target_instance.rb +48 -0
  156. data/lib/fog/google/requests/compute/delete_target_pool.rb +49 -0
  157. data/lib/fog/google/requests/compute/delete_url_map.rb +43 -0
  158. data/lib/fog/google/requests/compute/delete_zone_operation.rb +29 -0
  159. data/lib/fog/google/requests/compute/delete_zone_view.rb +24 -0
  160. data/lib/fog/google/requests/compute/detach_disk.rb +25 -0
  161. data/lib/fog/google/requests/compute/get_address.rb +24 -0
  162. data/lib/fog/google/requests/compute/get_backend_service.rb +26 -0
  163. data/lib/fog/google/requests/compute/get_backend_service_health.rb +27 -0
  164. data/lib/fog/google/requests/compute/get_backend_services.rb +23 -0
  165. data/lib/fog/google/requests/compute/get_disk.rb +52 -0
  166. data/lib/fog/google/requests/compute/get_disk_type.rb +42 -0
  167. data/lib/fog/google/requests/compute/get_firewall.rb +23 -0
  168. data/lib/fog/google/requests/compute/get_forwarding_rule.rb +46 -0
  169. data/lib/fog/google/requests/compute/get_global_forwarding_rule.rb +32 -0
  170. data/lib/fog/google/requests/compute/get_global_operation.rb +50 -0
  171. data/lib/fog/google/requests/compute/get_http_health_check.rb +39 -0
  172. data/lib/fog/google/requests/compute/get_image.rb +36 -0
  173. data/lib/fog/google/requests/compute/get_machine_type.rb +43 -0
  174. data/lib/fog/google/requests/compute/get_network.rb +23 -0
  175. data/lib/fog/google/requests/compute/get_project.rb +22 -0
  176. data/lib/fog/google/requests/compute/get_region.rb +37 -0
  177. data/lib/fog/google/requests/compute/get_region_operation.rb +55 -0
  178. data/lib/fog/google/requests/compute/get_region_view.rb +24 -0
  179. data/lib/fog/google/requests/compute/get_route.rb +23 -0
  180. data/lib/fog/google/requests/compute/get_server.rb +75 -0
  181. data/lib/fog/google/requests/compute/get_server_serial_port_output.rb +24 -0
  182. data/lib/fog/google/requests/compute/get_snapshot.rb +27 -0
  183. data/lib/fog/google/requests/compute/get_target_http_proxy.rb +27 -0
  184. data/lib/fog/google/requests/compute/get_target_instance.rb +32 -0
  185. data/lib/fog/google/requests/compute/get_target_pool.rb +40 -0
  186. data/lib/fog/google/requests/compute/get_target_pool_health.rb +29 -0
  187. data/lib/fog/google/requests/compute/get_url_map.rb +27 -0
  188. data/lib/fog/google/requests/compute/get_zone.rb +36 -0
  189. data/lib/fog/google/requests/compute/get_zone_operation.rb +55 -0
  190. data/lib/fog/google/requests/compute/get_zone_view.rb +24 -0
  191. data/lib/fog/google/requests/compute/insert_address.rb +25 -0
  192. data/lib/fog/google/requests/compute/insert_backend_service.rb +63 -0
  193. data/lib/fog/google/requests/compute/insert_disk.rb +113 -0
  194. data/lib/fog/google/requests/compute/insert_firewall.rb +43 -0
  195. data/lib/fog/google/requests/compute/insert_forwarding_rule.rb +60 -0
  196. data/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb +56 -0
  197. data/lib/fog/google/requests/compute/insert_http_health_check.rb +59 -0
  198. data/lib/fog/google/requests/compute/insert_image.rb +64 -0
  199. data/lib/fog/google/requests/compute/insert_network.rb +29 -0
  200. data/lib/fog/google/requests/compute/insert_region_view.rb +25 -0
  201. data/lib/fog/google/requests/compute/insert_route.rb +35 -0
  202. data/lib/fog/google/requests/compute/insert_server.rb +191 -0
  203. data/lib/fog/google/requests/compute/insert_snapshot.rb +40 -0
  204. data/lib/fog/google/requests/compute/insert_target_http_proxy.rb +52 -0
  205. data/lib/fog/google/requests/compute/insert_target_instance.rb +55 -0
  206. data/lib/fog/google/requests/compute/insert_target_pool.rb +58 -0
  207. data/lib/fog/google/requests/compute/insert_url_map.rb +55 -0
  208. data/lib/fog/google/requests/compute/insert_zone_view.rb +27 -0
  209. data/lib/fog/google/requests/compute/list_addresses.rb +23 -0
  210. data/lib/fog/google/requests/compute/list_aggregated_addresses.rb +23 -0
  211. data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +40 -0
  212. data/lib/fog/google/requests/compute/list_aggregated_disks.rb +40 -0
  213. data/lib/fog/google/requests/compute/list_aggregated_machine_types.rb +22 -0
  214. data/lib/fog/google/requests/compute/list_aggregated_servers.rb +40 -0
  215. data/lib/fog/google/requests/compute/list_backend_services.rb +29 -0
  216. data/lib/fog/google/requests/compute/list_disk_types.rb +46 -0
  217. data/lib/fog/google/requests/compute/list_disks.rb +29 -0
  218. data/lib/fog/google/requests/compute/list_firewalls.rb +22 -0
  219. data/lib/fog/google/requests/compute/list_forwarding_rules.rb +29 -0
  220. data/lib/fog/google/requests/compute/list_global_forwarding_rules.rb +30 -0
  221. data/lib/fog/google/requests/compute/list_global_operations.rb +24 -0
  222. data/lib/fog/google/requests/compute/list_http_health_checks.rb +29 -0
  223. data/lib/fog/google/requests/compute/list_images.rb +29 -0
  224. data/lib/fog/google/requests/compute/list_machine_types.rb +30 -0
  225. data/lib/fog/google/requests/compute/list_networks.rb +22 -0
  226. data/lib/fog/google/requests/compute/list_region_operations.rb +25 -0
  227. data/lib/fog/google/requests/compute/list_region_view_resources.rb +25 -0
  228. data/lib/fog/google/requests/compute/list_region_views.rb +23 -0
  229. data/lib/fog/google/requests/compute/list_regions.rb +85 -0
  230. data/lib/fog/google/requests/compute/list_routes.rb +22 -0
  231. data/lib/fog/google/requests/compute/list_servers.rb +31 -0
  232. data/lib/fog/google/requests/compute/list_snapshots.rb +23 -0
  233. data/lib/fog/google/requests/compute/list_target_http_proxies.rb +30 -0
  234. data/lib/fog/google/requests/compute/list_target_instances.rb +30 -0
  235. data/lib/fog/google/requests/compute/list_target_pools.rb +29 -0
  236. data/lib/fog/google/requests/compute/list_url_maps.rb +29 -0
  237. data/lib/fog/google/requests/compute/list_zone_operations.rb +25 -0
  238. data/lib/fog/google/requests/compute/list_zone_view_resources.rb +25 -0
  239. data/lib/fog/google/requests/compute/list_zone_views.rb +23 -0
  240. data/lib/fog/google/requests/compute/list_zones.rb +28 -0
  241. data/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb +27 -0
  242. data/lib/fog/google/requests/compute/remove_target_pool_instance.rb +27 -0
  243. data/lib/fog/google/requests/compute/remove_target_pool_instances.rb +27 -0
  244. data/lib/fog/google/requests/compute/reset_server.rb +24 -0
  245. data/lib/fog/google/requests/compute/set_common_instance_metadata.rb +26 -0
  246. data/lib/fog/google/requests/compute/set_forwarding_rule_target.rb +27 -0
  247. data/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb +27 -0
  248. data/lib/fog/google/requests/compute/set_metadata.rb +39 -0
  249. data/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb +26 -0
  250. data/lib/fog/google/requests/compute/set_server_scheduling.rb +29 -0
  251. data/lib/fog/google/requests/compute/set_tags.rb +24 -0
  252. data/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb +27 -0
  253. data/lib/fog/google/requests/compute/start_server.rb +24 -0
  254. data/lib/fog/google/requests/compute/stop_server.rb +24 -0
  255. data/lib/fog/google/requests/compute/update_url_map.rb +39 -0
  256. data/lib/fog/google/requests/compute/validate_url_map.rb +24 -0
  257. data/lib/fog/google/requests/dns/create_change.rb +64 -0
  258. data/lib/fog/google/requests/dns/create_managed_zone.rb +82 -0
  259. data/lib/fog/google/requests/dns/delete_managed_zone.rb +35 -0
  260. data/lib/fog/google/requests/dns/get_change.rb +42 -0
  261. data/lib/fog/google/requests/dns/get_managed_zone.rb +37 -0
  262. data/lib/fog/google/requests/dns/get_project.rb +42 -0
  263. data/lib/fog/google/requests/dns/list_changes.rb +41 -0
  264. data/lib/fog/google/requests/dns/list_managed_zones.rb +31 -0
  265. data/lib/fog/google/requests/dns/list_resource_record_sets.rb +50 -0
  266. data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +191 -0
  267. data/lib/fog/google/requests/monitoring/list_timeseries.rb +68 -0
  268. data/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb +87 -0
  269. data/lib/fog/google/requests/sql/clone_instance.rb +84 -0
  270. data/lib/fog/google/requests/sql/delete_instance.rb +67 -0
  271. data/lib/fog/google/requests/sql/delete_ssl_cert.rb +68 -0
  272. data/lib/fog/google/requests/sql/export_instance.rb +56 -0
  273. data/lib/fog/google/requests/sql/get_backup_run.rb +30 -0
  274. data/lib/fog/google/requests/sql/get_instance.rb +48 -0
  275. data/lib/fog/google/requests/sql/get_operation.rb +66 -0
  276. data/lib/fog/google/requests/sql/get_ssl_cert.rb +66 -0
  277. data/lib/fog/google/requests/sql/import_instance.rb +55 -0
  278. data/lib/fog/google/requests/sql/insert_instance.rb +165 -0
  279. data/lib/fog/google/requests/sql/insert_ssl_cert.rb +80 -0
  280. data/lib/fog/google/requests/sql/list_backup_runs.rb +30 -0
  281. data/lib/fog/google/requests/sql/list_flags.rb +143 -0
  282. data/lib/fog/google/requests/sql/list_instances.rb +32 -0
  283. data/lib/fog/google/requests/sql/list_operations.rb +52 -0
  284. data/lib/fog/google/requests/sql/list_ssl_certs.rb +51 -0
  285. data/lib/fog/google/requests/sql/list_tiers.rb +82 -0
  286. data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +49 -0
  287. data/lib/fog/google/requests/sql/restart_instance.rb +47 -0
  288. data/lib/fog/google/requests/sql/restore_instance_backup.rb +30 -0
  289. data/lib/fog/google/requests/sql/set_instance_root_password.rb +54 -0
  290. data/lib/fog/google/requests/sql/update_instance.rb +132 -0
  291. data/lib/fog/google/requests/storage/copy_object.rb +68 -0
  292. data/lib/fog/google/requests/storage/delete_bucket.rb +41 -0
  293. data/lib/fog/google/requests/storage/delete_object.rb +46 -0
  294. data/lib/fog/google/requests/storage/get_bucket.rb +106 -0
  295. data/lib/fog/google/requests/storage/get_bucket_acl.rb +59 -0
  296. data/lib/fog/google/requests/storage/get_object.rb +108 -0
  297. data/lib/fog/google/requests/storage/get_object_acl.rb +70 -0
  298. data/lib/fog/google/requests/storage/get_object_http_url.rb +44 -0
  299. data/lib/fog/google/requests/storage/get_object_https_url.rb +44 -0
  300. data/lib/fog/google/requests/storage/get_object_torrent.rb +45 -0
  301. data/lib/fog/google/requests/storage/get_object_url.rb +33 -0
  302. data/lib/fog/google/requests/storage/get_service.rb +48 -0
  303. data/lib/fog/google/requests/storage/head_object.rb +60 -0
  304. data/lib/fog/google/requests/storage/put_bucket.rb +71 -0
  305. data/lib/fog/google/requests/storage/put_bucket_acl.rb +58 -0
  306. data/lib/fog/google/requests/storage/put_object.rb +89 -0
  307. data/lib/fog/google/requests/storage/put_object_acl.rb +51 -0
  308. data/lib/fog/google/requests/storage/put_object_url.rb +50 -0
  309. data/lib/fog/google/sql.rb +130 -0
  310. data/lib/fog/google/storage.rb +298 -0
  311. data/lib/fog/google/version.rb +5 -0
  312. data/spec/minitest_helper.rb +31 -0
  313. data/tests/credentials_tests.rb +73 -0
  314. data/tests/helper.rb +126 -0
  315. data/tests/helpers/collection_helper.rb +97 -0
  316. data/tests/helpers/compute/flavors_helper.rb +32 -0
  317. data/tests/helpers/compute/server_helper.rb +25 -0
  318. data/tests/helpers/compute/servers_helper.rb +10 -0
  319. data/tests/helpers/formats_helper.rb +98 -0
  320. data/tests/helpers/formats_helper_tests.rb +110 -0
  321. data/tests/helpers/mock_helper.rb +18 -0
  322. data/tests/helpers/model_helper.rb +31 -0
  323. data/tests/helpers/responds_to_helper.rb +11 -0
  324. data/tests/helpers/schema_validator_tests.rb +107 -0
  325. data/tests/helpers/succeeds_helper.rb +9 -0
  326. data/tests/lorem.txt +1 -0
  327. data/tests/models/compute/backend_service_tests.rb +6 -0
  328. data/tests/models/compute/backend_services_tests.rb +8 -0
  329. data/tests/models/compute/disk_tests.rb +9 -0
  330. data/tests/models/compute/disk_types_tests.rb +22 -0
  331. data/tests/models/compute/disks_tests.rb +9 -0
  332. data/tests/models/compute/forwarding_rule_tests.rb +8 -0
  333. data/tests/models/compute/forwarding_rules_tests.rb +8 -0
  334. data/tests/models/compute/global_forwarding_rule_tests.rb +7 -0
  335. data/tests/models/compute/global_forwarding_rules_tests.rb +7 -0
  336. data/tests/models/compute/http_health_check_tests.rb +5 -0
  337. data/tests/models/compute/http_health_checks_tests.rb +5 -0
  338. data/tests/models/compute/image_tests.rb +6 -0
  339. data/tests/models/compute/images_tests.rb +6 -0
  340. data/tests/models/compute/region_tests.rb +10 -0
  341. data/tests/models/compute/regions_tests.rb +19 -0
  342. data/tests/models/compute/server_tests.rb +37 -0
  343. data/tests/models/compute/servers_tests.rb +14 -0
  344. data/tests/models/compute/target_http_proxies_tests.rb +7 -0
  345. data/tests/models/compute/target_http_proxy_test.rb +6 -0
  346. data/tests/models/compute/target_instance_tests.rb +7 -0
  347. data/tests/models/compute/target_instances_tests.rb +7 -0
  348. data/tests/models/compute/target_pool_tests.rb +12 -0
  349. data/tests/models/compute/target_pools_tests.rb +11 -0
  350. data/tests/models/compute/url_map_tests.rb +6 -0
  351. data/tests/models/compute/url_maps_tests.rb +7 -0
  352. data/tests/models/dns/change_tests.rb +28 -0
  353. data/tests/models/dns/changes_tests.rb +36 -0
  354. data/tests/models/dns/projects_tests.rb +12 -0
  355. data/tests/models/dns/record_tests.rb +42 -0
  356. data/tests/models/dns/records_tests.rb +36 -0
  357. data/tests/models/dns/zone_tests.rb +28 -0
  358. data/tests/models/dns/zones_tests.rb +14 -0
  359. data/tests/models/monitoring/metric_descriptors_tests.rb +12 -0
  360. data/tests/models/monitoring/timeseries_collection_tests.rb +12 -0
  361. data/tests/models/monitoring/timeseries_descriptors_tests.rb +13 -0
  362. data/tests/models/sql/flags_tests.rb +12 -0
  363. data/tests/models/sql/instance_tests.rb +56 -0
  364. data/tests/models/sql/instances_tests.rb +32 -0
  365. data/tests/models/sql/operation_tests.rb +25 -0
  366. data/tests/models/sql/operations_tests.rb +38 -0
  367. data/tests/models/sql/ssl_cert_tests.rb +24 -0
  368. data/tests/models/sql/ssl_certs_tests.rb +39 -0
  369. data/tests/models/sql/tiers_tests.rb +12 -0
  370. data/tests/requests/compute/backend_service_tests.rb +83 -0
  371. data/tests/requests/compute/disk_tests.rb +74 -0
  372. data/tests/requests/compute/disk_type_tests.rb +45 -0
  373. data/tests/requests/compute/firewall_tests.rb +88 -0
  374. data/tests/requests/compute/forwarding_rules_tests.rb +83 -0
  375. data/tests/requests/compute/global_forwarding_rules_tests.rb +83 -0
  376. data/tests/requests/compute/http_health_checks_tests.rb +83 -0
  377. data/tests/requests/compute/image_tests.rb +83 -0
  378. data/tests/requests/compute/network_tests.rb +75 -0
  379. data/tests/requests/compute/operation_tests.rb +20 -0
  380. data/tests/requests/compute/region_tests.rb +39 -0
  381. data/tests/requests/compute/server_tests.rb +84 -0
  382. data/tests/requests/compute/target_http_proxies_test.rb +79 -0
  383. data/tests/requests/compute/target_instances_tests.rb +83 -0
  384. data/tests/requests/compute/target_pools_tests.rb +82 -0
  385. data/tests/requests/compute/url_maps_tests.rb +82 -0
  386. data/tests/requests/compute/zone_tests.rb +37 -0
  387. data/tests/requests/dns/change_tests.rb +86 -0
  388. data/tests/requests/dns/managed_zone_tests.rb +66 -0
  389. data/tests/requests/dns/project_tests.rb +29 -0
  390. data/tests/requests/dns/record_tests.rb +49 -0
  391. data/tests/requests/monitoring/metric_descriptor_tests.rb +25 -0
  392. data/tests/requests/monitoring/timeseries_collection_tests.rb +25 -0
  393. data/tests/requests/monitoring/timeseries_descriptor_tests.rb +26 -0
  394. data/tests/requests/sql/flag_tests.rb +27 -0
  395. data/tests/requests/sql/instance_tests.rb +129 -0
  396. data/tests/requests/sql/operation_tests.rb +42 -0
  397. data/tests/requests/sql/ssl_cert_tests.rb +61 -0
  398. data/tests/requests/sql/tier_tests.rb +25 -0
  399. data/tests/requests/storage/bucket_tests.rb +77 -0
  400. data/tests/requests/storage/object_tests.rb +84 -0
  401. metadata +625 -0
@@ -0,0 +1,41 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/google/models/compute/target_pool'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Google
7
+ class TargetPools < Fog::Collection
8
+ model Fog::Compute::Google::TargetPool
9
+
10
+ def all(filters={})
11
+ if filters['region'].nil?
12
+ data = []
13
+ service.list_regions.body['items'].each do |region|
14
+ data += service.list_target_pools(region['name']).body['items'] || []
15
+ end
16
+ else
17
+ data = service.list_target_pools(filters['region']).body['items'] || []
18
+ end
19
+ load(data)
20
+ end
21
+
22
+ def get(identity, region=nil)
23
+ response = nil
24
+ if region.nil?
25
+ service.regions.all.each do |region|
26
+ begin
27
+ response = service.get_target_pool(identity, region.name)
28
+ break if response.status == 200
29
+ rescue Fog::Errors::Error
30
+ end
31
+ end
32
+ else
33
+ response = service.get_target_pool(identity, region)
34
+ end
35
+ return nil if response.nil?
36
+ new(response.body)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,95 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Google
6
+ class UrlMap < Fog::Model
7
+ identity :name
8
+
9
+ attribute :kind, :aliases => 'kind'
10
+ attribute :creationTimestamp, :aliases => 'creation_timestamp'
11
+ attribute :defaultService, :aliases => 'default_service'
12
+ attribute :description, :aliases => 'description'
13
+ attribute :fingerprint, :aliases => 'fingerprint'
14
+ attribute :hostRules, :aliases => 'host_rules'
15
+ attribute :id, :aliases => 'id'
16
+ attribute :pathMatchers, :aliases => 'path_matchers'
17
+ attribute :self_link, :aliases => 'selfLink'
18
+ attribute :tests, :aliases => 'tests'
19
+
20
+ def save
21
+ requires :name, :defaultService
22
+
23
+ options = {
24
+ 'defaultService' => defaultService,
25
+ 'description' => description,
26
+ 'fingerprint' => fingerprint,
27
+ 'hostRules' => hostRules,
28
+ 'pathMatchers' => pathMatchers,
29
+ 'tests' => tests
30
+ }
31
+
32
+ data = service.insert_url_map(name, options).body
33
+ operation = Fog::Compute::Google::Operations.new(:service => service).get(data['name'])
34
+ operation.wait_for { !pending? }
35
+ reload
36
+ end
37
+
38
+ def destroy(async=true)
39
+ requires :name
40
+
41
+ operation = service.delete_url_map(name)
42
+ if not async
43
+ Fog.wait_for do
44
+ operation = service.get_global_operation(operation.body["name"])
45
+ operation.body["status"] == "DONE"
46
+ end
47
+ end
48
+ operation
49
+ end
50
+
51
+ def validate
52
+ service.validate_url_map self
53
+ end
54
+
55
+ def add_host_rules hostRules
56
+ hostRules= [hostRules] unless hostRules.class == Array
57
+ service.update_url_map(self, hostRules)
58
+ reload
59
+ end
60
+
61
+ def add_path_matchers(pathMatchers, hostRules)
62
+ pathMatchers = [pathMatchers] unless pathMatchers.class == Array
63
+ hostRules=[hostRules] unless hostRules.class == Array
64
+ service.update_url_map(self, hostRules, pathMatchers)
65
+ reload
66
+ end
67
+
68
+ def ready?
69
+ begin
70
+ service.get_url_map(self.name)
71
+ true
72
+ rescue Fog::Errors::NotFound
73
+ false
74
+ end
75
+ end
76
+
77
+ def reload
78
+ requires :name
79
+
80
+ return unless data = begin
81
+ collection.get(name)
82
+ rescue Excon::Errors::SocketError
83
+ nil
84
+ end
85
+
86
+ new_attributes = data.attributes
87
+ merge_attributes(new_attributes)
88
+ self
89
+ end
90
+
91
+ RUNNING_STATE ="READY"
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,22 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/google/models/compute/url_map'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Google
7
+ class UrlMaps < Fog::Collection
8
+ model Fog::Compute::Google::UrlMap
9
+
10
+ def all
11
+ data = service.list_url_maps.body['items'] || []
12
+ load(data)
13
+ end
14
+
15
+ def get(identity)
16
+ response = service.get_url_map(identity)
17
+ new(response.body) unless response.nil?
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Google
6
+ class Zone < Fog::Model
7
+ identity :name
8
+ attribute :description
9
+ attribute :status
10
+ attribute :maintenance_windows, :aliases => 'maintenanceWindows'
11
+ attribute :begin_time, :aliases => 'beginTime'
12
+ attribute :end_time, :aliases => 'endTime'
13
+ attribute :quotas
14
+ attribute :region
15
+ attribute :self_link, :aliases => 'selfLink'
16
+
17
+ def up?
18
+ self.status == "UP"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/google/models/compute/zone'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Google
7
+ class Zones < Fog::Collection
8
+ model Fog::Compute::Google::Zone
9
+
10
+ def all
11
+ data = service.list_zones.body["items"] || []
12
+ load(data)
13
+ end
14
+
15
+ def get(identity)
16
+ data = service.get_zone(identity).body
17
+ new(data)
18
+ rescue Fog::Errors::NotFound
19
+ nil
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,40 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module DNS
5
+ class Google
6
+ ##
7
+ # Represents a Change resource
8
+ #
9
+ # @see https://developers.google.com/cloud-dns/api/v1beta1/changes
10
+ class Change < Fog::Model
11
+ identity :id
12
+
13
+ attribute :kind
14
+ attribute :start_time, :aliases => 'startTime'
15
+ attribute :status
16
+ attribute :additions
17
+ attribute :deletions
18
+
19
+ DONE_STATE = 'done'
20
+ PENDING_STATE = 'pending'
21
+
22
+ ##
23
+ # Checks if the change operation is pending
24
+ #
25
+ # @return [Boolean] True if the change operation is pending; False otherwise
26
+ def pending?
27
+ self.status == PENDING_STATE
28
+ end
29
+
30
+ ##
31
+ # Checks if the change operation is done
32
+ #
33
+ # @return [Boolean] True if the change operation is done; False otherwise
34
+ def ready?
35
+ self.status == DONE_STATE
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,52 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/google/models/dns/zone'
3
+
4
+ module Fog
5
+ module DNS
6
+ class Google
7
+ class Changes < Fog::Collection
8
+ model Fog::DNS::Google::Change
9
+
10
+ attribute :zone
11
+
12
+ ##
13
+ # Enumerates the list of Changes
14
+ #
15
+ # @return [Array<Fog::DNS::Google::Change>] List of Changes resources
16
+ def all
17
+ requires :zone
18
+
19
+ data = service.list_changes(zone.identity).body['changes'] || []
20
+ load(data)
21
+ rescue Fog::Errors::NotFound
22
+ []
23
+ end
24
+
25
+ ##
26
+ # Fetches the representation of an existing Change
27
+ #
28
+ # @param [String] identity Change identity
29
+ # @return [Fog::DNS::Google::Change] Change resource
30
+ def get(identity)
31
+ requires :zone
32
+
33
+ if change = service.get_change(zone.identity, identity).body
34
+ new(change)
35
+ end
36
+ rescue Fog::Errors::NotFound
37
+ nil
38
+ end
39
+
40
+ ##
41
+ # Creates a new instance of a Change
42
+ #
43
+ # @return [Fog::DNS::Google::Change] Change resource
44
+ def new(attributes = {})
45
+ requires :zone
46
+
47
+ super({ :zone => zone }.merge!(attributes))
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,75 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module DNS
5
+ class Google
6
+ ##
7
+ # Represents a Project resource
8
+ #
9
+ # @see https://developers.google.com/cloud-dns/api/v1beta1/projects
10
+ class Project < Fog::Model
11
+ identity :id
12
+
13
+ attribute :kind
14
+ attribute :number
15
+ attribute :quota
16
+
17
+ # These attributes are not available in the representation of a 'Project' returned by the Google DNS API
18
+ attribute :managed_zones
19
+ attribute :rrsets_per_managed_zone
20
+ attribute :resource_records_per_rrset
21
+ attribute :rrset_additions_per_change
22
+ attribute :rrset_deletions_per_change
23
+ attribute :total_rrdatasize_per_change
24
+
25
+ ##
26
+ # Returns the maximum allowed number of managed zones in the project
27
+ #
28
+ # @return [Integer] Maximum allowed number of managed zones in the project
29
+ def managed_zones
30
+ self.quota['managedZones']
31
+ end
32
+
33
+ ##
34
+ # Returns the maximum allowed number of ResourceRecordSets per zone in the project
35
+ #
36
+ # @return [Integer] The maximum allowed number of ResourceRecordSets per zone in the project
37
+ def rrsets_per_managed_zone
38
+ self.quota['rrsetsPerManagedZone']
39
+ end
40
+
41
+ ##
42
+ # Returns the maximum allowed number of resource records per ResourceRecordSet
43
+ #
44
+ # @return [Integer] The maximum allowed number of resource records per ResourceRecordSet
45
+ def resource_records_per_rrset
46
+ self.quota['resourceRecordsPerRrset']
47
+ end
48
+
49
+ ##
50
+ # Returns the maximum allowed number of ResourceRecordSets to add per Changes.create request
51
+ #
52
+ # @return [Integer] The maximum allowed number of ResourceRecordSets to add per Changes.create request
53
+ def rrset_additions_per_change
54
+ self.quota['rrsetAdditionsPerChange']
55
+ end
56
+
57
+ ##
58
+ # Returns the maximum allowed number of ResourceRecordSets to delete per Changes.create request
59
+ #
60
+ # @return [Integer] The maximum allowed number of ResourceRecordSets to delete per Changes.create request
61
+ def rrset_deletions_per_change
62
+ self.quota['rrsetDeletionsPerChange']
63
+ end
64
+
65
+ ##
66
+ # Returns the maximum allowed size in bytes for the rrdata field in one Changes.create request
67
+ #
68
+ # @return [Integer] The maximum allowed size in bytes for the rrdata field in one Changes.create request
69
+ def total_rrdatasize_per_change
70
+ self.quota['totalRrdataSizePerChange']
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,25 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/google/models/dns/project'
3
+
4
+ module Fog
5
+ module DNS
6
+ class Google
7
+ class Projects < Fog::Collection
8
+ model Fog::DNS::Google::Project
9
+
10
+ ##
11
+ # Fetches the representation of an existing Project
12
+ #
13
+ # @param [String] identity Project identity
14
+ # @return [Fog::DNS::Google::Project] Project resource
15
+ def get(identity)
16
+ if project = service.get_project(identity).body
17
+ new(project)
18
+ end
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,112 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module DNS
5
+ class Google
6
+ ##
7
+ # Resource Record Sets resource
8
+ #
9
+ # @see https://cloud.google.com/dns/api/v1beta1/resourceRecordSets
10
+ class Record < Fog::Model
11
+ identity :name
12
+
13
+ attribute :kind
14
+ attribute :type
15
+ attribute :ttl
16
+ attribute :rrdatas
17
+
18
+ ##
19
+ # Deletes a previously created Resource Record Sets resource
20
+ #
21
+ # @param [Boolean] async If the operation must be asyncronous (true by default)
22
+ # @return [Boolean] If the Resource Record Set has been deleted
23
+ def destroy(async = true)
24
+ requires :name, :type, :ttl, :rrdatas
25
+
26
+ data = service.create_change(self.zone.id, [], [resource_record_set_format])
27
+ change = Fog::DNS::Google::Changes.new(:service => service, :zone => zone).get(data.body['id'])
28
+ unless async
29
+ change.wait_for { ready? }
30
+ end
31
+ true
32
+ end
33
+
34
+ ##
35
+ # Modifies a previously created Resource Record Sets resource
36
+ #
37
+ # @param [Hash] new_attributes Resource Record Set new attributes
38
+ # @return [Fog::DNS::Google::Record] Resource Record Sets resource
39
+ def modify(new_attributes)
40
+ requires :name, :type, :ttl, :rrdatas
41
+
42
+ deletions = resource_record_set_format
43
+ merge_attributes(new_attributes)
44
+
45
+ data = service.create_change(self.zone.id, [resource_record_set_format], [deletions])
46
+ change = Fog::DNS::Google::Changes.new(:service => service, :zone => zone).get(data.body['id'])
47
+ async = new_attributes.has_key?(:async) ? new_attributes[:async] : true
48
+ unless async
49
+ change.wait_for { ready? }
50
+ end
51
+ self
52
+ end
53
+
54
+ ##
55
+ # Reloads a Resource Record Sets resource
56
+ #
57
+ # @return [Fog::DNS::Google::Record] Resource Record Sets resource
58
+ def reload
59
+ requires :name, :type
60
+
61
+ data = collection.get(self.name, self.type)
62
+ merge_attributes(data.attributes)
63
+ self
64
+ end
65
+
66
+ ##
67
+ # Creates a new Resource Record Sets resource
68
+ #
69
+ # @return [Fog::DNS::Google::Record] Resource Record Sets resource
70
+ def save
71
+ requires :name, :type, :ttl, :rrdatas
72
+
73
+ data = service.create_change(self.zone.id, [resource_record_set_format], [])
74
+ change = Fog::DNS::Google::Changes.new(:service => service, :zone => zone).get(data.body['id'])
75
+ change.wait_for { !pending? }
76
+ self
77
+ end
78
+
79
+ ##
80
+ # Returns the Managed Zone of the Resource Record Sets resource
81
+ #
82
+ # @return [Fog::DNS::Google::Zone] Managed Zone of the Resource Record Sets resource
83
+ def zone
84
+ @zone
85
+ end
86
+
87
+ private
88
+
89
+ ##
90
+ # Assigns the Managed Zone of the Resource Record Sets resource
91
+ #
92
+ # @param [Fog::DNS::Google::Zone] new_zone Managed Zone of the Resource Record Sets resource
93
+ def zone=(new_zone)
94
+ @zone = new_zone
95
+ end
96
+
97
+ ##
98
+ # Resource Record Sets resource representation
99
+ #
100
+ def resource_record_set_format
101
+ {
102
+ 'kind' => 'dns#resourceRecordSet',
103
+ 'name' => self.name,
104
+ 'type' => self.type,
105
+ 'ttl' => self.ttl,
106
+ 'rrdatas' => self.rrdatas,
107
+ }
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end