class Fog::Google::SQL::Real

Creates a Cloud SQL instance as a clone of the source instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/clone

Deletes a Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/delete

Deletes a SSL certificate. The change will not take effect until the instance is restarted.

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/delete

Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/export

Retrieves a resource containing information about a backup run

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns/get

Retrieves a resource containing information about a Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/get

Retrieves an instance operation that has been performed on an instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/operations/get

Retrieves a particular SSL certificate (does not include the private key)

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/get

Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/import

Creates a new Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/insert

Creates an SSL certificate. The new certificate will not be usable until the instance is restarted.

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/insert

Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the enqueued time

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/backupRuns/list

List all available database flags for Google Cloud SQL instances

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/flags/list

Lists instances under a given project in the alphabetical order of the instance name

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/list

Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/operations/list

Lists all of the current SSL certificates for the instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/sslCerts/list

Lists all available service tiers for Google Cloud SQL

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/tiers/list

Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a server certificate

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/resetSslConfig

Restarts a Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/restart

Restores a backup of a Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/restoreBackup

Sets the password for the root user

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/setRootPassword

Updates settings of a Cloud SQL instance

@see developers.google.com/cloud-sql/docs/admin-api/v1beta3/instances/update

Attributes

client[RW]
sql[R]

Public Class Methods

new(options) click to toggle source
# File lib/fog/google/sql.rb, line 122
def initialize(options)
  shared_initialize(options[:google_project], GOOGLE_SQL_API_VERSION, GOOGLE_SQL_BASE_URL)
  options.merge!(:google_api_scope_url => GOOGLE_SQL_API_SCOPE_URLS.join(' '))

  @client = initialize_google_client(options)
  @sql = @client.discovered_api('sqladmin', api_version)
end

Public Instance Methods

clone_instance(instance_id, destination_name, options = {}) click to toggle source
# File lib/fog/google/requests/sql/clone_instance.rb, line 10
def clone_instance(instance_id, destination_name, options = {})
  # The @sql.instances.clone method is overrided by the standard Ruby clone method
  # so we cannot call it because it will just clone the @sql.instances instance.
  # Instead we need to find the proper method trough the discovered_methods.
  api_method = @sql.instances.discovered_methods.find { |x| x.id == 'sql.instances.clone' }
  parameters = {
    'project' => @project,
  }

  body = {
    'cloneContext' => {
      'kind' => 'sql#cloneContext',
      'sourceInstanceName' => instance_id,
      'destinationInstanceName' => destination_name,
    }
  }

  if options[:log_position]
    body['cloneContext']['binLogCoordinates'] = {
      'kind' => 'sql#binLogCoordinates',
      'binLogFileName' => options[:log_filename],
      'binLogPosition' => options[:log_position],
    }
  end

  request(api_method, parameters, body)
end
delete_instance(instance_id) click to toggle source
# File lib/fog/google/requests/sql/delete_instance.rb, line 10
def delete_instance(instance_id)
  api_method = @sql.instances.delete
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
delete_ssl_cert(instance_id, sha1_fingerprint) click to toggle source
# File lib/fog/google/requests/sql/delete_ssl_cert.rb, line 10
def delete_ssl_cert(instance_id, sha1_fingerprint)
  api_method = @sql.ssl_certs.delete
  parameters = {
    'project' => @project,
    'instance' => instance_id,
    'sha1Fingerprint' => sha1_fingerprint,
  }

  request(api_method, parameters)
end
export_instance(instance_id, uri, options = {}) click to toggle source
# File lib/fog/google/requests/sql/export_instance.rb, line 10
def export_instance(instance_id, uri, options = {})
  api_method = @sql.instances.export
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  body = {
    'exportContext' => {
      'kind' => 'sql#exportContext',
      'uri' => uri,
      'database' => Array(options[:databases]),
      'table' => Array(options[:tables]),
    }
  }

  request(api_method, parameters, body)
