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.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rubocop.yml +20 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +17 -0
- data/CONTRIBUTING.md +18 -0
- data/CONTRIBUTORS.md +41 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +55 -0
- data/Rakefile +34 -0
- data/examples/backend_services.rb +22 -0
- data/examples/bootstrap.rb +9 -0
- data/examples/create.rb +49 -0
- data/examples/dns/project.rb +8 -0
- data/examples/dns/zones.rb +43 -0
- data/examples/eric-fail.rb +36 -0
- data/examples/get_list_images.rb +26 -0
- data/examples/get_list_snapshots.rb +18 -0
- data/examples/image_all.rb +6 -0
- data/examples/image_create.rb +17 -0
- data/examples/l7_load_balance.rb +73 -0
- data/examples/launch_micro_instance.rb +29 -0
- data/examples/load-balance.rb +98 -0
- data/examples/metadata.rb +30 -0
- data/examples/monitoring/metric_descriptors.rb +11 -0
- data/examples/monitoring/timeseries_collection.rb +15 -0
- data/examples/monitoring/timeseries_descriptors.rb +15 -0
- data/examples/network.rb +38 -0
- data/examples/precreated_client.rb +14 -0
- data/examples/sql/flags.rb +7 -0
- data/examples/sql/instances.rb +38 -0
- data/examples/sql/operations.rb +20 -0
- data/examples/sql/ssl_certs.rb +28 -0
- data/examples/sql/tiers.rb +7 -0
- data/fog-google.gemspec +37 -0
- data/gemfiles/Gemfile.1.9.2+ +6 -0
- data/gemfiles/Gemfile.1.9.2- +9 -0
- data/lib/fog/bin/google.rb +88 -0
- data/lib/fog/google.rb +226 -0
- data/lib/fog/google/compute.rb +1068 -0
- data/lib/fog/google/dns.rb +96 -0
- data/lib/fog/google/models/compute/address.rb +94 -0
- data/lib/fog/google/models/compute/addresses.rb +40 -0
- data/lib/fog/google/models/compute/backend_service.rb +92 -0
- data/lib/fog/google/models/compute/backend_services.rb +22 -0
- data/lib/fog/google/models/compute/disk.rb +120 -0
- data/lib/fog/google/models/compute/disk_type.rb +28 -0
- data/lib/fog/google/models/compute/disk_types.rb +40 -0
- data/lib/fog/google/models/compute/disks.rb +41 -0
- data/lib/fog/google/models/compute/firewall.rb +46 -0
- data/lib/fog/google/models/compute/firewalls.rb +25 -0
- data/lib/fog/google/models/compute/flavor.rb +33 -0
- data/lib/fog/google/models/compute/flavors.rb +31 -0
- data/lib/fog/google/models/compute/forwarding_rule.rb +86 -0
- data/lib/fog/google/models/compute/forwarding_rules.rb +41 -0
- data/lib/fog/google/models/compute/global_forwarding_rule.rb +86 -0
- data/lib/fog/google/models/compute/global_forwarding_rules.rb +23 -0
- data/lib/fog/google/models/compute/http_health_check.rb +84 -0
- data/lib/fog/google/models/compute/http_health_checks.rb +26 -0
- data/lib/fog/google/models/compute/image.rb +90 -0
- data/lib/fog/google/models/compute/images.rb +73 -0
- data/lib/fog/google/models/compute/network.rb +43 -0
- data/lib/fog/google/models/compute/networks.rb +25 -0
- data/lib/fog/google/models/compute/operation.rb +75 -0
- data/lib/fog/google/models/compute/operations.rb +37 -0
- data/lib/fog/google/models/compute/project.rb +30 -0
- data/lib/fog/google/models/compute/projects.rb +20 -0
- data/lib/fog/google/models/compute/region.rb +32 -0
- data/lib/fog/google/models/compute/regions.rb +25 -0
- data/lib/fog/google/models/compute/resource_view.rb +116 -0
- data/lib/fog/google/models/compute/resource_views.rb +57 -0
- data/lib/fog/google/models/compute/route.rb +50 -0
- data/lib/fog/google/models/compute/routes.rb +25 -0
- data/lib/fog/google/models/compute/server.rb +258 -0
- data/lib/fog/google/models/compute/servers.rb +80 -0
- data/lib/fog/google/models/compute/snapshot.rb +48 -0
- data/lib/fog/google/models/compute/snapshots.rb +26 -0
- data/lib/fog/google/models/compute/target_http_proxies.rb +22 -0
- data/lib/fog/google/models/compute/target_http_proxy.rb +75 -0
- data/lib/fog/google/models/compute/target_instance.rb +74 -0
- data/lib/fog/google/models/compute/target_instances.rb +28 -0
- data/lib/fog/google/models/compute/target_pool.rb +113 -0
- data/lib/fog/google/models/compute/target_pools.rb +41 -0
- data/lib/fog/google/models/compute/url_map.rb +95 -0
- data/lib/fog/google/models/compute/url_maps.rb +22 -0
- data/lib/fog/google/models/compute/zone.rb +23 -0
- data/lib/fog/google/models/compute/zones.rb +24 -0
- data/lib/fog/google/models/dns/change.rb +40 -0
- data/lib/fog/google/models/dns/changes.rb +52 -0
- data/lib/fog/google/models/dns/project.rb +75 -0
- data/lib/fog/google/models/dns/projects.rb +25 -0
- data/lib/fog/google/models/dns/record.rb +112 -0
- data/lib/fog/google/models/dns/records.rb +52 -0
- data/lib/fog/google/models/dns/zone.rb +74 -0
- data/lib/fog/google/models/dns/zones.rb +34 -0
- data/lib/fog/google/models/monitoring/metric_descriptor.rb +20 -0
- data/lib/fog/google/models/monitoring/metric_descriptors.rb +28 -0
- data/lib/fog/google/models/monitoring/timeseries.rb +17 -0
- data/lib/fog/google/models/monitoring/timeseries_collection.rb +31 -0
- data/lib/fog/google/models/monitoring/timeseries_descriptor.rb +20 -0
- data/lib/fog/google/models/monitoring/timeseries_descriptors.rb +31 -0
- data/lib/fog/google/models/sql/backup_run.rb +34 -0
- data/lib/fog/google/models/sql/backup_runs.rb +38 -0
- data/lib/fog/google/models/sql/flag.rb +22 -0
- data/lib/fog/google/models/sql/flags.rb +21 -0
- data/lib/fog/google/models/sql/instance.rb +353 -0
- data/lib/fog/google/models/sql/instances.rb +39 -0
- data/lib/fog/google/models/sql/operation.rb +61 -0
- data/lib/fog/google/models/sql/operations.rb +49 -0
- data/lib/fog/google/models/sql/ssl_cert.rb +73 -0
- data/lib/fog/google/models/sql/ssl_certs.rb +49 -0
- data/lib/fog/google/models/sql/tier.rb +20 -0
- data/lib/fog/google/models/sql/tiers.rb +21 -0
- data/lib/fog/google/models/storage/directories.rb +39 -0
- data/lib/fog/google/models/storage/directory.rb +74 -0
- data/lib/fog/google/models/storage/file.rb +144 -0
- data/lib/fog/google/models/storage/files.rb +104 -0
- data/lib/fog/google/monitoring.rb +87 -0
- data/lib/fog/google/parsers/storage/access_control_list.rb +44 -0
- data/lib/fog/google/parsers/storage/copy_object.rb +18 -0
- data/lib/fog/google/parsers/storage/get_bucket.rb +58 -0
- data/lib/fog/google/parsers/storage/get_bucket_logging.rb +36 -0
- data/lib/fog/google/parsers/storage/get_bucket_object_versions.rb +84 -0
- data/lib/fog/google/parsers/storage/get_bucket_versioning.rb +20 -0
- data/lib/fog/google/parsers/storage/get_request_payment.rb +16 -0
- data/lib/fog/google/parsers/storage/get_service.rb +28 -0
- data/lib/fog/google/requests/compute/add_backend_service_backends.rb +29 -0
- data/lib/fog/google/requests/compute/add_region_view_resources.rb +27 -0
- data/lib/fog/google/requests/compute/add_server_access_config.rb +32 -0
- data/lib/fog/google/requests/compute/add_target_pool_health_checks.rb +27 -0
- data/lib/fog/google/requests/compute/add_target_pool_instances.rb +27 -0
- data/lib/fog/google/requests/compute/add_url_map_host_rules.rb +25 -0
- data/lib/fog/google/requests/compute/add_url_map_path_matchers.rb +29 -0
- data/lib/fog/google/requests/compute/add_zone_view_resources.rb +27 -0
- data/lib/fog/google/requests/compute/attach_disk.rb +34 -0
- data/lib/fog/google/requests/compute/delete_address.rb +24 -0
- data/lib/fog/google/requests/compute/delete_backend_service.rb +43 -0
- data/lib/fog/google/requests/compute/delete_disk.rb +48 -0
- data/lib/fog/google/requests/compute/delete_firewall.rb +23 -0
- data/lib/fog/google/requests/compute/delete_forwarding_rule.rb +49 -0
- data/lib/fog/google/requests/compute/delete_global_forwarding_rule.rb +48 -0
- data/lib/fog/google/requests/compute/delete_global_operation.rb +25 -0
- data/lib/fog/google/requests/compute/delete_http_health_check.rb +41 -0
- data/lib/fog/google/requests/compute/delete_image.rb +42 -0
- data/lib/fog/google/requests/compute/delete_network.rb +23 -0
- data/lib/fog/google/requests/compute/delete_region_operation.rb +29 -0
- data/lib/fog/google/requests/compute/delete_region_view.rb +24 -0
- data/lib/fog/google/requests/compute/delete_route.rb +23 -0
- data/lib/fog/google/requests/compute/delete_server.rb +69 -0
- data/lib/fog/google/requests/compute/delete_server_access_config.rb +26 -0
- data/lib/fog/google/requests/compute/delete_snapshot.rb +23 -0
- data/lib/fog/google/requests/compute/delete_target_http_proxy.rb +43 -0
- data/lib/fog/google/requests/compute/delete_target_instance.rb +48 -0
- data/lib/fog/google/requests/compute/delete_target_pool.rb +49 -0
- data/lib/fog/google/requests/compute/delete_url_map.rb +43 -0
- data/lib/fog/google/requests/compute/delete_zone_operation.rb +29 -0
- data/lib/fog/google/requests/compute/delete_zone_view.rb +24 -0
- data/lib/fog/google/requests/compute/detach_disk.rb +25 -0
- data/lib/fog/google/requests/compute/get_address.rb +24 -0
- data/lib/fog/google/requests/compute/get_backend_service.rb +26 -0
- data/lib/fog/google/requests/compute/get_backend_service_health.rb +27 -0
- data/lib/fog/google/requests/compute/get_backend_services.rb +23 -0
- data/lib/fog/google/requests/compute/get_disk.rb +52 -0
- data/lib/fog/google/requests/compute/get_disk_type.rb +42 -0
- data/lib/fog/google/requests/compute/get_firewall.rb +23 -0
- data/lib/fog/google/requests/compute/get_forwarding_rule.rb +46 -0
- data/lib/fog/google/requests/compute/get_global_forwarding_rule.rb +32 -0
- data/lib/fog/google/requests/compute/get_global_operation.rb +50 -0
- data/lib/fog/google/requests/compute/get_http_health_check.rb +39 -0
- data/lib/fog/google/requests/compute/get_image.rb +36 -0
- data/lib/fog/google/requests/compute/get_machine_type.rb +43 -0
- data/lib/fog/google/requests/compute/get_network.rb +23 -0
- data/lib/fog/google/requests/compute/get_project.rb +22 -0
- data/lib/fog/google/requests/compute/get_region.rb +37 -0
- data/lib/fog/google/requests/compute/get_region_operation.rb +55 -0
- data/lib/fog/google/requests/compute/get_region_view.rb +24 -0
- data/lib/fog/google/requests/compute/get_route.rb +23 -0
- data/lib/fog/google/requests/compute/get_server.rb +75 -0
- data/lib/fog/google/requests/compute/get_server_serial_port_output.rb +24 -0
- data/lib/fog/google/requests/compute/get_snapshot.rb +27 -0
- data/lib/fog/google/requests/compute/get_target_http_proxy.rb +27 -0
- data/lib/fog/google/requests/compute/get_target_instance.rb +32 -0
- data/lib/fog/google/requests/compute/get_target_pool.rb +40 -0
- data/lib/fog/google/requests/compute/get_target_pool_health.rb +29 -0
- data/lib/fog/google/requests/compute/get_url_map.rb +27 -0
- data/lib/fog/google/requests/compute/get_zone.rb +36 -0
- data/lib/fog/google/requests/compute/get_zone_operation.rb +55 -0
- data/lib/fog/google/requests/compute/get_zone_view.rb +24 -0
- data/lib/fog/google/requests/compute/insert_address.rb +25 -0
- data/lib/fog/google/requests/compute/insert_backend_service.rb +63 -0
- data/lib/fog/google/requests/compute/insert_disk.rb +113 -0
- data/lib/fog/google/requests/compute/insert_firewall.rb +43 -0
- data/lib/fog/google/requests/compute/insert_forwarding_rule.rb +60 -0
- data/lib/fog/google/requests/compute/insert_global_forwarding_rule.rb +56 -0
- data/lib/fog/google/requests/compute/insert_http_health_check.rb +59 -0
- data/lib/fog/google/requests/compute/insert_image.rb +64 -0
- data/lib/fog/google/requests/compute/insert_network.rb +29 -0
- data/lib/fog/google/requests/compute/insert_region_view.rb +25 -0
- data/lib/fog/google/requests/compute/insert_route.rb +35 -0
- data/lib/fog/google/requests/compute/insert_server.rb +191 -0
- data/lib/fog/google/requests/compute/insert_snapshot.rb +40 -0
- data/lib/fog/google/requests/compute/insert_target_http_proxy.rb +52 -0
- data/lib/fog/google/requests/compute/insert_target_instance.rb +55 -0
- data/lib/fog/google/requests/compute/insert_target_pool.rb +58 -0
- data/lib/fog/google/requests/compute/insert_url_map.rb +55 -0
- data/lib/fog/google/requests/compute/insert_zone_view.rb +27 -0
- data/lib/fog/google/requests/compute/list_addresses.rb +23 -0
- data/lib/fog/google/requests/compute/list_aggregated_addresses.rb +23 -0
- data/lib/fog/google/requests/compute/list_aggregated_disk_types.rb +40 -0
- data/lib/fog/google/requests/compute/list_aggregated_disks.rb +40 -0
- data/lib/fog/google/requests/compute/list_aggregated_machine_types.rb +22 -0
- data/lib/fog/google/requests/compute/list_aggregated_servers.rb +40 -0
- data/lib/fog/google/requests/compute/list_backend_services.rb +29 -0
- data/lib/fog/google/requests/compute/list_disk_types.rb +46 -0
- data/lib/fog/google/requests/compute/list_disks.rb +29 -0
- data/lib/fog/google/requests/compute/list_firewalls.rb +22 -0
- data/lib/fog/google/requests/compute/list_forwarding_rules.rb +29 -0
- data/lib/fog/google/requests/compute/list_global_forwarding_rules.rb +30 -0
- data/lib/fog/google/requests/compute/list_global_operations.rb +24 -0
- data/lib/fog/google/requests/compute/list_http_health_checks.rb +29 -0
- data/lib/fog/google/requests/compute/list_images.rb +29 -0
- data/lib/fog/google/requests/compute/list_machine_types.rb +30 -0
- data/lib/fog/google/requests/compute/list_networks.rb +22 -0
- data/lib/fog/google/requests/compute/list_region_operations.rb +25 -0
- data/lib/fog/google/requests/compute/list_region_view_resources.rb +25 -0
- data/lib/fog/google/requests/compute/list_region_views.rb +23 -0
- data/lib/fog/google/requests/compute/list_regions.rb +85 -0
- data/lib/fog/google/requests/compute/list_routes.rb +22 -0
- data/lib/fog/google/requests/compute/list_servers.rb +31 -0
- data/lib/fog/google/requests/compute/list_snapshots.rb +23 -0
- data/lib/fog/google/requests/compute/list_target_http_proxies.rb +30 -0
- data/lib/fog/google/requests/compute/list_target_instances.rb +30 -0
- data/lib/fog/google/requests/compute/list_target_pools.rb +29 -0
- data/lib/fog/google/requests/compute/list_url_maps.rb +29 -0
- data/lib/fog/google/requests/compute/list_zone_operations.rb +25 -0
- data/lib/fog/google/requests/compute/list_zone_view_resources.rb +25 -0
- data/lib/fog/google/requests/compute/list_zone_views.rb +23 -0
- data/lib/fog/google/requests/compute/list_zones.rb +28 -0
- data/lib/fog/google/requests/compute/remove_target_pool_health_checks.rb +27 -0
- data/lib/fog/google/requests/compute/remove_target_pool_instance.rb +27 -0
- data/lib/fog/google/requests/compute/remove_target_pool_instances.rb +27 -0
- data/lib/fog/google/requests/compute/reset_server.rb +24 -0
- data/lib/fog/google/requests/compute/set_common_instance_metadata.rb +26 -0
- data/lib/fog/google/requests/compute/set_forwarding_rule_target.rb +27 -0
- data/lib/fog/google/requests/compute/set_global_forwarding_rule_target.rb +27 -0
- data/lib/fog/google/requests/compute/set_metadata.rb +39 -0
- data/lib/fog/google/requests/compute/set_server_disk_auto_delete.rb +26 -0
- data/lib/fog/google/requests/compute/set_server_scheduling.rb +29 -0
- data/lib/fog/google/requests/compute/set_tags.rb +24 -0
- data/lib/fog/google/requests/compute/set_target_http_proxy_url_map.rb +27 -0
- data/lib/fog/google/requests/compute/start_server.rb +24 -0
- data/lib/fog/google/requests/compute/stop_server.rb +24 -0
- data/lib/fog/google/requests/compute/update_url_map.rb +39 -0
- data/lib/fog/google/requests/compute/validate_url_map.rb +24 -0
- data/lib/fog/google/requests/dns/create_change.rb +64 -0
- data/lib/fog/google/requests/dns/create_managed_zone.rb +82 -0
- data/lib/fog/google/requests/dns/delete_managed_zone.rb +35 -0
- data/lib/fog/google/requests/dns/get_change.rb +42 -0
- data/lib/fog/google/requests/dns/get_managed_zone.rb +37 -0
- data/lib/fog/google/requests/dns/get_project.rb +42 -0
- data/lib/fog/google/requests/dns/list_changes.rb +41 -0
- data/lib/fog/google/requests/dns/list_managed_zones.rb +31 -0
- data/lib/fog/google/requests/dns/list_resource_record_sets.rb +50 -0
- data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +191 -0
- data/lib/fog/google/requests/monitoring/list_timeseries.rb +68 -0
- data/lib/fog/google/requests/monitoring/list_timeseries_descriptors.rb +87 -0
- data/lib/fog/google/requests/sql/clone_instance.rb +84 -0
- data/lib/fog/google/requests/sql/delete_instance.rb +67 -0
- data/lib/fog/google/requests/sql/delete_ssl_cert.rb +68 -0
- data/lib/fog/google/requests/sql/export_instance.rb +56 -0
- data/lib/fog/google/requests/sql/get_backup_run.rb +30 -0
- data/lib/fog/google/requests/sql/get_instance.rb +48 -0
- data/lib/fog/google/requests/sql/get_operation.rb +66 -0
- data/lib/fog/google/requests/sql/get_ssl_cert.rb +66 -0
- data/lib/fog/google/requests/sql/import_instance.rb +55 -0
- data/lib/fog/google/requests/sql/insert_instance.rb +165 -0
- data/lib/fog/google/requests/sql/insert_ssl_cert.rb +80 -0
- data/lib/fog/google/requests/sql/list_backup_runs.rb +30 -0
- data/lib/fog/google/requests/sql/list_flags.rb +143 -0
- data/lib/fog/google/requests/sql/list_instances.rb +32 -0
- data/lib/fog/google/requests/sql/list_operations.rb +52 -0
- data/lib/fog/google/requests/sql/list_ssl_certs.rb +51 -0
- data/lib/fog/google/requests/sql/list_tiers.rb +82 -0
- data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +49 -0
- data/lib/fog/google/requests/sql/restart_instance.rb +47 -0
- data/lib/fog/google/requests/sql/restore_instance_backup.rb +30 -0
- data/lib/fog/google/requests/sql/set_instance_root_password.rb +54 -0
- data/lib/fog/google/requests/sql/update_instance.rb +132 -0
- data/lib/fog/google/requests/storage/copy_object.rb +68 -0
- data/lib/fog/google/requests/storage/delete_bucket.rb +41 -0
- data/lib/fog/google/requests/storage/delete_object.rb +46 -0
- data/lib/fog/google/requests/storage/get_bucket.rb +106 -0
- data/lib/fog/google/requests/storage/get_bucket_acl.rb +59 -0
- data/lib/fog/google/requests/storage/get_object.rb +108 -0
- data/lib/fog/google/requests/storage/get_object_acl.rb +70 -0
- data/lib/fog/google/requests/storage/get_object_http_url.rb +44 -0
- data/lib/fog/google/requests/storage/get_object_https_url.rb +44 -0
- data/lib/fog/google/requests/storage/get_object_torrent.rb +45 -0
- data/lib/fog/google/requests/storage/get_object_url.rb +33 -0
- data/lib/fog/google/requests/storage/get_service.rb +48 -0
- data/lib/fog/google/requests/storage/head_object.rb +60 -0
- data/lib/fog/google/requests/storage/put_bucket.rb +71 -0
- data/lib/fog/google/requests/storage/put_bucket_acl.rb +58 -0
- data/lib/fog/google/requests/storage/put_object.rb +89 -0
- data/lib/fog/google/requests/storage/put_object_acl.rb +51 -0
- data/lib/fog/google/requests/storage/put_object_url.rb +50 -0
- data/lib/fog/google/sql.rb +130 -0
- data/lib/fog/google/storage.rb +298 -0
- data/lib/fog/google/version.rb +5 -0
- data/spec/minitest_helper.rb +31 -0
- data/tests/credentials_tests.rb +73 -0
- data/tests/helper.rb +126 -0
- data/tests/helpers/collection_helper.rb +97 -0
- data/tests/helpers/compute/flavors_helper.rb +32 -0
- data/tests/helpers/compute/server_helper.rb +25 -0
- data/tests/helpers/compute/servers_helper.rb +10 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/formats_helper_tests.rb +110 -0
- data/tests/helpers/mock_helper.rb +18 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/lorem.txt +1 -0
- data/tests/models/compute/backend_service_tests.rb +6 -0
- data/tests/models/compute/backend_services_tests.rb +8 -0
- data/tests/models/compute/disk_tests.rb +9 -0
- data/tests/models/compute/disk_types_tests.rb +22 -0
- data/tests/models/compute/disks_tests.rb +9 -0
- data/tests/models/compute/forwarding_rule_tests.rb +8 -0
- data/tests/models/compute/forwarding_rules_tests.rb +8 -0
- data/tests/models/compute/global_forwarding_rule_tests.rb +7 -0
- data/tests/models/compute/global_forwarding_rules_tests.rb +7 -0
- data/tests/models/compute/http_health_check_tests.rb +5 -0
- data/tests/models/compute/http_health_checks_tests.rb +5 -0
- data/tests/models/compute/image_tests.rb +6 -0
- data/tests/models/compute/images_tests.rb +6 -0
- data/tests/models/compute/region_tests.rb +10 -0
- data/tests/models/compute/regions_tests.rb +19 -0
- data/tests/models/compute/server_tests.rb +37 -0
- data/tests/models/compute/servers_tests.rb +14 -0
- data/tests/models/compute/target_http_proxies_tests.rb +7 -0
- data/tests/models/compute/target_http_proxy_test.rb +6 -0
- data/tests/models/compute/target_instance_tests.rb +7 -0
- data/tests/models/compute/target_instances_tests.rb +7 -0
- data/tests/models/compute/target_pool_tests.rb +12 -0
- data/tests/models/compute/target_pools_tests.rb +11 -0
- data/tests/models/compute/url_map_tests.rb +6 -0
- data/tests/models/compute/url_maps_tests.rb +7 -0
- data/tests/models/dns/change_tests.rb +28 -0
- data/tests/models/dns/changes_tests.rb +36 -0
- data/tests/models/dns/projects_tests.rb +12 -0
- data/tests/models/dns/record_tests.rb +42 -0
- data/tests/models/dns/records_tests.rb +36 -0
- data/tests/models/dns/zone_tests.rb +28 -0
- data/tests/models/dns/zones_tests.rb +14 -0
- data/tests/models/monitoring/metric_descriptors_tests.rb +12 -0
- data/tests/models/monitoring/timeseries_collection_tests.rb +12 -0
- data/tests/models/monitoring/timeseries_descriptors_tests.rb +13 -0
- data/tests/models/sql/flags_tests.rb +12 -0
- data/tests/models/sql/instance_tests.rb +56 -0
- data/tests/models/sql/instances_tests.rb +32 -0
- data/tests/models/sql/operation_tests.rb +25 -0
- data/tests/models/sql/operations_tests.rb +38 -0
- data/tests/models/sql/ssl_cert_tests.rb +24 -0
- data/tests/models/sql/ssl_certs_tests.rb +39 -0
- data/tests/models/sql/tiers_tests.rb +12 -0
- data/tests/requests/compute/backend_service_tests.rb +83 -0
- data/tests/requests/compute/disk_tests.rb +74 -0
- data/tests/requests/compute/disk_type_tests.rb +45 -0
- data/tests/requests/compute/firewall_tests.rb +88 -0
- data/tests/requests/compute/forwarding_rules_tests.rb +83 -0
- data/tests/requests/compute/global_forwarding_rules_tests.rb +83 -0
- data/tests/requests/compute/http_health_checks_tests.rb +83 -0
- data/tests/requests/compute/image_tests.rb +83 -0
- data/tests/requests/compute/network_tests.rb +75 -0
- data/tests/requests/compute/operation_tests.rb +20 -0
- data/tests/requests/compute/region_tests.rb +39 -0
- data/tests/requests/compute/server_tests.rb +84 -0
- data/tests/requests/compute/target_http_proxies_test.rb +79 -0
- data/tests/requests/compute/target_instances_tests.rb +83 -0
- data/tests/requests/compute/target_pools_tests.rb +82 -0
- data/tests/requests/compute/url_maps_tests.rb +82 -0
- data/tests/requests/compute/zone_tests.rb +37 -0
- data/tests/requests/dns/change_tests.rb +86 -0
- data/tests/requests/dns/managed_zone_tests.rb +66 -0
- data/tests/requests/dns/project_tests.rb +29 -0
- data/tests/requests/dns/record_tests.rb +49 -0
- data/tests/requests/monitoring/metric_descriptor_tests.rb +25 -0
- data/tests/requests/monitoring/timeseries_collection_tests.rb +25 -0
- data/tests/requests/monitoring/timeseries_descriptor_tests.rb +26 -0
- data/tests/requests/sql/flag_tests.rb +27 -0
- data/tests/requests/sql/instance_tests.rb +129 -0
- data/tests/requests/sql/operation_tests.rb +42 -0
- data/tests/requests/sql/ssl_cert_tests.rb +61 -0
- data/tests/requests/sql/tier_tests.rb +25 -0
- data/tests/requests/storage/bucket_tests.rb +77 -0
- data/tests/requests/storage/object_tests.rb +84 -0
- metadata +625 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/dns/record'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module DNS
|
|
6
|
+
class Google
|
|
7
|
+
class Records < Fog::Collection
|
|
8
|
+
model Fog::DNS::Google::Record
|
|
9
|
+
|
|
10
|
+
attribute :zone
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# Enumerates Resource Record Sets that have been created but not yet deleted
|
|
14
|
+
#
|
|
15
|
+
# @return [Array<Fog::DNS::Google::Record>] List of Resource Record Sets resources
|
|
16
|
+
def all
|
|
17
|
+
requires :zone
|
|
18
|
+
|
|
19
|
+
data = service.list_resource_record_sets(zone.identity).body['rrsets'] || []
|
|
20
|
+
load(data)
|
|
21
|
+
rescue Fog::Errors::NotFound
|
|
22
|
+
[]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
##
|
|
26
|
+
# Fetches the representation of an existing Resource Record Set
|
|
27
|
+
#
|
|
28
|
+
# @param [String] name Resource Record Set name
|
|
29
|
+
# @param [String] type Resource Record Set type
|
|
30
|
+
# @return [Fog::DNS::Google::Record] Resource Record Set resource
|
|
31
|
+
def get(name, type)
|
|
32
|
+
requires :zone
|
|
33
|
+
|
|
34
|
+
records = service.list_resource_record_sets(zone.identity, { :name => name, :type => type }).body['rrsets'] || []
|
|
35
|
+
records.any? ? new(records.first) : nil
|
|
36
|
+
rescue Fog::Errors::NotFound
|
|
37
|
+
nil
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
##
|
|
41
|
+
# Creates a new instance of a Resource Record Set
|
|
42
|
+
#
|
|
43
|
+
# @return [Fog::DNS::Google::Record] Resource Record Set 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,74 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module DNS
|
|
5
|
+
class Google
|
|
6
|
+
##
|
|
7
|
+
# Managed Zone resource
|
|
8
|
+
#
|
|
9
|
+
# @see https://developers.google.com/cloud-dns/api/v1beta1/managedZones
|
|
10
|
+
class Zone < Fog::Model
|
|
11
|
+
identity :id
|
|
12
|
+
|
|
13
|
+
attribute :creation_time, :aliases => 'creationTime'
|
|
14
|
+
attribute :description
|
|
15
|
+
attribute :domain, :aliases => 'dnsName'
|
|
16
|
+
attribute :kind
|
|
17
|
+
attribute :name
|
|
18
|
+
attribute :nameservers, :aliases => 'nameServers'
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Enumerates the list of Changes for the Managed Zone
|
|
22
|
+
#
|
|
23
|
+
# @return Array<Fog::DNS::Google::Change>] List of Changes for the Managed Zone
|
|
24
|
+
def changes
|
|
25
|
+
@changes = begin
|
|
26
|
+
Fog::DNS::Google::Changes.new(
|
|
27
|
+
:service => service,
|
|
28
|
+
:zone => self
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# Deletes a previously created Managed Zone
|
|
35
|
+
#
|
|
36
|
+
# @return [Boolean] If the Managed Zone has been deleted
|
|
37
|
+
def destroy
|
|
38
|
+
requires :identity
|
|
39
|
+
|
|
40
|
+
service.delete_managed_zone(self.identity)
|
|
41
|
+
true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# Enumerates the list of Resource Record Sets for the Managed Zone
|
|
46
|
+
#
|
|
47
|
+
# @return Array<Fog::DNS::Google::Record>] List of Resource Record Sets for the Managed Zone
|
|
48
|
+
def records
|
|
49
|
+
@records = begin
|
|
50
|
+
Fog::DNS::Google::Records.new(
|
|
51
|
+
:service => service,
|
|
52
|
+
:zone => self
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
##
|
|
58
|
+
# Creates a new Managed Zone
|
|
59
|
+
#
|
|
60
|
+
# @return [Fog::DNS::Google::Zone] Managed Zone
|
|
61
|
+
# @raise [Fog::Errors::Error] If Managed Zone already exists
|
|
62
|
+
def save
|
|
63
|
+
requires :name, :domain, :description
|
|
64
|
+
|
|
65
|
+
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
|
|
66
|
+
|
|
67
|
+
data = service.create_managed_zone(self.name, self.domain, self.description)
|
|
68
|
+
merge_attributes(data.body)
|
|
69
|
+
self
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/dns/zone'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module DNS
|
|
6
|
+
class Google
|
|
7
|
+
class Zones < Fog::Collection
|
|
8
|
+
model Fog::DNS::Google::Zone
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Enumerates Managed Zones that have been created but not yet deleted
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<Fog::DNS::Google::Zone>] List of Managed Zone resources
|
|
14
|
+
def all
|
|
15
|
+
data = service.list_managed_zones.body['managedZones'] || []
|
|
16
|
+
load(data)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Fetches the representation of an existing Managed Zone
|
|
21
|
+
#
|
|
22
|
+
# @param [String] name_or_id Managed Zone name or identity
|
|
23
|
+
# @return [Fog::DNS::Google::Zone] Managed Zone resource
|
|
24
|
+
def get(name_or_id)
|
|
25
|
+
if zone = service.get_managed_zone(name_or_id).body
|
|
26
|
+
new(zone)
|
|
27
|
+
end
|
|
28
|
+
rescue Fog::Errors::NotFound
|
|
29
|
+
nil
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Monitoring
|
|
6
|
+
##
|
|
7
|
+
# A metricDescriptor defines the name, label keys, and data type of a particular metric.
|
|
8
|
+
#
|
|
9
|
+
# @see https://developers.google.com/cloud-monitoring/v2beta1/metricDescriptors
|
|
10
|
+
class MetricDescriptor < Fog::Model
|
|
11
|
+
identity :name
|
|
12
|
+
|
|
13
|
+
attribute :description
|
|
14
|
+
attribute :labels
|
|
15
|
+
attribute :project
|
|
16
|
+
attribute :type_descriptor, :aliases => 'typeDescriptor'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/monitoring/metric_descriptor'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Monitoring
|
|
7
|
+
class MetricDescriptors < Fog::Collection
|
|
8
|
+
model Fog::Google::Monitoring::MetricDescriptor
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Lists all Metric Descriptors.
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options Optional query parameters.
|
|
14
|
+
# @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
|
|
15
|
+
# @option options [String] page_token The pagination token, which is used to page through large result sets.
|
|
16
|
+
# @option options [String] query The query used to search against existing metrics. Separate keywords with a space;
|
|
17
|
+
# the service joins all keywords with AND, meaning that all keywords must match for a metric to be returned.
|
|
18
|
+
# If this field is omitted, all metrics are returned. If an empty string is passed with this field,
|
|
19
|
+
# no metrics are returned.
|
|
20
|
+
# @return [Array<Fog::Google::Monitoring::MetricDescriptor>] List of Metric Descriptors.
|
|
21
|
+
def all(options = {})
|
|
22
|
+
data = service.list_metric_descriptors(options).body['metrics'] || []
|
|
23
|
+
load(data)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Monitoring
|
|
6
|
+
##
|
|
7
|
+
# A time series is a collection of data points that represents the value of a metric of a project over time.
|
|
8
|
+
#
|
|
9
|
+
# @see https://developers.google.com/cloud-monitoring/v2beta1/timeseries
|
|
10
|
+
class Timeseries < Fog::Model
|
|
11
|
+
identity :time_series_desc, :aliases => 'timeseriesDesc'
|
|
12
|
+
|
|
13
|
+
attribute :points
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/monitoring/timeseries'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Monitoring
|
|
7
|
+
class TimeseriesCollection < Fog::Collection
|
|
8
|
+
model Fog::Google::Monitoring::Timeseries
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Lists all Timeseries.
|
|
12
|
+
#
|
|
13
|
+
# @param [String] metric The name of the metric (Metric names are protocol-free URLs).
|
|
14
|
+
# @param [String] youngest End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.
|
|
15
|
+
# @param [Hash] options Optional query parameters.
|
|
16
|
+
# @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
|
|
17
|
+
# @option options [String] labels A collection of labels for the matching time series.
|
|
18
|
+
# @option options [String] oldest Start of the time interval (exclusive), which is expressed as an RFC 3339
|
|
19
|
+
# timestamp.
|
|
20
|
+
# @options options [String] page_token The pagination token, which is used to page through large result sets.
|
|
21
|
+
# @options options [String] timespan Length of the time interval to query, which is an alternative way to
|
|
22
|
+
# declare the interval.
|
|
23
|
+
# @return [Array<Fog::Google::Monitoring::Timeseries>] List of Timeseries.
|
|
24
|
+
def all(metric, youngest, options = {})
|
|
25
|
+
data = service.list_timeseries(metric, youngest, options).body['timeseries'] || []
|
|
26
|
+
load(data)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Monitoring
|
|
6
|
+
##
|
|
7
|
+
# A time series is a collection of data points that represents the value of a metric of a project over time.
|
|
8
|
+
# The metric is described by the time-series descriptor. Each time-series descriptor is uniquely identified by
|
|
9
|
+
# its metric name and a set of labels.
|
|
10
|
+
#
|
|
11
|
+
# @see https://developers.google.com/cloud-monitoring/v2beta1/timeseriesDescriptors
|
|
12
|
+
class TimeseriesDescriptor < Fog::Model
|
|
13
|
+
identity :metric
|
|
14
|
+
|
|
15
|
+
attribute :labels
|
|
16
|
+
attribute :project
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/monitoring/timeseries_descriptor'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Monitoring
|
|
7
|
+
class TimeseriesDescriptors < Fog::Collection
|
|
8
|
+
model Fog::Google::Monitoring::TimeseriesDescriptor
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Lists all Timeseries Descriptors.
|
|
12
|
+
#
|
|
13
|
+
# @param [String] metric The name of the metric (Metric names are protocol-free URLs).
|
|
14
|
+
# @param [String] youngest End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.
|
|
15
|
+
# @param [Hash] options Optional query parameters.
|
|
16
|
+
# @option options [String] count Maximum number of time series descriptors per page. Used for pagination.
|
|
17
|
+
# @option options [String] labels A collection of labels for the matching time series.
|
|
18
|
+
# @option options [String] oldest Start of the time interval (exclusive), which is expressed as an RFC 3339
|
|
19
|
+
# timestamp.
|
|
20
|
+
# @options options [String] page_token The pagination token, which is used to page through large result sets.
|
|
21
|
+
# @options options [String] timespan Length of the time interval to query, which is an alternative way to
|
|
22
|
+
# declare the interval.
|
|
23
|
+
# @return [Array<Fog::Google::Monitoring::TimeseriesDescriptor>] List of Timeseries Descriptors.
|
|
24
|
+
def all(metric, youngest, options = {})
|
|
25
|
+
data = service.list_timeseries_descriptors(metric, youngest, options).body['timeseries'] || []
|
|
26
|
+
load(data)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class SQL
|
|
6
|
+
##
|
|
7
|
+
# A database instance backup run resource
|
|
8
|
+
#
|
|
9
|
+
# @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns
|
|
10
|
+
class BackupRun < Fog::Model
|
|
11
|
+
identity :backup_configuration, :aliases => 'backupConfiguration'
|
|
12
|
+
|
|
13
|
+
attribute :due_time, :aliases => 'dueTime'
|
|
14
|
+
attribute :end_time, :aliases => 'endTime'
|
|
15
|
+
attribute :enqueued_time, :aliases => 'enqueuedTime'
|
|
16
|
+
attribute :error
|
|
17
|
+
attribute :instance
|
|
18
|
+
attribute :kind
|
|
19
|
+
attribute :start_time, :aliases => 'startTime'
|
|
20
|
+
attribute :status
|
|
21
|
+
|
|
22
|
+
DONE_STATE = 'DONE'
|
|
23
|
+
|
|
24
|
+
##
|
|
25
|
+
# Checks if the instance backup run is done
|
|
26
|
+
#
|
|
27
|
+
# @return [Boolean] True if the backup run is done; False otherwise
|
|
28
|
+
def ready?
|
|
29
|
+
self.state == DONE_STATE
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/sql/backup_run'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class SQL
|
|
7
|
+
class BackupRuns < Fog::Collection
|
|
8
|
+
model Fog::Google::SQL::BackupRun
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Lists all backup runs associated with a given instance and configuration
|
|
12
|
+
#
|
|
13
|
+
# @param [String] instance_id Instance ID
|
|
14
|
+
# @param [String] backup_configuration_id Backup Configuration ID
|
|
15
|
+
# @return [Array<Fog::Google::SQL::BackupRun>] List of Backup run resources
|
|
16
|
+
def all(instance_id, backup_configuration_id)
|
|
17
|
+
data = service.list_backup_runs(instance_id, backup_configuration_id).body['items'] || []
|
|
18
|
+
load(data)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# Retrieves a resource containing information about a backup run
|
|
23
|
+
#
|
|
24
|
+
# @param [String] instance_id Instance ID
|
|
25
|
+
# @param [String] backup_configuration_id Backup Configuration ID
|
|
26
|
+
# @param [String] due_time The time when this run is due to start in RFC 3339 format
|
|
27
|
+
# @return [Fog::Google::SQL::BackupRun] Backup run resource
|
|
28
|
+
def get(instance_id, backup_configuration_id, due_time)
|
|
29
|
+
if backup_run = service.get_backup_run(instance_id, backup_configuration_id, due_time).body
|
|
30
|
+
new(backup_run)
|
|
31
|
+
end
|
|
32
|
+
rescue Fog::Errors::NotFound
|
|
33
|
+
nil
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class SQL
|
|
6
|
+
##
|
|
7
|
+
# A Google Cloud SQL service flag resource
|
|
8
|
+
#
|
|
9
|
+
# @see https://developers.google.com/cloud-sql/docs/admin-api/v1beta3/flags
|
|
10
|
+
class Flag < Fog::Model
|
|
11
|
+
identity :name
|
|
12
|
+
|
|
13
|
+
attribute :allowed_string_values, :aliases => 'allowedStringValues'
|
|
14
|
+
attribute :applies_to, :aliases => 'appliesTo'
|
|
15
|
+
attribute :kind
|
|
16
|
+
attribute :max_value, :aliases => 'maxValue'
|
|
17
|
+
attribute :min_value, :aliases => 'minValue'
|
|
18
|
+
attribute :type
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'fog/core/collection'
|
|
2
|
+
require 'fog/google/models/sql/flag'
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class SQL
|
|
7
|
+
class Flags < Fog::Collection
|
|
8
|
+
model Fog::Google::SQL::Flag
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# List all available database flags
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<Fog::Google::SQL::Flag>] List of flags
|
|
14
|
+
def all
|
|
15
|
+
data = service.list_flags.body['items'] || []
|
|
16
|
+
load(data)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
require 'fog/core/model'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class SQL
|
|
6
|
+
class Instance < Fog::Model
|
|
7
|
+
identity :instance
|
|
8
|
+
|
|
9
|
+
attribute :current_disk_size, :aliases => 'currentDiskSize'
|
|
10
|
+
attribute :database_version, :aliases => 'databaseVersion'
|
|
11
|
+
attribute :etag
|
|
12
|
+
attribute :ip_addresses, :aliases => 'ipAddresses'
|
|
13
|
+
attribute :kind
|
|
14
|
+
attribute :max_disk_size, :aliases => 'maxDiskSize'
|
|
15
|
+
attribute :project
|
|
16
|
+
attribute :region
|
|
17
|
+
attribute :server_ca_cert, :aliases => 'serverCaCert'
|
|
18
|
+
attribute :settings
|
|
19
|
+
attribute :state
|
|
20
|
+
|
|
21
|
+
# These attributes are not available in the representation of an 'Instance' returned by the Google SQL API.
|
|
22
|
+
attribute :activation_policy
|
|
23
|
+
attribute :autorized_gae_applications
|
|
24
|
+
attribute :backup_configuration
|
|
25
|
+
attribute :database_flags
|
|
26
|
+
attribute :ip_configuration_authorized_networks
|
|
27
|
+
attribute :ip_configuration_enabled
|
|
28
|
+
attribute :ip_configuration_require_ssl
|
|
29
|
+
attribute :location_preference_zone_follow_gae_application
|
|
30
|
+
attribute :location_preference_zone
|
|
31
|
+
attribute :pricing_plan
|
|
32
|
+
attribute :replication_type
|
|
33
|
+
attribute :settings_version
|
|
34
|
+
attribute :tier
|
|
35
|
+
|
|
36
|
+
MAINTENANCE_STATE = 'MAINTENANCE'
|
|
37
|
+
PENDING_CREATE_STATE = 'PENDING_CREATE'
|
|
38
|
+
RUNNABLE_STATE = 'RUNNABLE'
|
|
39
|
+
SUSPENDED_STATE = 'SUSPENDED'
|
|
40
|
+
UNKNOWN_STATE = 'UNKNOWN_STATE'
|
|
41
|
+
|
|
42
|
+
##
|
|
43
|
+
# Returns the activation policy for this instance
|
|
44
|
+
#
|
|
45
|
+
# @return [String] The activation policy for this instance
|
|
46
|
+
def activation_policy
|
|
47
|
+
self.settings['activationPolicy']
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
##
|
|
51
|
+
# Returns the AppEngine app ids that can access this instance
|
|
52
|
+
#
|
|
53
|
+
# @return [Array<String>] The AppEngine app ids that can access this instance
|
|
54
|
+
def autorized_gae_applications
|
|
55
|
+
self.settings['authorizedGaeApplications']
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# Returns the daily backup configuration for the instance
|
|
60
|
+
#
|
|
61
|
+
# @return [Array<Hash>] The daily backup configuration for the instance
|
|
62
|
+
def backup_configuration
|
|
63
|
+
self.settings['backupConfiguration']
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
##
|
|
67
|
+
# Creates a Cloud SQL instance as a clone of the source instance
|
|
68
|
+
#
|
|
69
|
+
# @param [String] destination_name Name of the Cloud SQL instance to be created as a clone
|
|
70
|
+
# @param [Hash] options Method options
|
|
71
|
+
# @option options [String] :log_filename Name of the binary log file for a Cloud SQL instance
|
|
72
|
+
# @option options [Integer] :log_position Position (offset) within the binary log file
|
|
73
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
74
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
75
|
+
def clone(destination_name, options = {})
|
|
76
|
+
requires :identity
|
|
77
|
+
|
|
78
|
+
data = service.clone_instance(self.identity, destination_name, options)
|
|
79
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
80
|
+
unless options.fetch(:async, true)
|
|
81
|
+
operation.wait_for { ready? }
|
|
82
|
+
end
|
|
83
|
+
operation
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
##
|
|
87
|
+
# Creates a Cloud SQL instance
|
|
88
|
+
#
|
|
89
|
+
# @return [Fog::Google::SQL::Instance] Instance resource
|
|
90
|
+
def create
|
|
91
|
+
requires :identity
|
|
92
|
+
|
|
93
|
+
data = service.insert_instance(self.identity, self.attributes[:tier], self.attributes)
|
|
94
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
95
|
+
operation.wait_for { !pending? }
|
|
96
|
+
reload
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
##
|
|
100
|
+
# Returns the database flags passed to the instance at startup
|
|
101
|
+
#
|
|
102
|
+
# @return [Array<Hash>] The database flags passed to the instance at startup
|
|
103
|
+
def database_flags
|
|
104
|
+
self.settings['databaseFlags']
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
##
|
|
108
|
+
# Deletes a Cloud SQL instance
|
|
109
|
+
#
|
|
110
|
+
# @param [Hash] options Method options
|
|
111
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
112
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
113
|
+
def destroy(options = {})
|
|
114
|
+
requires :identity
|
|
115
|
+
|
|
116
|
+
data = service.delete_instance(self.identity)
|
|
117
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
118
|
+
unless options.fetch(:async, true)
|
|
119
|
+
# DISABLED: A delete instance operation never reachs a 'DONE' state (bug?)
|
|
120
|
+
# operation.wait_for { ready? }
|
|
121
|
+
end
|
|
122
|
+
operation
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
##
|
|
126
|
+
# Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file
|
|
127
|
+
#
|
|
128
|
+
# @param [String] uri The path to the file in Google Cloud Storage where the export will be stored,
|
|
129
|
+
# or where it was already stored
|
|
130
|
+
# @param [Hash] options Method options
|
|
131
|
+
# @option options [Array<String>] :databases Databases (for example, guestbook) from which the export is made.
|
|
132
|
+
# If unspecified, all databases are exported.
|
|
133
|
+
# @option options [Array<String>] :tables Tables to export, or that were exported, from the specified database.
|
|
134
|
+
# If you specify tables, specify one and only one database.
|
|
135
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
136
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
137
|
+
def export(uri, options = {})
|
|
138
|
+
requires :identity
|
|
139
|
+
|
|
140
|
+
data = service.export_instance(self.identity, uri, options)
|
|
141
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
142
|
+
unless options.fetch(:async, true)
|
|
143
|
+
operation.wait_for { ready? }
|
|
144
|
+
end
|
|
145
|
+
operation
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
##
|
|
149
|
+
# Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage
|
|
150
|
+
#
|
|
151
|
+
# @param [Array<String>] uri A path to the MySQL dump file in Google Cloud Storage from which the import is
|
|
152
|
+
# made
|
|
153
|
+
# @param [Hash] options Method options
|
|
154
|
+
# @option options [String] :database The database (for example, guestbook) to which the import is made.
|
|
155
|
+
# If not set, it is assumed that the database is specified in the file to be imported.
|
|
156
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
157
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
158
|
+
def import(uri, options = {})
|
|
159
|
+
requires :identity
|
|
160
|
+
|
|
161
|
+
data = service.import_instance(self.identity, uri, options)
|
|
162
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
163
|
+
unless options.fetch(:async, true)
|
|
164
|
+
operation.wait_for { ready? }
|
|
165
|
+
end
|
|
166
|
+
operation
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
##
|
|
170
|
+
# Returns the list of external networks that are allowed to connect to the instance using the IP
|
|
171
|
+
#
|
|
172
|
+
# @return [Array<String>] The list of external networks that are allowed to connect to the instance using the IP
|
|
173
|
+
def ip_configuration_authorized_networks
|
|
174
|
+
self.settings.fetch('ipConfiguration', {})['authorizedNetworks']
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
##
|
|
178
|
+
# Returns whether the instance should be assigned an IP address or not
|
|
179
|
+
#
|
|
180
|
+
# @return [Boolean] Whether the instance should be assigned an IP address or not
|
|
181
|
+
def ip_configuration_enabled
|
|
182
|
+
self.settings.fetch('ipConfiguration', {})['enabled']
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
##
|
|
186
|
+
# Returns whether the mysqld should default to 'REQUIRE X509' for users connecting over IP
|
|
187
|
+
#
|
|
188
|
+
# @return [Boolean] Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP
|
|
189
|
+
def ip_configuration_require_ssl
|
|
190
|
+
self.settings.fetch('ipConfiguration', {})['requireSsl']
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
##
|
|
194
|
+
# Returns the AppEngine application to follow
|
|
195
|
+
#
|
|
196
|
+
# @return [String] The AppEngine application to follow
|
|
197
|
+
def location_preference_zone_follow_gae_application
|
|
198
|
+
self.settings.fetch('locationPreference', {})['followGaeApplication']
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
##
|
|
202
|
+
# Returns the preferred Compute Engine zone
|
|
203
|
+
#
|
|
204
|
+
# @return [String] The preferred Compute Engine zone
|
|
205
|
+
def location_preference_zone
|
|
206
|
+
self.settings.fetch('locationPreference', {})['zone']
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
##
|
|
210
|
+
# Returns the pricing plan for this instance
|
|
211
|
+
#
|
|
212
|
+
# @return [String] The pricing plan for this instance
|
|
213
|
+
def pricing_plan
|
|
214
|
+
self.settings['pricingPlan']
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
##
|
|
218
|
+
# Checks if the instance is running
|
|
219
|
+
#
|
|
220
|
+
# @return [Boolean] True if the instance is running; False otherwise
|
|
221
|
+
def ready?
|
|
222
|
+
self.state == RUNNABLE_STATE
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
##
|
|
226
|
+
# Returns the type of replication this instance uses
|
|
227
|
+
#
|
|
228
|
+
# @return [String] The type of replication this instance uses
|
|
229
|
+
def replication_type
|
|
230
|
+
self.settings['replicationType']
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
##
|
|
234
|
+
# Deletes all client certificates and generates a new server SSL certificate for the instance
|
|
235
|
+
#
|
|
236
|
+
# @param [Hash] options Method options
|
|
237
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
238
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
239
|
+
def reset_ssl_config(options = {})
|
|
240
|
+
requires :identity
|
|
241
|
+
|
|
242
|
+
data = service.reset_instance_ssl_config(self.identity)
|
|
243
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
244
|
+
unless options.fetch(:async, true)
|
|
245
|
+
operation.wait_for { ready? }
|
|
246
|
+
end
|
|
247
|
+
operation
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
##
|
|
251
|
+
# Restarts a Cloud SQL instance
|
|
252
|
+
#
|
|
253
|
+
# @param [Hash] options Method options
|
|
254
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
255
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
256
|
+
def restart(options = {})
|
|
257
|
+
requires :identity
|
|
258
|
+
|
|
259
|
+
data = service.restart_instance(self.identity)
|
|
260
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
261
|
+
unless options.fetch(:async, true)
|
|
262
|
+
operation.wait_for { ready? }
|
|
263
|
+
end
|
|
264
|
+
operation
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
##
|
|
268
|
+
# Restores a backup of a Cloud SQL instance
|
|
269
|
+
#
|
|
270
|
+
# @param [String] backup_configuration The identifier of the backup configuration
|
|
271
|
+
# @param [String] due_time The time when this run is due to start in RFC 3339 format
|
|
272
|
+
# @param [Hash] options Method options
|
|
273
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
274
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
275
|
+
def restore_backup(backup_configuration, due_time, options = {})
|
|
276
|
+
requires :identity
|
|
277
|
+
|
|
278
|
+
data = service.restore_instance_backup(self.identity, backup_configuration, due_time)
|
|
279
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
280
|
+
unless options.fetch(:async, true)
|
|
281
|
+
operation.wait_for { ready? }
|
|
282
|
+
end
|
|
283
|
+
operation
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
##
|
|
287
|
+
# Saves a Cloud SQL instance
|
|
288
|
+
#
|
|
289
|
+
# @return [Fog::Google::SQL::Instance] Instance resource
|
|
290
|
+
def save
|
|
291
|
+
self.etag ? update : create
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
##
|
|
295
|
+
# Sets the password for the root user
|
|
296
|
+
#
|
|
297
|
+
# @param [String] password The password for the root user
|
|
298
|
+
# @param [Hash] options Method options
|
|
299
|
+
# @option options [Boolean] :async If the operation must be performed asynchronously (true by default)
|
|
300
|
+
# @return [Fog::Google::SQL::Operation] A Operation resource
|
|
301
|
+
def set_root_password(password, options = {})
|
|
302
|
+
requires :identity
|
|
303
|
+
|
|
304
|
+
data = service.set_instance_root_password(self.identity, password)
|
|
305
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
306
|
+
unless options.fetch(:async, true)
|
|
307
|
+
operation.wait_for { ready? }
|
|
308
|
+
end
|
|
309
|
+
operation
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
##
|
|
313
|
+
# Returns the version of instance settings
|
|
314
|
+
#
|
|
315
|
+
# @return [String] The version of instance settings
|
|
316
|
+
def settings_version
|
|
317
|
+
self.settings['settingsVersion']
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
##
|
|
321
|
+
# Lists all of the current SSL certificates for the instance
|
|
322
|
+
#
|
|
323
|
+
# @return [Array<Fog::Google::SQL::SslCert>] List of SSL certificate resources
|
|
324
|
+
def ssl_certs
|
|
325
|
+
requires :identity
|
|
326
|
+
|
|
327
|
+
service.ssl_certs.all(self.identity)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
##
|
|
331
|
+
# Returns the tier of service for this instance
|
|
332
|
+
#
|
|
333
|
+
# @return [String] The tier of service for this instance
|
|
334
|
+
def tier
|
|
335
|
+
self.settings['tier']
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
##
|
|
339
|
+
# Updates settings of a Cloud SQL instance
|
|
340
|
+
#
|
|
341
|
+
# @return [Fog::Google::SQL::Instance] Instance resource
|
|
342
|
+
def update
|
|
343
|
+
requires :identity
|
|
344
|
+
|
|
345
|
+
data = service.update_instance(self.identity, self.settings_version, self.tier, self.attributes)
|
|
346
|
+
operation = Fog::Google::SQL::Operations.new(:service => service).get(self.instance, data.body['operation'])
|
|
347
|
+
operation.wait_for { !pending? }
|
|
348
|
+
reload
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
end
|