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,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Get access control list for an Google Storage bucket
|
|
6
|
+
# @see https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/list
|
|
7
|
+
#
|
|
8
|
+
# @param bucket_name [String] Name of bucket object is in
|
|
9
|
+
# @return [Google::Apis::StorageV1::BucketAccessControls]
|
|
10
|
+
def list_bucket_acl(bucket_name)
|
|
11
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
12
|
+
|
|
13
|
+
@storage_json.list_bucket_access_controls(bucket_name)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class Mock
|
|
18
|
+
def list_bucket_acl(_bucket_name)
|
|
19
|
+
# :no-coverage:
|
|
20
|
+
Fog::Mock.not_implemented
|
|
21
|
+
# :no-coverage:
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieves a list of buckets for a given project
|
|
6
|
+
# https://cloud.google.com/storage/docs/json_api/v1/buckets/list
|
|
7
|
+
#
|
|
8
|
+
# @return [Google::Apis::StorageV1::Buckets]
|
|
9
|
+
# TODO: check if very large lists require working with nextPageToken
|
|
10
|
+
def list_buckets(max_results: nil, page_token: nil,
|
|
11
|
+
prefix: nil, projection: nil)
|
|
12
|
+
@storage_json.list_buckets(
|
|
13
|
+
@project,
|
|
14
|
+
:max_results => max_results,
|
|
15
|
+
:page_token => page_token,
|
|
16
|
+
:prefix => prefix,
|
|
17
|
+
:projection => projection
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
class Mock
|
|
22
|
+
def list_buckets
|
|
23
|
+
# :no-coverage:
|
|
24
|
+
Fog::Mock.not_implemented
|
|
25
|
+
# :no-coverage:
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# List access control list for an Google Storage object
|
|
6
|
+
# https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/get
|
|
7
|
+
#
|
|
8
|
+
# @param bucket_name [String] Name of bucket object is in
|
|
9
|
+
# @param object_name [String] Name of object to add ACL to
|
|
10
|
+
# @return [Google::Apis::StorageV1::ObjectAccessControls]
|
|
11
|
+
def list_object_acl(bucket_name, object_name, generation: nil)
|
|
12
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
13
|
+
raise ArgumentError.new("object_name is required") unless object_name
|
|
14
|
+
|
|
15
|
+
@storage_json.list_object_access_controls(bucket_name, object_name,
|
|
16
|
+
:generation => generation)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Mock
|
|
21
|
+
def list_object_acl(_bucket_name, _object_name)
|
|
22
|
+
# :no-coverage:
|
|
23
|
+
Fog::Mock.not_implemented
|
|
24
|
+
# :no-coverage:
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Lists objects in a bucket matching some criteria.
|
|
6
|
+
#
|
|
7
|
+
# @param bucket [String] Name of bucket to list
|
|
8
|
+
# @param options [Hash] Optional hash of options
|
|
9
|
+
# @option options [String] :delimiter Delimiter to collapse objects
|
|
10
|
+
# under to emulate a directory-like mode
|
|
11
|
+
# @option options [Integer] :max_results Maximum number of results to
|
|
12
|
+
# retrieve
|
|
13
|
+
# @option options [String] :page_token Token to select a particular page
|
|
14
|
+
# of results
|
|
15
|
+
# @option options [String] :prefix String that an object must begin with
|
|
16
|
+
# in order to be returned
|
|
17
|
+
# @option options ["full", "noAcl"] :projection Set of properties to
|
|
18
|
+
# return (defaults to "noAcl")
|
|
19
|
+
# @option options [Boolean] :versions If true, lists all versions of an
|
|
20
|
+
# object as distinct results (defaults to False)
|
|
21
|
+
# @return [Google::Apis::StorageV1::Objects]
|
|
22
|
+
def list_objects(bucket, options = {})
|
|
23
|
+
allowed_opts = %i(
|
|
24
|
+
delimiter
|
|
25
|
+
max_results
|
|
26
|
+
page_token
|
|
27
|
+
prefix
|
|
28
|
+
projection
|
|
29
|
+
versions
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
@storage_json.list_objects(
|
|
33
|
+
bucket,
|
|
34
|
+
options.select { |k, _| allowed_opts.include? k }
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class Mock
|
|
40
|
+
def list_objects(_bucket, _options = {})
|
|
41
|
+
# :no-coverage:
|
|
42
|
+
Fog::Mock.not_implemented
|
|
43
|
+
# :no-coverage:
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Create a Google Storage bucket
|
|
6
|
+
# @see https://cloud.google.com/storage/docs/json_api/v1/buckets/insert
|
|
7
|
+
#
|
|
8
|
+
# @param bucket_name [String] Name of bucket to create
|
|
9
|
+
# @param options [Hash]
|
|
10
|
+
# Optional fields. Acceptable options include
|
|
11
|
+
# any writeable bucket attribute (see docs)
|
|
12
|
+
# or one of the following options:
|
|
13
|
+
# @param predefined_acl [String] Applies a predefined set of access controls to this bucket.
|
|
14
|
+
# @param predefined_default_object_acl [String] Applies a predefined set of default object access controls
|
|
15
|
+
#
|
|
16
|
+
# @return [Google::Apis::StorageV1::Bucket]
|
|
17
|
+
def put_bucket(bucket_name,
|
|
18
|
+
predefined_acl: nil,
|
|
19
|
+
predefined_default_object_acl: nil,
|
|
20
|
+
**options)
|
|
21
|
+
bucket = ::Google::Apis::StorageV1::Bucket.new(
|
|
22
|
+
options.merge(:name => bucket_name)
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
@storage_json.insert_bucket(
|
|
26
|
+
@project, bucket,
|
|
27
|
+
:predefined_acl => predefined_acl,
|
|
28
|
+
:predefined_default_object_acl => predefined_default_object_acl
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class Mock
|
|
34
|
+
def put_bucket(_bucket_name, _options = {})
|
|
35
|
+
# :no-coverage:
|
|
36
|
+
Fog::Mock.not_implemented
|
|
37
|
+
# :no-coverage:
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Change access control list for an Google Storage bucket
|
|
6
|
+
# https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/insert
|
|
7
|
+
#
|
|
8
|
+
# @param bucket_name [String] Name of bucket object is in
|
|
9
|
+
# @param acl [Hash] ACL hash to add to bucket, see GCS documentation above
|
|
10
|
+
# @return [Google::Apis::StorageV1::BucketAccessControl]
|
|
11
|
+
def put_bucket_acl(bucket_name, acl = {})
|
|
12
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
13
|
+
raise ArgumentError.new("acl is required") unless acl
|
|
14
|
+
|
|
15
|
+
acl_update = ::Google::Apis::StorageV1::BucketAccessControl.new(acl)
|
|
16
|
+
@storage_json.insert_bucket_access_control(bucket_name, acl_update)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Mock
|
|
21
|
+
def put_bucket_acl(_bucket_name, _acl)
|
|
22
|
+
# :no-coverage:
|
|
23
|
+
Fog::Mock.not_implemented
|
|
24
|
+
# :no-coverage:
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Storage
|
|
5
|
+
class GoogleJSON
|
|
6
|
+
class Real
|
|
7
|
+
# Create an object in an Google Storage bucket
|
|
8
|
+
# https://cloud.google.com/storage/docs/json_api/v1/objects/insert
|
|
9
|
+
#
|
|
10
|
+
# @param bucket_name [String] Name of bucket to create object in
|
|
11
|
+
# @param object_name [String] Name of object to create
|
|
12
|
+
# @param data [File|String|Paperclip::AbstractAdapter] File, String or Paperclip adapter to create object from
|
|
13
|
+
# @param options [Hash] Optional query parameters or Object attributes
|
|
14
|
+
# Optional query parameters are listed below.
|
|
15
|
+
# @param content_encoding [String]
|
|
16
|
+
# If set, sets the contentEncoding property of the final object to
|
|
17
|
+
# this value.
|
|
18
|
+
# @param if_generation_match [Fixnum]
|
|
19
|
+
# Makes the operation conditional on whether the object's current
|
|
20
|
+
# generation matches the given value. Setting to 0 makes the operation
|
|
21
|
+
# succeed only if there are no live versions of the object.
|
|
22
|
+
# @param if_generation_not_match [Fixnum]
|
|
23
|
+
# Makes the operation conditional on whether the object's current
|
|
24
|
+
# generation does not match the given value. If no live object exists,
|
|
25
|
+
# the precondition fails. Setting to 0 makes the operation succeed
|
|
26
|
+
# only if there is a live version of the object.
|
|
27
|
+
# @param if_metageneration_match [Fixnum]
|
|
28
|
+
# Makes the operation conditional on whether the object's
|
|
29
|
+
# current metageneration matches the given value.
|
|
30
|
+
# @param if_metageneration_not_match [Fixnum]
|
|
31
|
+
# Makes the operation conditional on whether the object's
|
|
32
|
+
# current metageneration does not match the given value.
|
|
33
|
+
# @param predefined_acl [String]
|
|
34
|
+
# Apply a predefined set of access controls to this object.
|
|
35
|
+
# @param projection [String]
|
|
36
|
+
# Set of properties to return. Defaults to noAcl,
|
|
37
|
+
# unless the object resource specifies the acl property,
|
|
38
|
+
# when it defaults to full.
|
|
39
|
+
# @return [Google::Apis::StorageV1::Object]
|
|
40
|
+
def put_object(bucket_name,
|
|
41
|
+
object_name,
|
|
42
|
+
data,
|
|
43
|
+
content_encoding: nil,
|
|
44
|
+
if_generation_match: nil,
|
|
45
|
+
if_generation_not_match: nil,
|
|
46
|
+
if_metageneration_match: nil,
|
|
47
|
+
if_metageneration_not_match: nil,
|
|
48
|
+
kms_key_name: nil,
|
|
49
|
+
predefined_acl: nil,
|
|
50
|
+
**options)
|
|
51
|
+
data, options = normalize_data(data, options)
|
|
52
|
+
|
|
53
|
+
object_config = ::Google::Apis::StorageV1::Object.new(
|
|
54
|
+
options.merge(:name => object_name)
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
@storage_json.insert_object(
|
|
58
|
+
bucket_name, object_config,
|
|
59
|
+
:content_encoding => content_encoding,
|
|
60
|
+
:if_generation_match => if_generation_match,
|
|
61
|
+
:if_generation_not_match => if_generation_not_match,
|
|
62
|
+
:if_metageneration_match => if_metageneration_match,
|
|
63
|
+
:if_metageneration_not_match => if_metageneration_not_match,
|
|
64
|
+
:kms_key_name => kms_key_name,
|
|
65
|
+
:predefined_acl => predefined_acl,
|
|
66
|
+
:options => ::Google::Apis::RequestOptions.default.merge(options),
|
|
67
|
+
# see https://developers.google.com/api-client-library/ruby/guide/media_upload
|
|
68
|
+
:content_type => options[:content_type],
|
|
69
|
+
:upload_source => data
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
protected
|
|
74
|
+
|
|
75
|
+
def normalize_data(data, options)
|
|
76
|
+
raise ArgumentError.new("data is required") unless data
|
|
77
|
+
if data.is_a?(String)
|
|
78
|
+
data = StringIO.new(data)
|
|
79
|
+
options[:content_type] ||= "text/plain"
|
|
80
|
+
elsif data.is_a?(::File)
|
|
81
|
+
options[:content_type] ||= Fog::Storage.parse_data(data)[:headers]["Content-Type"]
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Paperclip::AbstractAdapter
|
|
85
|
+
if data.respond_to?(:content_type) && data.respond_to?(:path)
|
|
86
|
+
options[:content_type] ||= data.content_type
|
|
87
|
+
data = data.path
|
|
88
|
+
end
|
|
89
|
+
[data, options]
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class Mock
|
|
94
|
+
def put_object(_bucket_name, _object_name, _data, _options = {})
|
|
95
|
+
# :no-coverage:
|
|
96
|
+
Fog::Mock.not_implemented
|
|
97
|
+
# :no-coverage:
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Change access control list for an Google Storage object
|
|
6
|
+
#
|
|
7
|
+
# @param bucket_name [String] name of bucket object is in
|
|
8
|
+
# @param object_name [String] name of object to add ACL to
|
|
9
|
+
# @param acl [Hash] ACL hash to add to bucket, see GCS documentation.
|
|
10
|
+
#
|
|
11
|
+
# @see https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert
|
|
12
|
+
# @return [Google::Apis::StorageV1::ObjectAccessControl]
|
|
13
|
+
def put_object_acl(bucket_name, object_name, acl)
|
|
14
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
15
|
+
raise ArgumentError.new("object_name is required") unless object_name
|
|
16
|
+
raise ArgumentError.new("acl is required") unless acl
|
|
17
|
+
|
|
18
|
+
acl_object = ::Google::Apis::StorageV1::ObjectAccessControl.new(acl)
|
|
19
|
+
|
|
20
|
+
@storage_json.insert_object_access_control(
|
|
21
|
+
bucket_name, object_name, acl_object
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class Mock
|
|
27
|
+
def put_object_acl(_bucket_name, _object_name, _acl)
|
|
28
|
+
# :no-coverage:
|
|
29
|
+
Fog::Mock.not_implemented
|
|
30
|
+
# :no-coverage:
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleJSON
|
|
4
|
+
class Real
|
|
5
|
+
# Get an expiring object url from Google Storage for putting an object
|
|
6
|
+
# https://cloud.google.com/storage/docs/access-control#Signed-URLs
|
|
7
|
+
#
|
|
8
|
+
# @param bucket_name [String] Name of bucket containing object
|
|
9
|
+
# @param object_name [String] Name of object to get expiring url for
|
|
10
|
+
# @param expires [Time] Expiry time for this URL
|
|
11
|
+
# @param headers [Hash] Optional hash of headers to include
|
|
12
|
+
# @option options [String] "x-goog-acl" Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read'].
|
|
13
|
+
# If you want a file to be public you should to add { 'x-goog-acl' => 'public-read' } to headers
|
|
14
|
+
# and then call for example: curl -H "x-goog-acl:public-read" "signed url"
|
|
15
|
+
# @return [String] Expiring object https URL
|
|
16
|
+
def put_object_url(bucket_name, object_name, expires, headers = {})
|
|
17
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
18
|
+
raise ArgumentError.new("object_name is required") unless object_name
|
|
19
|
+
https_url({
|
|
20
|
+
:headers => headers,
|
|
21
|
+
:host => @host,
|
|
22
|
+
:method => "PUT",
|
|
23
|
+
:path => "#{bucket_name}/#{object_name}"
|
|
24
|
+
}, expires)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class Mock
|
|
29
|
+
def put_object_url(bucket_name, object_name, expires, headers = {})
|
|
30
|
+
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
|
31
|
+
raise ArgumentError.new("object_name is required") unless object_name
|
|
32
|
+
https_url({
|
|
33
|
+
:headers => headers,
|
|
34
|
+
:host => @host,
|
|
35
|
+
:method => "PUT",
|
|
36
|
+
:path => "#{bucket_name}/#{object_name}"
|
|
37
|
+
}, expires)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'addressable'
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Storage
|
|
5
|
+
class GoogleJSON
|
|
6
|
+
module Utils
|
|
7
|
+
def http_url(params, expires)
|
|
8
|
+
"http://" << host_path_query(params, expires)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def https_url(params, expires)
|
|
12
|
+
"https://" << host_path_query(params, expires)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def url(params, expires)
|
|
16
|
+
Fog::Logger.deprecation("Fog::Storage::Google => #url is deprecated, use #https_url instead [light_black](#{caller.first})[/]")
|
|
17
|
+
https_url(params, expires)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def host_path_query(params, expires)
|
|
23
|
+
params[:headers]["Date"] = expires.to_i
|
|
24
|
+
params[:path] = ::Addressable::URI.encode_component(params[:path], Addressable::URI::CharacterClasses::PATH)
|
|
25
|
+
query = []
|
|
26
|
+
|
|
27
|
+
if params[:query]
|
|
28
|
+
filtered = params[:query].reject { |k, v| k.nil? || v.nil? }
|
|
29
|
+
query = filtered.map { |k, v| [k.to_s, Fog::Google.escape(v)].join("=") }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
query << "GoogleAccessId=#{google_access_id}"
|
|
33
|
+
query << "Signature=#{CGI.escape(signature(params))}"
|
|
34
|
+
query << "Expires=#{params[:headers]['Date']}"
|
|
35
|
+
"#{params[:host]}/#{params[:path]}?#{query.join('&')}"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Storage
|
|
3
|
+
class GoogleXML < Fog::Service
|
|
4
|
+
autoload :Mock, File.expand_path("../google_xml/mock", __FILE__)
|
|
5
|
+
autoload :Real, File.expand_path("../google_xml/real", __FILE__)
|
|
6
|
+
autoload :Utils, File.expand_path("../google_xml/utils", __FILE__)
|
|
7
|
+
|
|
8
|
+
requires :google_storage_access_key_id, :google_storage_secret_access_key
|
|
9
|
+
recognizes :host, :port, :scheme, :persistent, :path_style
|
|
10
|
+
|
|
11
|
+
model_path "fog/storage/google_xml/models"
|
|
12
|
+
collection :directories
|
|
13
|
+
model :directory
|
|
14
|
+
collection :files
|
|
15
|
+
model :file
|
|
16
|
+
|
|
17
|
+
request_path "fog/storage/google_xml/requests"
|
|
18
|
+
request :copy_object
|
|
19
|
+
request :delete_bucket
|
|
20
|
+
request :delete_object
|
|
21
|
+
request :delete_object_url
|
|
22
|
+
request :get_bucket
|
|
23
|
+
request :get_bucket_acl
|
|
24
|
+
request :get_object
|
|
25
|
+
request :get_object_acl
|
|
26
|
+
request :get_object_http_url
|
|
27
|
+
request :get_object_https_url
|
|
28
|
+
request :get_object_url
|
|
29
|
+
request :get_service
|
|
30
|
+
request :head_object
|
|
31
|
+
request :put_bucket
|
|
32
|
+
request :put_bucket_acl
|
|
33
|
+
request :put_object
|
|
34
|
+
request :put_object_acl
|
|
35
|
+
request :put_object_url
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|