gitlab-fog-google 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.codecov.yml +2 -0
- data/.editorconfig +11 -0
- data/.fog.example +25 -0
- data/.gitignore +20 -0
- data/.gitlab-ci.yml +13 -0
- data/.hound.yml +2 -0
- data/.rubocop.yml +255 -0
- data/.ruby-gemset +1 -0
- data/.travis.yml +33 -0
- data/CHANGELOG.md +464 -0
- data/CONTRIBUTING.md +175 -0
- data/CONTRIBUTORS.md +95 -0
- data/Gemfile +13 -0
- data/LICENSE.md +20 -0
- data/MIGRATING.md +1 -0
- data/README.md +177 -0
- data/Rakefile +19 -0
- data/SECURITY.md +16 -0
- data/ci/.gitignore +1 -0
- data/ci/README.md +65 -0
- data/ci/build-head-pipeline.yml +173 -0
- data/ci/credentials.yml.template +28 -0
- data/ci/docker-image/Dockerfile +18 -0
- data/ci/integration-pipeline.yml +226 -0
- data/ci/pipeline-dev.yml +58 -0
- data/ci/tasks/run-int.sh +53 -0
- data/ci/tasks/run-int.yml +18 -0
- data/ci/tasks/utils.sh +10 -0
- data/examples/backend_services.rb +23 -0
- data/examples/bootstrap.rb +27 -0
- data/examples/create_instance.rb +73 -0
- data/examples/create_instance_with_attached_disk.rb +53 -0
- data/examples/dns/project.rb +7 -0
- data/examples/dns/zones.rb +43 -0
- data/examples/get_list_images.rb +42 -0
- data/examples/get_list_snapshots.rb +28 -0
- data/examples/image_create.rb +17 -0
- data/examples/l7_load_balance.rb +79 -0
- data/examples/load-balance.rb +116 -0
- data/examples/metadata.rb +40 -0
- data/examples/monitoring/metric_descriptors.rb +24 -0
- data/examples/monitoring/monitored_resource_descriptors.rb +24 -0
- data/examples/monitoring/timeseries_collection.rb +32 -0
- data/examples/network.rb +55 -0
- data/examples/precreated_client.rb +24 -0
- data/examples/pubsub/subscriptions.rb +54 -0
- data/examples/pubsub/topics.rb +33 -0
- data/examples/sql/flags.rb +11 -0
- data/examples/sql/instances.rb +38 -0
- data/examples/sql/operations.rb +24 -0
- data/examples/sql/ssl_certs.rb +32 -0
- data/examples/sql/tiers.rb +11 -0
- data/examples/storage.rb +49 -0
- data/examples/storage_json.rb +37 -0
- data/gitlab-fog-google.gemspec +44 -0
- data/lib/fog/bin/google.rb +97 -0
- data/lib/fog/compute/google.rb +304 -0
- data/lib/fog/compute/google/mock.rb +845 -0
- data/lib/fog/compute/google/models/address.rb +133 -0
- data/lib/fog/compute/google/models/addresses.rb +63 -0
- data/lib/fog/compute/google/models/backend_service.rb +86 -0
- data/lib/fog/compute/google/models/backend_services.rb +24 -0
- data/lib/fog/compute/google/models/disk.rb +155 -0
- data/lib/fog/compute/google/models/disk_type.rb +27 -0
- data/lib/fog/compute/google/models/disk_types.rb +42 -0
- data/lib/fog/compute/google/models/disks.rb +88 -0
- data/lib/fog/compute/google/models/firewall.rb +94 -0
- data/lib/fog/compute/google/models/firewalls.rb +24 -0
- data/lib/fog/compute/google/models/forwarding_rule.rb +79 -0
- data/lib/fog/compute/google/models/forwarding_rules.rb +44 -0
- data/lib/fog/compute/google/models/global_address.rb +58 -0
- data/lib/fog/compute/google/models/global_addresses.rb +46 -0
- data/lib/fog/compute/google/models/global_forwarding_rule.rb +78 -0
- data/lib/fog/compute/google/models/global_forwarding_rules.rb +24 -0
- data/lib/fog/compute/google/models/http_health_check.rb +104 -0
- data/lib/fog/compute/google/models/http_health_checks.rb +24 -0
- data/lib/fog/compute/google/models/image.rb +81 -0
- data/lib/fog/compute/google/models/images.rb +109 -0
- data/lib/fog/compute/google/models/instance_group.rb +90 -0
- data/lib/fog/compute/google/models/instance_group_manager.rb +51 -0
- data/lib/fog/compute/google/models/instance_group_managers.rb +45 -0
- data/lib/fog/compute/google/models/instance_groups.rb +63 -0
- data/lib/fog/compute/google/models/instance_template.rb +47 -0
- data/lib/fog/compute/google/models/instance_templates.rb +24 -0
- data/lib/fog/compute/google/models/machine_type.rb +23 -0
- data/lib/fog/compute/google/models/machine_types.rb +46 -0
- data/lib/fog/compute/google/models/network.rb +60 -0
- data/lib/fog/compute/google/models/networks.rb +24 -0
- data/lib/fog/compute/google/models/operation.rb +73 -0
- data/lib/fog/compute/google/models/operations.rb +45 -0
- data/lib/fog/compute/google/models/project.rb +28 -0
- data/lib/fog/compute/google/models/projects.rb +19 -0
- data/lib/fog/compute/google/models/region.rb +30 -0
- data/lib/fog/compute/google/models/regions.rb +24 -0
- data/lib/fog/compute/google/models/route.rb +49 -0
- data/lib/fog/compute/google/models/routes.rb +24 -0
- data/lib/fog/compute/google/models/server.rb +604 -0
- data/lib/fog/compute/google/models/servers.rb +120 -0
- data/lib/fog/compute/google/models/snapshot.rb +62 -0
- data/lib/fog/compute/google/models/snapshots.rb +32 -0
- data/lib/fog/compute/google/models/ssl_certificate.rb +42 -0
- data/lib/fog/compute/google/models/ssl_certificates.rb +24 -0
- data/lib/fog/compute/google/models/subnetwork.rb +83 -0
- data/lib/fog/compute/google/models/subnetworks.rb +43 -0
- data/lib/fog/compute/google/models/target_http_proxies.rb +24 -0
- data/lib/fog/compute/google/models/target_http_proxy.rb +73 -0
- data/lib/fog/compute/google/models/target_https_proxies.rb +24 -0
- data/lib/fog/compute/google/models/target_https_proxy.rb +105 -0
- data/lib/fog/compute/google/models/target_instance.rb +67 -0
- data/lib/fog/compute/google/models/target_instances.rb +46 -0
- data/lib/fog/compute/google/models/target_pool.rb +171 -0
- data/lib/fog/compute/google/models/target_pools.rb +43 -0
- data/lib/fog/compute/google/models/url_map.rb +121 -0
- data/lib/fog/compute/google/models/url_maps.rb +24 -0
- data/lib/fog/compute/google/models/zone.rb +25 -0
- data/lib/fog/compute/google/models/zones.rb +24 -0
- data/lib/fog/compute/google/real.rb +24 -0
- data/lib/fog/compute/google/requests/abandon_instances.rb +28 -0
- data/lib/fog/compute/google/requests/add_backend_service_backends.rb +19 -0
- data/lib/fog/compute/google/requests/add_instance_group_instances.rb +37 -0
- data/lib/fog/compute/google/requests/add_server_access_config.rb +32 -0
- data/lib/fog/compute/google/requests/add_target_pool_health_checks.rb +32 -0
- data/lib/fog/compute/google/requests/add_target_pool_instances.rb +30 -0
- data/lib/fog/compute/google/requests/attach_disk.rb +22 -0
- data/lib/fog/compute/google/requests/create_disk_snapshot.rb +24 -0
- data/lib/fog/compute/google/requests/delete_address.rb +24 -0
- data/lib/fog/compute/google/requests/delete_backend_service.rb +19 -0
- data/lib/fog/compute/google/requests/delete_disk.rb +25 -0
- data/lib/fog/compute/google/requests/delete_firewall.rb +19 -0
- data/lib/fog/compute/google/requests/delete_forwarding_rule.rb +20 -0
- data/lib/fog/compute/google/requests/delete_global_address.rb +19 -0
- data/lib/fog/compute/google/requests/delete_global_forwarding_rule.rb +19 -0
- data/lib/fog/compute/google/requests/delete_global_operation.rb +20 -0
- data/lib/fog/compute/google/requests/delete_http_health_check.rb +19 -0
- data/lib/fog/compute/google/requests/delete_image.rb +19 -0
- data/lib/fog/compute/google/requests/delete_instance_group.rb +19 -0
- data/lib/fog/compute/google/requests/delete_instance_group_manager.rb +19 -0
- data/lib/fog/compute/google/requests/delete_instance_template.rb +19 -0
- data/lib/fog/compute/google/requests/delete_network.rb +19 -0
- data/lib/fog/compute/google/requests/delete_region_operation.rb +22 -0
- data/lib/fog/compute/google/requests/delete_route.rb +23 -0
- data/lib/fog/compute/google/requests/delete_server.rb +19 -0
- data/lib/fog/compute/google/requests/delete_server_access_config.rb +22 -0
- data/lib/fog/compute/google/requests/delete_snapshot.rb +19 -0
- data/lib/fog/compute/google/requests/delete_ssl_certificate.rb +19 -0
- data/lib/fog/compute/google/requests/delete_subnetwork.rb +31 -0
- data/lib/fog/compute/google/requests/delete_target_http_proxy.rb +19 -0
- data/lib/fog/compute/google/requests/delete_target_https_proxy.rb +19 -0
- data/lib/fog/compute/google/requests/delete_target_instance.rb +20 -0
- data/lib/fog/compute/google/requests/delete_target_pool.rb +20 -0
- data/lib/fog/compute/google/requests/delete_url_map.rb +19 -0
- data/lib/fog/compute/google/requests/delete_zone_operation.rb +22 -0
- data/lib/fog/compute/google/requests/deprecate_image.rb +22 -0
- data/lib/fog/compute/google/requests/detach_disk.rb +20 -0
- data/lib/fog/compute/google/requests/expand_subnetwork_ip_cidr_range.rb +38 -0
- data/lib/fog/compute/google/requests/get_address.rb +24 -0
- data/lib/fog/compute/google/requests/get_backend_service.rb +19 -0
- data/lib/fog/compute/google/requests/get_backend_service_health.rb +24 -0
- data/lib/fog/compute/google/requests/get_disk.rb +24 -0
- data/lib/fog/compute/google/requests/get_disk_type.rb +19 -0
- data/lib/fog/compute/google/requests/get_firewall.rb +19 -0
- data/lib/fog/compute/google/requests/get_forwarding_rule.rb +22 -0
- data/lib/fog/compute/google/requests/get_global_address.rb +19 -0
- data/lib/fog/compute/google/requests/get_global_forwarding_rule.rb +19 -0
- data/lib/fog/compute/google/requests/get_global_operation.rb +23 -0
- data/lib/fog/compute/google/requests/get_http_health_check.rb +19 -0
- data/lib/fog/compute/google/requests/get_image.rb +20 -0
- data/lib/fog/compute/google/requests/get_image_from_family.rb +26 -0
- data/lib/fog/compute/google/requests/get_instance_group.rb +19 -0
- data/lib/fog/compute/google/requests/get_instance_group_manager.rb +19 -0
- data/lib/fog/compute/google/requests/get_instance_template.rb +19 -0
- data/lib/fog/compute/google/requests/get_machine_type.rb +20 -0
- data/lib/fog/compute/google/requests/get_network.rb +19 -0
- data/lib/fog/compute/google/requests/get_project.rb +19 -0
- data/lib/fog/compute/google/requests/get_region.rb +19 -0
- data/lib/fog/compute/google/requests/get_region_operation.rb +20 -0
- data/lib/fog/compute/google/requests/get_route.rb +22 -0
- data/lib/fog/compute/google/requests/get_server.rb +19 -0
- data/lib/fog/compute/google/requests/get_server_serial_port_output.rb +38 -0
- data/lib/fog/compute/google/requests/get_snapshot.rb +20 -0
- data/lib/fog/compute/google/requests/get_ssl_certificate.rb +19 -0
- data/lib/fog/compute/google/requests/get_subnetwork.rb +29 -0
- data/lib/fog/compute/google/requests/get_target_http_proxy.rb +19 -0
- data/lib/fog/compute/google/requests/get_target_https_proxy.rb +19 -0
- data/lib/fog/compute/google/requests/get_target_instance.rb +20 -0
- data/lib/fog/compute/google/requests/get_target_pool.rb +20 -0
- data/lib/fog/compute/google/requests/get_target_pool_health.rb +24 -0
- data/lib/fog/compute/google/requests/get_url_map.rb +19 -0
- data/lib/fog/compute/google/requests/get_zone.rb +19 -0
- data/lib/fog/compute/google/requests/get_zone_operation.rb +25 -0
- data/lib/fog/compute/google/requests/insert_address.rb +30 -0
- data/lib/fog/compute/google/requests/insert_backend_service.rb +23 -0
- data/lib/fog/compute/google/requests/insert_disk.rb +48 -0
- data/lib/fog/compute/google/requests/insert_firewall.rb +65 -0
- data/lib/fog/compute/google/requests/insert_forwarding_rule.rb +29 -0
- data/lib/fog/compute/google/requests/insert_global_address.rb +25 -0
- data/lib/fog/compute/google/requests/insert_global_forwarding_rule.rb +26 -0
- data/lib/fog/compute/google/requests/insert_http_health_check.rb +24 -0
- data/lib/fog/compute/google/requests/insert_image.rb +23 -0
- data/lib/fog/compute/google/requests/insert_instance_group.rb +37 -0
- data/lib/fog/compute/google/requests/insert_instance_group_manager.rb +31 -0
- data/lib/fog/compute/google/requests/insert_instance_template.rb +38 -0
- data/lib/fog/compute/google/requests/insert_network.rb +34 -0
- data/lib/fog/compute/google/requests/insert_route.rb +35 -0
- data/lib/fog/compute/google/requests/insert_server.rb +122 -0
- data/lib/fog/compute/google/requests/insert_ssl_certificate.rb +27 -0
- data/lib/fog/compute/google/requests/insert_subnetwork.rb +61 -0
- data/lib/fog/compute/google/requests/insert_target_http_proxy.rb +26 -0
- data/lib/fog/compute/google/requests/insert_target_https_proxy.rb +29 -0
- data/lib/fog/compute/google/requests/insert_target_instance.rb +25 -0
- data/lib/fog/compute/google/requests/insert_target_pool.rb +22 -0
- data/lib/fog/compute/google/requests/insert_url_map.rb +37 -0
- data/lib/fog/compute/google/requests/invalidate_url_map_cache.rb +24 -0
- data/lib/fog/compute/google/requests/list_addresses.rb +28 -0
- data/lib/fog/compute/google/requests/list_aggregated_addresses.rb +23 -0
- data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +24 -0
- data/lib/fog/compute/google/requests/list_aggregated_disks.rb +32 -0
- data/lib/fog/compute/google/requests/list_aggregated_forwarding_rules.rb +24 -0
- data/lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb +26 -0
- data/lib/fog/compute/google/requests/list_aggregated_instance_groups.rb +19 -0
- data/lib/fog/compute/google/requests/list_aggregated_machine_types.rb +24 -0
- data/lib/fog/compute/google/requests/list_aggregated_servers.rb +24 -0
- data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +36 -0
- data/lib/fog/compute/google/requests/list_aggregated_target_instances.rb +26 -0
- data/lib/fog/compute/google/requests/list_aggregated_target_pools.rb +26 -0
- data/lib/fog/compute/google/requests/list_backend_services.rb +22 -0
- data/lib/fog/compute/google/requests/list_disk_types.rb +24 -0
- data/lib/fog/compute/google/requests/list_disks.rb +28 -0
- data/lib/fog/compute/google/requests/list_firewalls.rb +24 -0
- data/lib/fog/compute/google/requests/list_forwarding_rules.rb +25 -0
- data/lib/fog/compute/google/requests/list_global_addresses.rb +26 -0
- data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +24 -0
- data/lib/fog/compute/google/requests/list_global_operations.rb +27 -0
- data/lib/fog/compute/google/requests/list_http_health_checks.rb +24 -0
- data/lib/fog/compute/google/requests/list_images.rb +25 -0
- data/lib/fog/compute/google/requests/list_instance_group_instances.rb +21 -0
- data/lib/fog/compute/google/requests/list_instance_group_managers.rb +22 -0
- data/lib/fog/compute/google/requests/list_instance_groups.rb +19 -0
- data/lib/fog/compute/google/requests/list_instance_templates.rb +26 -0
- data/lib/fog/compute/google/requests/list_machine_types.rb +25 -0
- data/lib/fog/compute/google/requests/list_networks.rb +24 -0
- data/lib/fog/compute/google/requests/list_region_operations.rb +29 -0
- data/lib/fog/compute/google/requests/list_regions.rb +23 -0
- data/lib/fog/compute/google/requests/list_routes.rb +28 -0
- data/lib/fog/compute/google/requests/list_servers.rb +24 -0
- data/lib/fog/compute/google/requests/list_snapshots.rb +22 -0
- data/lib/fog/compute/google/requests/list_ssl_certificates.rb +26 -0
- data/lib/fog/compute/google/requests/list_subnetworks.rb +39 -0
- data/lib/fog/compute/google/requests/list_target_http_proxies.rb +25 -0
- data/lib/fog/compute/google/requests/list_target_https_proxies.rb +24 -0
- data/lib/fog/compute/google/requests/list_target_instances.rb +27 -0
- data/lib/fog/compute/google/requests/list_target_pools.rb +26 -0
- data/lib/fog/compute/google/requests/list_url_maps.rb +25 -0
- data/lib/fog/compute/google/requests/list_zone_operations.rb +28 -0
- data/lib/fog/compute/google/requests/list_zones.rb +26 -0
- data/lib/fog/compute/google/requests/patch_firewall.rb +27 -0
- data/lib/fog/compute/google/requests/patch_url_map.rb +21 -0
- data/lib/fog/compute/google/requests/recreate_instances.rb +28 -0
- data/lib/fog/compute/google/requests/remove_instance_group_instances.rb +37 -0
- data/lib/fog/compute/google/requests/remove_target_pool_health_checks.rb +30 -0
- data/lib/fog/compute/google/requests/remove_target_pool_instance.rb +30 -0
- data/lib/fog/compute/google/requests/remove_target_pool_instances.rb +30 -0
- data/lib/fog/compute/google/requests/reset_server.rb +19 -0
- data/lib/fog/compute/google/requests/reset_windows_password.rb +154 -0
- data/lib/fog/compute/google/requests/set_common_instance_metadata.rb +23 -0
- data/lib/fog/compute/google/requests/set_forwarding_rule_target.rb +23 -0
- data/lib/fog/compute/google/requests/set_global_forwarding_rule_target.rb +22 -0
- data/lib/fog/compute/google/requests/set_instance_template.rb +28 -0
- data/lib/fog/compute/google/requests/set_server_disk_auto_delete.rb +26 -0
- data/lib/fog/compute/google/requests/set_server_machine_type.rb +23 -0
- data/lib/fog/compute/google/requests/set_server_metadata.rb +39 -0
- data/lib/fog/compute/google/requests/set_server_scheduling.rb +24 -0
- data/lib/fog/compute/google/requests/set_server_tags.rb +25 -0
- data/lib/fog/compute/google/requests/set_snapshot_labels.rb +25 -0
- data/lib/fog/compute/google/requests/set_subnetwork_private_ip_google_access.rb +42 -0
- data/lib/fog/compute/google/requests/set_target_http_proxy_url_map.rb +24 -0
- data/lib/fog/compute/google/requests/set_target_https_proxy_ssl_certificates.rb +24 -0
- data/lib/fog/compute/google/requests/set_target_https_proxy_url_map.rb +24 -0
- data/lib/fog/compute/google/requests/set_target_pool_backup.rb +31 -0
- data/lib/fog/compute/google/requests/start_server.rb +19 -0
- data/lib/fog/compute/google/requests/stop_server.rb +19 -0
- data/lib/fog/compute/google/requests/update_firewall.rb +49 -0
- data/lib/fog/compute/google/requests/update_http_health_check.rb +25 -0
- data/lib/fog/compute/google/requests/update_url_map.rb +28 -0
- data/lib/fog/compute/google/requests/validate_url_map.rb +24 -0
- data/lib/fog/dns/google.rb +67 -0
- data/lib/fog/dns/google/mock.rb +33 -0
- data/lib/fog/dns/google/models/change.rb +38 -0
- data/lib/fog/dns/google/models/changes.rb +50 -0
- data/lib/fog/dns/google/models/project.rb +73 -0
- data/lib/fog/dns/google/models/projects.rb +23 -0
- data/lib/fog/dns/google/models/record.rb +108 -0
- data/lib/fog/dns/google/models/records.rb +53 -0
- data/lib/fog/dns/google/models/zone.rb +72 -0
- data/lib/fog/dns/google/models/zones.rb +32 -0
- data/lib/fog/dns/google/real.rb +19 -0
- data/lib/fog/dns/google/requests/create_change.rb +29 -0
- data/lib/fog/dns/google/requests/create_managed_zone.rb +29 -0
- data/lib/fog/dns/google/requests/delete_managed_zone.rb +23 -0
- data/lib/fog/dns/google/requests/get_change.rb +23 -0
- data/lib/fog/dns/google/requests/get_managed_zone.rb +23 -0
- data/lib/fog/dns/google/requests/get_project.rb +24 -0
- data/lib/fog/dns/google/requests/list_changes.rb +30 -0
- data/lib/fog/dns/google/requests/list_managed_zones.rb +26 -0
- data/lib/fog/dns/google/requests/list_resource_record_sets.rb +30 -0
- data/lib/fog/google.rb +53 -0
- data/lib/fog/google/mock.rb +14 -0
- data/lib/fog/google/models/monitoring/metric_descriptor.rb +23 -0
- data/lib/fog/google/models/monitoring/metric_descriptors.rb +43 -0
- data/lib/fog/google/models/monitoring/monitored_resource_descriptor.rb +20 -0
- data/lib/fog/google/models/monitoring/monitored_resource_descriptors.rb +37 -0
- data/lib/fog/google/models/monitoring/timeseries.rb +19 -0
- data/lib/fog/google/models/monitoring/timeseries_collection.rb +48 -0
- data/lib/fog/google/models/pubsub/received_message.rb +40 -0
- data/lib/fog/google/models/pubsub/subscription.rb +86 -0
- data/lib/fog/google/models/pubsub/subscriptions.rb +33 -0
- data/lib/fog/google/models/pubsub/topic.rb +71 -0
- data/lib/fog/google/models/pubsub/topics.rb +32 -0
- data/lib/fog/google/models/sql/backup_run.rb +37 -0
- data/lib/fog/google/models/sql/backup_runs.rb +38 -0
- data/lib/fog/google/models/sql/flag.rb +23 -0
- data/lib/fog/google/models/sql/flags.rb +21 -0
- data/lib/fog/google/models/sql/instance.rb +339 -0
- data/lib/fog/google/models/sql/instances.rb +39 -0
- data/lib/fog/google/models/sql/operation.rb +67 -0
- data/lib/fog/google/models/sql/operations.rb +47 -0
- data/lib/fog/google/models/sql/ssl_cert.rb +77 -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/sql/user.rb +52 -0
- data/lib/fog/google/models/sql/users.rb +21 -0
- data/lib/fog/google/monitoring.rb +60 -0
- data/lib/fog/google/monitoring/mock.rb +35 -0
- data/lib/fog/google/monitoring/real.rb +20 -0
- data/lib/fog/google/pubsub.rb +69 -0
- data/lib/fog/google/pubsub/mock.rb +34 -0
- data/lib/fog/google/pubsub/real.rb +21 -0
- data/lib/fog/google/requests/monitoring/create_metric_descriptor.rb +51 -0
- data/lib/fog/google/requests/monitoring/create_timeseries.rb +29 -0
- data/lib/fog/google/requests/monitoring/delete_metric_descriptor.rb +19 -0
- data/lib/fog/google/requests/monitoring/get_metric_descriptor.rb +19 -0
- data/lib/fog/google/requests/monitoring/get_monitored_resource_descriptor.rb +19 -0
- data/lib/fog/google/requests/monitoring/list_metric_descriptors.rb +26 -0
- data/lib/fog/google/requests/monitoring/list_monitored_resource_descriptors.rb +29 -0
- data/lib/fog/google/requests/monitoring/list_timeseries.rb +55 -0
- data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +29 -0
- data/lib/fog/google/requests/pubsub/create_subscription.rb +37 -0
- data/lib/fog/google/requests/pubsub/create_topic.rb +23 -0
- data/lib/fog/google/requests/pubsub/delete_subscription.rb +21 -0
- data/lib/fog/google/requests/pubsub/delete_topic.rb +21 -0
- data/lib/fog/google/requests/pubsub/get_subscription.rb +21 -0
- data/lib/fog/google/requests/pubsub/get_topic.rb +21 -0
- data/lib/fog/google/requests/pubsub/list_subscriptions.rb +29 -0
- data/lib/fog/google/requests/pubsub/list_topics.rb +29 -0
- data/lib/fog/google/requests/pubsub/publish_topic.rb +28 -0
- data/lib/fog/google/requests/pubsub/pull_subscription.rb +40 -0
- data/lib/fog/google/requests/sql/clone_instance.rb +42 -0
- data/lib/fog/google/requests/sql/delete_backup_run.rb +23 -0
- data/lib/fog/google/requests/sql/delete_instance.rb +24 -0
- data/lib/fog/google/requests/sql/delete_ssl_cert.rb +24 -0
- data/lib/fog/google/requests/sql/delete_user.rb +24 -0
- data/lib/fog/google/requests/sql/export_instance.rb +55 -0
- data/lib/fog/google/requests/sql/get_backup_run.rb +23 -0
- data/lib/fog/google/requests/sql/get_instance.rb +24 -0
- data/lib/fog/google/requests/sql/get_operation.rb +24 -0
- data/lib/fog/google/requests/sql/get_ssl_cert.rb +24 -0
- data/lib/fog/google/requests/sql/import_instance.rb +44 -0
- data/lib/fog/google/requests/sql/insert_backup_run.rb +28 -0
- data/lib/fog/google/requests/sql/insert_instance.rb +28 -0
- data/lib/fog/google/requests/sql/insert_ssl_cert.rb +30 -0
- data/lib/fog/google/requests/sql/insert_user.rb +25 -0
- data/lib/fog/google/requests/sql/list_backup_runs.rb +27 -0
- data/lib/fog/google/requests/sql/list_flags.rb +24 -0
- data/lib/fog/google/requests/sql/list_instances.rb +27 -0
- data/lib/fog/google/requests/sql/list_operations.rb +28 -0
- data/lib/fog/google/requests/sql/list_ssl_certs.rb +24 -0
- data/lib/fog/google/requests/sql/list_tiers.rb +24 -0
- data/lib/fog/google/requests/sql/list_users.rb +24 -0
- data/lib/fog/google/requests/sql/reset_instance_ssl_config.rb +26 -0
- data/lib/fog/google/requests/sql/restart_instance.rb +24 -0
- data/lib/fog/google/requests/sql/restore_instance_backup.rb +31 -0
- data/lib/fog/google/requests/sql/update_instance.rb +31 -0
- data/lib/fog/google/requests/sql/update_user.rb +27 -0
- data/lib/fog/google/shared.rb +253 -0
- data/lib/fog/google/sql.rb +104 -0
- data/lib/fog/google/sql/mock.rb +40 -0
- data/lib/fog/google/sql/real.rb +21 -0
- data/lib/fog/google/version.rb +5 -0
- data/lib/fog/parsers/storage/google.rb +15 -0
- data/lib/fog/parsers/storage/google/access_control_list.rb +44 -0
- data/lib/fog/parsers/storage/google/copy_object.rb +18 -0
- data/lib/fog/parsers/storage/google/get_bucket.rb +58 -0
- data/lib/fog/parsers/storage/google/get_bucket_logging.rb +36 -0
- data/lib/fog/parsers/storage/google/get_bucket_object_versions.rb +88 -0
- data/lib/fog/parsers/storage/google/get_bucket_versioning.rb +20 -0
- data/lib/fog/parsers/storage/google/get_request_payment.rb +16 -0
- data/lib/fog/parsers/storage/google/get_service.rb +28 -0
- data/lib/fog/storage/google.rb +20 -0
- data/lib/fog/storage/google_json.rb +74 -0
- data/lib/fog/storage/google_json/mock.rb +27 -0
- data/lib/fog/storage/google_json/models/directories.rb +41 -0
- data/lib/fog/storage/google_json/models/directory.rb +61 -0
- data/lib/fog/storage/google_json/models/file.rb +126 -0
- data/lib/fog/storage/google_json/models/files.rb +64 -0
- data/lib/fog/storage/google_json/real.rb +171 -0
- data/lib/fog/storage/google_json/requests/copy_object.rb +34 -0
- data/lib/fog/storage/google_json/requests/delete_bucket.rb +23 -0
- data/lib/fog/storage/google_json/requests/delete_object.rb +24 -0
- data/lib/fog/storage/google_json/requests/delete_object_url.rb +39 -0
- data/lib/fog/storage/google_json/requests/get_bucket.rb +43 -0
- data/lib/fog/storage/google_json/requests/get_bucket_acl.rb +32 -0
- data/lib/fog/storage/google_json/requests/get_object.rb +85 -0
- data/lib/fog/storage/google_json/requests/get_object_acl.rb +35 -0
- data/lib/fog/storage/google_json/requests/get_object_http_url.rb +32 -0
- data/lib/fog/storage/google_json/requests/get_object_https_url.rb +33 -0
- data/lib/fog/storage/google_json/requests/get_object_metadata.rb +32 -0
- data/lib/fog/storage/google_json/requests/get_object_url.rb +21 -0
- data/lib/fog/storage/google_json/requests/list_bucket_acl.rb +26 -0
- data/lib/fog/storage/google_json/requests/list_buckets.rb +30 -0
- data/lib/fog/storage/google_json/requests/list_object_acl.rb +29 -0
- data/lib/fog/storage/google_json/requests/list_objects.rb +48 -0
- data/lib/fog/storage/google_json/requests/put_bucket.rb +42 -0
- data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +29 -0
- data/lib/fog/storage/google_json/requests/put_object.rb +102 -0
- data/lib/fog/storage/google_json/requests/put_object_acl.rb +35 -0
- data/lib/fog/storage/google_json/requests/put_object_url.rb +42 -0
- data/lib/fog/storage/google_json/utils.rb +40 -0
- data/lib/fog/storage/google_xml.rb +38 -0
- data/lib/fog/storage/google_xml/mock.rb +102 -0
- data/lib/fog/storage/google_xml/models/directories.rb +34 -0
- data/lib/fog/storage/google_xml/models/directory.rb +65 -0
- data/lib/fog/storage/google_xml/models/file.rb +130 -0
- data/lib/fog/storage/google_xml/models/files.rb +95 -0
- data/lib/fog/storage/google_xml/real.rb +108 -0
- data/lib/fog/storage/google_xml/requests/copy_object.rb +62 -0
- data/lib/fog/storage/google_xml/requests/delete_bucket.rb +39 -0
- data/lib/fog/storage/google_xml/requests/delete_object.rb +44 -0
- data/lib/fog/storage/google_xml/requests/delete_object_url.rb +42 -0
- data/lib/fog/storage/google_xml/requests/get_bucket.rb +95 -0
- data/lib/fog/storage/google_xml/requests/get_bucket_acl.rb +53 -0
- data/lib/fog/storage/google_xml/requests/get_object.rb +96 -0
- data/lib/fog/storage/google_xml/requests/get_object_acl.rb +62 -0
- data/lib/fog/storage/google_xml/requests/get_object_http_url.rb +37 -0
- data/lib/fog/storage/google_xml/requests/get_object_https_url.rb +37 -0
- data/lib/fog/storage/google_xml/requests/get_object_url.rb +31 -0
- data/lib/fog/storage/google_xml/requests/get_service.rb +44 -0
- data/lib/fog/storage/google_xml/requests/head_object.rb +55 -0
- data/lib/fog/storage/google_xml/requests/put_bucket.rb +71 -0
- data/lib/fog/storage/google_xml/requests/put_bucket_acl.rb +58 -0
- data/lib/fog/storage/google_xml/requests/put_object.rb +85 -0
- data/lib/fog/storage/google_xml/requests/put_object_acl.rb +58 -0
- data/lib/fog/storage/google_xml/requests/put_object_url.rb +42 -0
- data/lib/fog/storage/google_xml/utils.rb +83 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/changelog.rake +39 -0
- data/tasks/console.rake +17 -0
- data/tasks/lint.rake +9 -0
- data/tasks/test.rake +115 -0
- data/test/helpers/client_helper.rb +63 -0
- data/test/helpers/integration_test_helper.rb +108 -0
- data/test/helpers/test_collection.rb +60 -0
- data/test/helpers/test_helper.rb +24 -0
- data/test/integration/compute/core_compute/test_client_options.rb +12 -0
- data/test/integration/compute/core_compute/test_coverage.rb +6 -0
- data/test/integration/compute/core_compute/test_disk_types.rb +43 -0
- data/test/integration/compute/core_compute/test_disks.rb +53 -0
- data/test/integration/compute/core_compute/test_images.rb +32 -0
- data/test/integration/compute/core_compute/test_machine_types.rb +55 -0
- data/test/integration/compute/core_compute/test_operations.rb +45 -0
- data/test/integration/compute/core_compute/test_projects.rb +19 -0
- data/test/integration/compute/core_compute/test_regions.rb +33 -0
- data/test/integration/compute/core_compute/test_servers.rb +149 -0
- data/test/integration/compute/core_compute/test_snapshots.rb +21 -0
- data/test/integration/compute/core_compute/test_zones.rb +35 -0
- data/test/integration/compute/core_networking/test_addresses.rb +107 -0
- data/test/integration/compute/core_networking/test_coverage.rb +6 -0
- data/test/integration/compute/core_networking/test_firewalls.rb +11 -0
- data/test/integration/compute/core_networking/test_networks.rb +41 -0
- data/test/integration/compute/core_networking/test_routes.rb +26 -0
- data/test/integration/compute/core_networking/test_subnetworks.rb +11 -0
- data/test/integration/compute/instance_groups/test_coverage.rb +6 -0
- data/test/integration/compute/instance_groups/test_instance_group_managers.rb +11 -0
- data/test/integration/compute/instance_groups/test_instance_groups.rb +11 -0
- data/test/integration/compute/instance_groups/test_instance_templates.rb +11 -0
- data/test/integration/compute/loadbalancing/test_backend_services.rb +11 -0
- data/test/integration/compute/loadbalancing/test_coverage.rb +6 -0
- data/test/integration/compute/loadbalancing/test_forwarding_rules.rb +11 -0
- data/test/integration/compute/loadbalancing/test_global_addresses.rb +11 -0
- data/test/integration/compute/loadbalancing/test_global_forwarding_rules.rb +11 -0
- data/test/integration/compute/loadbalancing/test_http_health_checks.rb +11 -0
- data/test/integration/compute/loadbalancing/test_ssl_certificates.rb +11 -0
- data/test/integration/compute/loadbalancing/test_target_http_proxies.rb +11 -0
- data/test/integration/compute/loadbalancing/test_target_https_proxies.rb +11 -0
- data/test/integration/compute/loadbalancing/test_target_instances.rb +11 -0
- data/test/integration/compute/loadbalancing/test_target_pools.rb +55 -0
- data/test/integration/compute/loadbalancing/test_url_maps.rb +11 -0
- data/test/integration/factories/addresses_factory.rb +20 -0
- data/test/integration/factories/backend_services_factory.rb +19 -0
- data/test/integration/factories/collection_factory.rb +52 -0
- data/test/integration/factories/disks_factory.rb +22 -0
- data/test/integration/factories/firewalls_factory.rb +13 -0
- data/test/integration/factories/forwarding_rules_factory.rb +25 -0
- data/test/integration/factories/global_addresses_factory.rb +15 -0
- data/test/integration/factories/global_forwarding_rules_factory.rb +20 -0
- data/test/integration/factories/http_health_checks_factory.rb +11 -0
- data/test/integration/factories/images_factory.rb +16 -0
- data/test/integration/factories/instance_group_manager_factory.rb +30 -0
- data/test/integration/factories/instance_groups_factory.rb +20 -0
- data/test/integration/factories/instance_template_factory.rb +24 -0
- data/test/integration/factories/networks_factory.rb +16 -0
- data/test/integration/factories/servers_factory.rb +30 -0
- data/test/integration/factories/sql_certs_factory.rb +20 -0
- data/test/integration/factories/sql_instances_factory.rb +19 -0
- data/test/integration/factories/sql_users_factory.rb +23 -0
- data/test/integration/factories/ssl_certificates_factory.rb +13 -0
- data/test/integration/factories/subnetworks_factory.rb +26 -0
- data/test/integration/factories/target_http_proxies_factory.rb +19 -0
- data/test/integration/factories/target_https_proxies_factory.rb +26 -0
- data/test/integration/factories/target_instances_factory.rb +24 -0
- data/test/integration/factories/target_pools_factory.rb +28 -0
- data/test/integration/factories/url_maps_factory.rb +19 -0
- data/test/integration/monitoring/test_coverage.rb +6 -0
- data/test/integration/monitoring/test_metric_descriptors.rb +131 -0
- data/test/integration/monitoring/test_monitored_resource_descriptors.rb +37 -0
- data/test/integration/monitoring/test_timeseries.rb +238 -0
- data/test/integration/pubsub/pubsub_shared.rb +75 -0
- data/test/integration/pubsub/test_coverage.rb +6 -0
- data/test/integration/pubsub/test_pubsub_models.rb +135 -0
- data/test/integration/pubsub/test_pubsub_requests.rb +105 -0
- data/test/integration/sql/test_certs.rb +50 -0
- data/test/integration/sql/test_common_flags.rb +31 -0
- data/test/integration/sql/test_common_tiers.rb +26 -0
- data/test/integration/sql/test_coverage.rb +6 -0
- data/test/integration/sql/test_instances.rb +101 -0
- data/test/integration/sql/test_users.rb +37 -0
- data/test/integration/storage/storage_shared.rb +96 -0
- data/test/integration/storage/test_buckets.rb +112 -0
- data/test/integration/storage/test_coverage.rb +6 -0
- data/test/integration/storage/test_directories.rb +67 -0
- data/test/integration/storage/test_files.rb +168 -0
- data/test/integration/storage/test_objects.rb +203 -0
- data/test/integration/test_authentication.rb +38 -0
- data/test/unit/compute/test_common_collections.rb +42 -0
- data/test/unit/compute/test_common_models.rb +35 -0
- data/test/unit/compute/test_server.rb +29 -0
- data/test/unit/dns/test_common_collections.rb +43 -0
- data/test/unit/monitoring/test_comon_collections.rb +44 -0
- data/test/unit/pubsub/test_common_collections.rb +35 -0
- data/test/unit/sql/test_common_collections.rb +46 -0
- data/test/unit/storage/test_common_json_collections.rb +38 -0
- data/test/unit/storage/test_common_xml_collections.rb +50 -0
- data/test/unit/storage/test_json_requests.rb +44 -0
- data/test/unit/storage/test_xml_requests.rb +60 -0
- metadata +897 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require "fog/core/model"
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Monitoring
|
|
6
|
+
##
|
|
7
|
+
# A monitoredResourceDescriptor defines a metric type and its schema.
|
|
8
|
+
#
|
|
9
|
+
# @see https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.monitoredResourceDescriptors#MonitoredResourceDescriptor
|
|
10
|
+
class MonitoredResourceDescriptor < Fog::Model
|
|
11
|
+
identity :name
|
|
12
|
+
|
|
13
|
+
attribute :description
|
|
14
|
+
attribute :display_name, :aliases => "displayName"
|
|
15
|
+
attribute :type
|
|
16
|
+
attribute :labels
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require "fog/core/collection"
|
|
2
|
+
require "fog/google/models/monitoring/monitored_resource_descriptor"
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Monitoring
|
|
7
|
+
class MonitoredResourceDescriptors < Fog::Collection
|
|
8
|
+
model Fog::Google::Monitoring::MonitoredResourceDescriptor
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Lists all Monitored Resource Descriptors.
|
|
12
|
+
#
|
|
13
|
+
# @param filter [String] The monitoring filter used to search against existing descriptors.
|
|
14
|
+
# @see https://cloud.google.com/monitoring/api/v3/filters filter documentation
|
|
15
|
+
# @param page_size [String] Maximum number of metric descriptors per page. Used for pagination.
|
|
16
|
+
# @param page_token [String] The pagination token, which is used to page through large result sets.
|
|
17
|
+
# @return [Array<Fog::Google::Monitoring::MetricDescriptor>] List of Monitored Resource Descriptors.
|
|
18
|
+
def all(filter: nil, page_size: nil, page_token: nil)
|
|
19
|
+
data = service.list_monitored_resource_descriptors(
|
|
20
|
+
:filter => filter,
|
|
21
|
+
:page_size => page_size,
|
|
22
|
+
:page_token => page_token
|
|
23
|
+
).to_h[:resource_descriptors] || []
|
|
24
|
+
load(data)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def get(resource_type)
|
|
28
|
+
data = service.get_monitored_resource_descriptor(resource_type).to_h
|
|
29
|
+
new(data)
|
|
30
|
+
rescue ::Google::Apis::ClientError => e
|
|
31
|
+
raise e unless e.status_code == 404
|
|
32
|
+
nil
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
# https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list
|
|
10
|
+
class Timeseries < Fog::Model
|
|
11
|
+
attribute :metric
|
|
12
|
+
attribute :resource
|
|
13
|
+
attribute :metric_kind, :aliases => "metricKind"
|
|
14
|
+
attribute :value_type, :aliases => "valueType"
|
|
15
|
+
attribute :points
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
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 filter [String] A monitoring filter that specifies which time series should be returned.
|
|
14
|
+
# The filter must specify a single metric type, and can additionally specify metric labels and other
|
|
15
|
+
# information.
|
|
16
|
+
# @param interval [Hash] Required. The time interval for which results should be returned.
|
|
17
|
+
# @option interval [String] end_time Required RFC3339 timestamp marking the end of interval
|
|
18
|
+
# @option interval [String] start_time Required RFC3339 timestamp marking start of interval.
|
|
19
|
+
# @param aggregation [Hash] Optional object describing how to combine multiple time series to provide
|
|
20
|
+
# different views of the data. By default, the raw time series data is returned.
|
|
21
|
+
# @option aggregation [String] alignment_period The alignment period for per-time series alignment.
|
|
22
|
+
# @option aggregation [String] cross_series_reducer The approach to be used to align individual time series.
|
|
23
|
+
# @option aggregation [String] group_by_fields The set of fields to preserve when crossSeriesReducer is specified.
|
|
24
|
+
# @option aggregation [String] per_series_aligner The approach to be used to combine time series.
|
|
25
|
+
# @param order_by [String] Specifies the order in which the points of the time series should be returned.
|
|
26
|
+
# By default, results are not ordered. Currently, this field must be left blank.
|
|
27
|
+
# @param page_size [String]
|
|
28
|
+
# @param page_token [String]
|
|
29
|
+
# @param view [String] Specifies which information is returned about the time series.
|
|
30
|
+
#
|
|
31
|
+
# @return [Array<Fog::Google::Monitoring::Timeseries>] List of Timeseries.
|
|
32
|
+
def all(filter: nil, interval: nil, aggregation: nil, order_by: nil, page_size: nil, page_token: nil, view: nil)
|
|
33
|
+
data = service.list_timeseries(
|
|
34
|
+
:filter => filter,
|
|
35
|
+
:interval => interval,
|
|
36
|
+
:aggregation => aggregation,
|
|
37
|
+
:order_by => order_by,
|
|
38
|
+
:page_size => page_size,
|
|
39
|
+
:page_token => page_token,
|
|
40
|
+
:view => view
|
|
41
|
+
).to_h[:time_series] || []
|
|
42
|
+
|
|
43
|
+
load(data)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require "fog/core/model"
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Pubsub
|
|
6
|
+
# Represents a ReceivedMessage retrieved from a Google Pubsub
|
|
7
|
+
# subscription. Note that ReceivedMessages are immutable.
|
|
8
|
+
#
|
|
9
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/pull#ReceivedMessage
|
|
10
|
+
class ReceivedMessage < Fog::Model
|
|
11
|
+
identity :ack_id, :aliases => "ackId"
|
|
12
|
+
|
|
13
|
+
attribute :message
|
|
14
|
+
|
|
15
|
+
def initialize(new_attributes = {})
|
|
16
|
+
# Here we secretly store the subscription name we were received on
|
|
17
|
+
# in order to support #acknowledge
|
|
18
|
+
attributes = new_attributes.clone
|
|
19
|
+
@subscription_name = attributes.delete(:subscription_name)
|
|
20
|
+
super(attributes)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Acknowledges a message.
|
|
24
|
+
#
|
|
25
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/acknowledge
|
|
26
|
+
def acknowledge
|
|
27
|
+
requires :ack_id
|
|
28
|
+
|
|
29
|
+
service.acknowledge_subscription(@subscription_name, [ack_id])
|
|
30
|
+
nil
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def reload
|
|
34
|
+
# Message is immutable - do nothing
|
|
35
|
+
Fog::Logger.warning("#reload called on immutable ReceivedMessage")
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Google
|
|
3
|
+
class Pubsub
|
|
4
|
+
# Represents a Pubsub subscription resource
|
|
5
|
+
#
|
|
6
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions
|
|
7
|
+
class Subscription < Fog::Model
|
|
8
|
+
identity :name
|
|
9
|
+
attribute :topic
|
|
10
|
+
attribute :push_config, :aliases => "pushConfig"
|
|
11
|
+
attribute :ack_deadline_seconds, :aliases => "ackDeadlineSeconds"
|
|
12
|
+
|
|
13
|
+
# Pulls from this subscription, returning any available messages. By
|
|
14
|
+
# default, this method returns immediately with up to 10 messages. The
|
|
15
|
+
# option 'return_immediately' allows the method to block until a
|
|
16
|
+
# message is received, or the remote service closes the connection.
|
|
17
|
+
#
|
|
18
|
+
# Note that this method automatically performs a base64 decode on the
|
|
19
|
+
# 'data' field.
|
|
20
|
+
#
|
|
21
|
+
# @param options [Hash] options to modify the pull request
|
|
22
|
+
# @option options [Boolean] :return_immediately If true, method returns
|
|
23
|
+
# after checking for messages. Otherwise the method blocks until one
|
|
24
|
+
# or more messages are available, or the connection is closed.
|
|
25
|
+
# @option options [Number] :max_messages maximum number of messages to
|
|
26
|
+
# receive
|
|
27
|
+
# @return [Array<Fog::Google::Pubsub::ReceivedMessage>] list of
|
|
28
|
+
# received messages, or an empty list if no messages are available.
|
|
29
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/pull
|
|
30
|
+
def pull(options = { :return_immediately => true, :max_messages => 10 })
|
|
31
|
+
requires :name
|
|
32
|
+
|
|
33
|
+
data = service.pull_subscription(name, options).to_h
|
|
34
|
+
|
|
35
|
+
return [] unless data.key?(:received_messages)
|
|
36
|
+
# Turn into a list of ReceivedMessage, but ensure we perform a base64 decode first
|
|
37
|
+
data[:received_messages].map do |recv_message|
|
|
38
|
+
attrs = {
|
|
39
|
+
:service => service,
|
|
40
|
+
:subscription_name => name
|
|
41
|
+
}.merge(recv_message)
|
|
42
|
+
|
|
43
|
+
attrs[:message][:data] = Base64.decode64(recv_message[:message][:data]) if recv_message[:message].key?(:data)
|
|
44
|
+
ReceivedMessage.new(attrs)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Acknowledges a list of received messages for this subscription.
|
|
49
|
+
#
|
|
50
|
+
# @param messages [Array<Fog::Google::Pubsub::ReceivedMessage, #to_s>]
|
|
51
|
+
# A list containing either ReceivedMessage instances to acknowledge,
|
|
52
|
+
# or a list of ackIds (@see
|
|
53
|
+
# https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/pull#ReceivedMessage).
|
|
54
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/acknowledge
|
|
55
|
+
def acknowledge(messages)
|
|
56
|
+
return if messages.empty?
|
|
57
|
+
|
|
58
|
+
ack_ids = messages.map { |m| m.is_a?(ReceivedMessage) ? m.ack_id : m.to_s }
|
|
59
|
+
|
|
60
|
+
service.acknowledge_subscription(name, ack_ids)
|
|
61
|
+
nil
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Save this instance on the remove service.
|
|
65
|
+
#
|
|
66
|
+
# @return [Fog::Google::Pubsub::Subscription] this instance
|
|
67
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/create
|
|
68
|
+
def save
|
|
69
|
+
requires :name, :topic
|
|
70
|
+
|
|
71
|
+
data = service.create_subscription(name, topic, push_config, ack_deadline_seconds).to_h
|
|
72
|
+
merge_attributes(data)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Deletes this subscription on the remote service.
|
|
76
|
+
#
|
|
77
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/delete
|
|
78
|
+
def destroy
|
|
79
|
+
requires :name
|
|
80
|
+
|
|
81
|
+
service.delete_subscription(name)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require "fog/core/collection"
|
|
2
|
+
require "fog/google/models/pubsub/subscription"
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Pubsub
|
|
7
|
+
class Subscriptions < Fog::Collection
|
|
8
|
+
model Fog::Google::Pubsub::Subscription
|
|
9
|
+
|
|
10
|
+
# Lists all subscriptions that exist on the project.
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<Fog::Google::Pubsub::Subscription>] list of
|
|
13
|
+
# subscriptions
|
|
14
|
+
def all
|
|
15
|
+
data = service.list_subscriptions.to_h[:subscriptions] || []
|
|
16
|
+
load(data)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Retrieves a subscription by name
|
|
20
|
+
#
|
|
21
|
+
# @param subscription_name [String] name of subscription to retrieve
|
|
22
|
+
# @return [Fog::Google::Pubsub::Topic] topic found, or nil if not found
|
|
23
|
+
def get(subscription_name)
|
|
24
|
+
subscription = service.get_subscription(subscription_name).to_h
|
|
25
|
+
new(subscription)
|
|
26
|
+
rescue ::Google::Apis::ClientError => e
|
|
27
|
+
raise e unless e.status_code == 404
|
|
28
|
+
nil
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require "fog/core/model"
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Google
|
|
5
|
+
class Pubsub
|
|
6
|
+
# Represents a Pubsub topic resource
|
|
7
|
+
#
|
|
8
|
+
# @see https://cloud.google.com/pubsub/reference/rest/v1/projects.topics#Topic
|
|
9
|
+
class Topic < Fog::Model
|
|
10
|
+
identity :name
|
|
11
|
+
|
|
12
|
+
# Creates this topic resource on the service.
|
|
13
|
+
#
|
|
14
|
+
# @return [Fog::Google::Pubsub::Topic] this instance
|
|
15
|
+
def create
|
|
16
|
+
requires :name
|
|
17
|
+
|
|
18
|
+
service.create_topic(name)
|
|
19
|
+
self
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Deletes this topic resource on the service.
|
|
23
|
+
#
|
|
24
|
+
# @return [Fog::Google::Pubsub::Topic] this instance
|
|
25
|
+
def destroy
|
|
26
|
+
requires :name
|
|
27
|
+
|
|
28
|
+
service.delete_topic(name)
|
|
29
|
+
self
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Publish a message to this topic. This method will automatically
|
|
33
|
+
# encode the message via base64 encoding.
|
|
34
|
+
#
|
|
35
|
+
# @param messages [Array<Hash{String => String}, #to_s>] list of messages
|
|
36
|
+
# to send; if it's a hash, then the value of key "data" will be sent
|
|
37
|
+
# as the message. Additionally, if the hash contains a value for key
|
|
38
|
+
# "attributes", then they will be sent as well as attributes on the
|
|
39
|
+
# message.
|
|
40
|
+
# @return [Array<String>] list of message ids
|
|
41
|
+
def publish(messages)
|
|
42
|
+
requires :name
|
|
43
|
+
|
|
44
|
+
# Ensure our messages are base64 encoded
|
|
45
|
+
encoded_messages = []
|
|
46
|
+
|
|
47
|
+
messages.each do |message|
|
|
48
|
+
encoded_message = {}
|
|
49
|
+
if message.is_a?(Hash)
|
|
50
|
+
if message.key?("data")
|
|
51
|
+
encoded_message[:data] = Base64.strict_encode64(message["data"])
|
|
52
|
+
end
|
|
53
|
+
else
|
|
54
|
+
encoded_message[:data] = Base64.strict_encode64(message.to_s)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
encoded_messages << encoded_message
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
service.publish_topic(name, encoded_messages).to_h[:message_ids]
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Save the instance (does the same thing as #create)
|
|
64
|
+
# @return [Fog::Google::Pubsub::Topic] this instance
|
|
65
|
+
def save
|
|
66
|
+
create
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require "fog/core/collection"
|
|
2
|
+
require "fog/google/models/pubsub/topic"
|
|
3
|
+
|
|
4
|
+
module Fog
|
|
5
|
+
module Google
|
|
6
|
+
class Pubsub
|
|
7
|
+
class Topics < Fog::Collection
|
|
8
|
+
model Fog::Google::Pubsub::Topic
|
|
9
|
+
|
|
10
|
+
# Lists all topics that exist on the project.
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<Fog::Google::Pubsub::Topic>] list of topics
|
|
13
|
+
def all
|
|
14
|
+
data = service.list_topics.to_h[:topics] || []
|
|
15
|
+
load(data)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Retrieves a topic by name
|
|
19
|
+
#
|
|
20
|
+
# @param topic_name [String] name of topic to retrieve
|
|
21
|
+
# @return [Fog::Google::Pubsub::Topic] topic found, or nil if not found
|
|
22
|
+
def get(topic_name)
|
|
23
|
+
topic = service.get_topic(topic_name).to_h
|
|
24
|
+
new(topic)
|
|
25
|
+
rescue ::Google::Apis::ClientError => e
|
|
26
|
+
raise e unless e.status_code == 404
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
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://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/backupRuns
|
|
10
|
+
class BackupRun < Fog::Model
|
|
11
|
+
identity :id
|
|
12
|
+
|
|
13
|
+
attribute :description
|
|
14
|
+
attribute :end_time, :aliases => "endTime"
|
|
15
|
+
attribute :enqueued_time, :aliases => "enqueuedTime"
|
|
16
|
+
attribute :error
|
|
17
|
+
attribute :instance
|
|
18
|
+
attribute :kind
|
|
19
|
+
attribute :self_link, :aliases => "selfLink"
|
|
20
|
+
attribute :start_time, :aliases => "startTime"
|
|
21
|
+
attribute :status
|
|
22
|
+
attribute :type
|
|
23
|
+
attribute :window_start_time, :aliases => "windowStartTime"
|
|
24
|
+
|
|
25
|
+
READY_STATUS = "DONE".freeze
|
|
26
|
+
|
|
27
|
+
##
|
|
28
|
+
# Checks if the instance backup run is done
|
|
29
|
+
#
|
|
30
|
+
# @return [Boolean] True if the backup run is done; False otherwise
|
|
31
|
+
def ready?
|
|
32
|
+
status == READY_STATUS
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
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.
|
|
12
|
+
#
|
|
13
|
+
# @param [String] instance_id Instance ID
|
|
14
|
+
# @return [Array<Fog::Google::SQL::BackupRun>] List of Backup run resources
|
|
15
|
+
def all(instance_id)
|
|
16
|
+
data = service.list_backup_runs(instance_id).to_h[:items] || []
|
|
17
|
+
load(data)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Retrieves a resource containing information about a backup run
|
|
22
|
+
#
|
|
23
|
+
# @param [String] instance_id Instance ID
|
|
24
|
+
# @param [String] backup_run_id Backup Configuration ID
|
|
25
|
+
# @return [Fog::Google::SQL::BackupRun] Backup run resource
|
|
26
|
+
def get(instance_id, backup_run_id)
|
|
27
|
+
backup_run = service.get_backup_run(instance_id, backup_run_id).to_h
|
|
28
|
+
if backup_run
|
|
29
|
+
new(backup_run)
|
|
30
|
+
end
|
|
31
|
+
rescue ::Google::Apis::ClientError => e
|
|
32
|
+
raise e unless e.status_code == 404
|
|
33
|
+
nil
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|