class Fog::Google::SQL::Instance
Constants
- MAINTENANCE_STATE
- PENDING_CREATE_STATE
- RUNNABLE_STATE
- SUSPENDED_STATE
- UNKNOWN_STATE
Public Instance Methods
Returns the activation policy for this instance
@return [String] The activation policy for this instance
# File lib/fog/google/models/sql/instance.rb, line 46 def activation_policy settings[:activation_policy] end
Returns the daily backup configuration for the instance
@return [Hash] The daily backup configuration for the instance
# File lib/fog/google/models/sql/instance.rb, line 62 def backup_configuration settings["backup_configuration"] end
Creates a Cloud SQL instance as a clone of the source instance
@param [String] destination_name Name of the Cloud SQL instance to be created as a clone @param [Boolean] async If the operation must be performed asynchronously (true by default) @param [String] log_filename Name of the binary log file for a Cloud SQL instance @param [Integer] log_position Position (offset) within the binary log file @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 74 def clone(destination_name, async: true, log_filename: nil, log_position: nil) requires :identity data = service.clone_instance( identity, destination_name, :log_filename => log_filename, :log_position => log_position ) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Creates a Cloud SQL instance @param [Boolean] async If the operation must be performed asynchronously
This is true by default since SQL instances return Google::Apis::ClientError: invalidState whenever an instance is in a transition process (creation, deletion, etc.) which makes it hard to operate unless one puts guard clauses on Google::Apis::ClientError everywhere. TODO: Rethink this when API graduates out of beta. (Written as of V1beta4)
@return [Fog::Google::SQL::Instance] Instance resource
# File lib/fog/google/models/sql/instance.rb, line 97 def create(async = false) requires :identity data = service.insert_instance(identity, attributes[:tier], attributes) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.wait_for { ready? } unless async reload end
Returns the database flags passed to the instance at startup
@return [Array<Hash>] The database flags passed to the instance at startup
# File lib/fog/google/models/sql/instance.rb, line 110 def database_flags settings[:database_flags] end
Deletes a Cloud SQL instance
@param [Boolean] async If the operation must be performed asynchronously (false by default)
See Fog::Google::SQL::Instance.create on details why default is set this way.
@return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 121 def destroy(async = false) requires :identity # TODO(2.0): Add a deprecation warning here, depending on the decision in #27 # This is a compatibility fix leftover from breaking named parameter change if async.is_a?(Hash) async = async[:async] end data = service.delete_instance(identity) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file
@param [String] uri The path to the file in Google Cloud Storage where the export will be stored,
or where it was already stored
@param [Hash] options Method options @option options [Array<String>] :databases Databases (for example, guestbook) from which the export is made.
If unspecified, all databases are exported.
@option options [Array<String>] :tables Tables to export, or that were exported, from the specified database.
If you specify tables, specify one and only one database.
@option options [Boolean] :async If the operation must be performed asynchronously (true by default) @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 147 def export(uri, options: {}) requires :identity data = service.export_instance(identity, uri, options) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage
@param [Array<String>] uri A path to the MySQL dump file in Google Cloud Storage from which the import is
made
@param [Hash] options Method options @option options [String] :database The database (for example, guestbook) to which the import is made.
If not set, it is assumed that the database is specified in the file to be imported.
@option options [Boolean] :async If the operation must be performed asynchronously (true by default) @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 165 def import(uri, options = {}) requires :identity data = service.import_instance(identity, uri, options) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless options.fetch(:async, true) } end
Returns whether the instance should be assigned an IP address or not
@return [Boolean] Whether the instance should be assigned an IP address or not
# File lib/fog/google/models/sql/instance.rb, line 186 def ip_configuration_ipv4_enabled settings.fetch(:ip_configuration, {})[:ipv4_enabled] end
Returns whether SSL connections over IP should be enforced or not.
@return [Boolean] Whether SSL connections over IP should be enforced or not.
# File lib/fog/google/models/sql/instance.rb, line 194 def ip_configuration_require_ssl settings.fetch(:ip_configuration, {})[:require_ssl] end
Returns the AppEngine application to follow
@return [String] The AppEngine application to follow
# File lib/fog/google/models/sql/instance.rb, line 202 def location_preference_zone_follow_gae_application settings.fetch(:location_preference, {})[:follow_gae_application] end
Returns the pricing plan for this instance
@return [String] The pricing plan for this instance
# File lib/fog/google/models/sql/instance.rb, line 218 def pricing_plan settings[:pricing_plan] end
Checks if the instance is running
@return [Boolean] True if the instance is running; False otherwise
# File lib/fog/google/models/sql/instance.rb, line 226 def ready? state == RUNNABLE_STATE end
Returns the type of replication this instance uses
@return [String] The type of replication this instance uses
# File lib/fog/google/models/sql/instance.rb, line 234 def replication_type settings[:replication_type] end
Deletes all client certificates and generates a new server SSL certificate for the instance
@param [Boolean] async If the operation must be performed asynchronously (true by default) @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 243 def reset_ssl_config(async: true) requires :identity data = service.reset_instance_ssl_config(identity) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Restarts a Cloud SQL instance
@param [Boolean] async If the operation must be performed asynchronously (true by default) @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 256 def restart(async: true) requires :identity data = service.restart_instance(identity) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Restores a backup of a Cloud SQL instance
@param [String] backup_run_id The identifier of the backup configuration @param [Boolean] async If the operation must be performed asynchronously (true by default) @return [Fog::Google::SQL::Operation] A Operation resource
# File lib/fog/google/models/sql/instance.rb, line 270 def restore_backup(backup_run_id, async: true) requires :identity data = service.restore_instance_backup(identity, backup_run_id) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.tap { |o| o.wait_for { ready? } unless async } end
Returns the version of instance settings
@return [String] The version of instance settings
# File lib/fog/google/models/sql/instance.rb, line 290 def settings_version settings[:settings_version] end
Lists all of the current SSL certificates for the instance
@return [Array<Fog::Google::SQL::SslCert>] List of SSL certificate resources
# File lib/fog/google/models/sql/instance.rb, line 298 def ssl_certs requires :identity service.ssl_certs.all(identity) end
Returns the tier of service for this instance
@return [String] The tier of service for this instance
# File lib/fog/google/models/sql/instance.rb, line 308 def tier settings[:tier] end
Updates settings of a Cloud SQL instance
@return [Fog::Google::SQL::Instance] Instance resource
# File lib/fog/google/models/sql/instance.rb, line 316 def update requires :identity, :settings_version, :tier data = service.update_instance(identity, settings_version, tier, settings) operation = Fog::Google::SQL::Operations.new(:service => service).get(data.name) operation.wait_for { ready? } reload end