end
get_backup_run(instance_id, backup_configuration_id, due_time) click to toggle source
# File lib/fog/google/requests/sql/get_backup_run.rb, line 10
def get_backup_run(instance_id, backup_configuration_id, due_time)
  api_method = @sql.backup_runs.get
  parameters = {
    'project' => @project,
    'instance' => instance_id,
    'backupConfiguration' => backup_configuration_id,
    'dueTime' => due_time,
  }

  request(api_method, parameters)
end
get_instance(instance_id) click to toggle source
# File lib/fog/google/requests/sql/get_instance.rb, line 10
def get_instance(instance_id)
  api_method = @sql.instances.get
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
get_operation(instance_id, operation_id) click to toggle source
# File lib/fog/google/requests/sql/get_operation.rb, line 10
def get_operation(instance_id, operation_id)
  api_method = @sql.operations.get
  parameters = {
    'project' => @project,
    'instance' => instance_id,
    'operation' => operation_id,
  }

  request(api_method, parameters)
end
get_ssl_cert(instance_id, sha1_fingerprint) click to toggle source
# File lib/fog/google/requests/sql/get_ssl_cert.rb, line 10
def get_ssl_cert(instance_id, sha1_fingerprint)
  api_method = @sql.ssl_certs.get
  parameters = {
    'project' => @project,
    'instance' => instance_id,
    'sha1Fingerprint' => sha1_fingerprint,
  }

  request(api_method, parameters)
end
import_instance(instance_id, uri, options = {}) click to toggle source
# File lib/fog/google/requests/sql/import_instance.rb, line 10
def import_instance(instance_id, uri, options = {})
  api_method = @sql.instances.import
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  body = {
    'importContext' => {
      'kind' => 'sql#importContext',
      'uri' => Array(uri),
      'database' => options[:database],
    }
  }

  request(api_method, parameters, body)
end
insert_instance(name, tier, options = {}) click to toggle source
# File lib/fog/google/requests/sql/insert_instance.rb, line 10
def insert_instance(name, tier, options = {})
  api_method = @sql.instances.insert
  parameters = {
    'project' => @project,
  }

  body = {
    'project' => @project,
    'instance' => name,
    'settings' => {
      'tier' => tier,
    }
  }

  if options[:region]
    body['region'] = options[:region]
  end
  if options[:activation_policy]
    body['settings']['activationPolicy'] = options[:activation_policy]
  end
  if options[:autorized_gae_applications]
    body['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
  end
  if options[:backup_configuration]
    body['settings']['backupConfiguration'] = options[:backup_configuration]
  end
  if options[:ip_configuration_authorized_networks]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
  end
  if options[:ip_configuration_enabled]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
  end
  if options[:ip_configuration_require_ssl]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
  end
  if options[:location_preference_zone_follow_gae_application]
    body['settings']['locationPreference'] ||= {}
    body['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
  end
  if options[:location_preference_zone]
    body['settings']['locationPreference'] ||= {}
    body['settings']['locationPreference']['zone'] = options[:location_preference_zone]
  end
  if options[:pricing_plan]
    body['settings']['pricingPlan'] = options[:pricing_plan]
  end
  if options[:replication_type]
    body['settings']['replicationType'] = options[:replication_type]
  end

  request(api_method, parameters, body)
end
insert_ssl_cert(instance_id, common_name) click to toggle source
# File lib/fog/google/requests/sql/insert_ssl_cert.rb, line 10
def insert_ssl_cert(instance_id, common_name)
  api_method = @sql.ssl_certs.insert
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  body = {
    'commonName' => common_name
  }

  request(api_method, parameters, body)
end
list_backup_runs(instance_id, backup_configuration_id) click to toggle source
# File lib/fog/google/requests/sql/list_backup_runs.rb, line 11
def list_backup_runs(instance_id, backup_configuration_id)
  api_method = @sql.backup_runs.list
  parameters = {
    'project' => @project,
    'instance' => instance_id,
    'backupConfiguration' => backup_configuration_id,
  }

  request(api_method, parameters)
end
list_flags() click to toggle source
# File lib/fog/google/requests/sql/list_flags.rb, line 10
def list_flags
  api_method = @sql.flags.list
  parameters = {}

  request(api_method, parameters)
end
list_instances() click to toggle source
# File lib/fog/google/requests/sql/list_instances.rb, line 10
def list_instances
  api_method = @sql.instances.list
  parameters = {
    'project' => @project,
  }

  request(api_method, parameters)
end
list_operations(instance_id) click to toggle source
# File lib/fog/google/requests/sql/list_operations.rb, line 11
def list_operations(instance_id)
  api_method = @sql.operations.list
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
list_ssl_certs(instance_id) click to toggle source
# File lib/fog/google/requests/sql/list_ssl_certs.rb, line 10
def list_ssl_certs(instance_id)
  api_method = @sql.ssl_certs.list
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
list_tiers() click to toggle source
# File lib/fog/google/requests/sql/list_tiers.rb, line 10
def list_tiers
  api_method = @sql.tiers.list
  parameters = {
    'project' => @project,
  }

  request(api_method, parameters)
end
reset_instance_ssl_config(instance_id) click to toggle source
# File lib/fog/google/requests/sql/reset_instance_ssl_config.rb, line 12
def reset_instance_ssl_config(instance_id)
  api_method = @sql.instances.reset_ssl_config
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
restart_instance(instance_id) click to toggle source
# File lib/fog/google/requests/sql/restart_instance.rb, line 10
def restart_instance(instance_id)
  api_method = @sql.instances.restart
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  request(api_method, parameters)
end
restore_instance_backup(identity, backup_configuration, due_time) click to toggle source
# File lib/fog/google/requests/sql/restore_instance_backup.rb, line 10
def restore_instance_backup(identity, backup_configuration, due_time)
  api_method = @sql.instances.reset_ssl_config
  parameters = {
    'project' => @project,
    'instance' => identity,
    'backupConfiguration' => backup_configuration,
    'dueTime' => due_time,
  }

  request(api_method, parameters)
end
set_instance_root_password(instance_id, password) click to toggle source
# File lib/fog/google/requests/sql/set_instance_root_password.rb, line 10
def set_instance_root_password(instance_id, password)
  api_method = @sql.instances.set_root_password
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  body = {
    'setRootPasswordContext' => {
      'kind' => 'sql#setRootUserContext',
      'password' => password,
    }
  }

  request(api_method, parameters, body)
end
update_instance(instance_id, settings_version, tier, options = {}) click to toggle source
# File lib/fog/google/requests/sql/update_instance.rb, line 10
def update_instance(instance_id, settings_version, tier, options = {})
  api_method = @sql.instances.update
  parameters = {
    'project' => @project,
    'instance' => instance_id,
  }

  body = {
    'project' => @project,
    'instance' => instance_id,
    'settings' => {
      'settingsVersion' => settings_version,
      'tier' => tier,
    }
  }

  if options[:activation_policy]
    body['settings']['activationPolicy'] = options[:activation_policy]
  end
  if options[:autorized_gae_applications]
    body['settings']['authorizedGaeApplications'] = Array(options[:autorized_gae_applications])
  end
  if options[:backup_configuration]
    body['settings']['backupConfiguration'] = options[:backup_configuration]
  end
  if options[:ip_configuration_authorized_networks]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['authorizedNetworks'] = Array(options[:ip_configuration_authorized_networks])
  end
  if options[:ip_configuration_enabled]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['enabled'] = options[:ip_configuration_enabled]
  end
  if options[:ip_configuration_require_ssl]
    body['settings']['ipConfiguration'] ||= {}
    body['settings']['ipConfiguration']['requireSsl'] = options[:ip_configuration_require_ssl]
  end
  if options[:location_preference_zone_follow_gae_application]
    body['settings']['locationPreference'] ||= {}
    body['settings']['locationPreference']['followGaeApplication'] = options[:location_preference_zone_follow_gae_application]
  end
  if options[:location_preference_zone]
    body['settings']['locationPreference'] ||= {}
    body['settings']['locationPreference']['zone'] = options[:location_preference_zone]
  end
  if options[:pricing_plan]
    body['settings']['pricingPlan'] = options[:pricing_plan]
  end
  if options[:replication_type]
    body['settings']['replicationType'] = options[:replication_type]
  end

  request(api_method, parameters, body)
end