class QingCloud::SDK::InstanceService

Attributes

config[RW]
properties[RW]

Public Class Methods

new(config, properties) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 24
def initialize(config, properties)
  self.config     = config
  self.properties = properties.deep_symbolize_keys
end

Public Instance Methods

describe_instance_types(instance_types: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/describe_instance_types.html

# File lib/qingcloud/sdk/service/instance.rb, line 30
def describe_instance_types(instance_types: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'DescribeInstanceTypes',
    request_method: 'GET',
    request_params: {
      'instance_types' => instance_types,
    },
  }

  describe_instance_types_input_validate input

  request = Request.new input
  request.send
end
describe_instances(image_id: [], instance_class: nil, instance_type: [], instances: [], limit: nil, offset: nil, search_word: '', status: [], tags: [], verbose: nil) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/describe_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 56
def describe_instances(image_id: [], instance_class: nil, instance_type: [], instances: [], limit: nil, offset: nil, search_word: '', status: [], tags: [], verbose: nil)
  input = {
    config:         config,
    properties:     properties,
    api_name:       'DescribeInstances',
    request_method: 'GET',
    request_params: {
      'image_id'       => image_id,
      'instance_class' => instance_class, # instance_class's available values: 0, 1
      'instance_type'  => instance_type,
      'instances'      => instances,
      'limit'          => limit,
      'offset'         => offset,
      'search_word'    => search_word,
      'status'         => status,
      'tags'           => tags,
      'verbose'        => verbose, # verbose's available values: 0, 1
    },
  }

  describe_instances_input_validate input

  request = Request.new input
  request.send
end
get_instance_monitor(end_time: '', meters: [], resource: '', start_time: '', step: '') click to toggle source

Documentation URL: docs.qingcloud.com/api/monitor/get_monitor.html

# File lib/qingcloud/sdk/service/instance.rb, line 113
def get_instance_monitor(end_time: '', meters: [], resource: '', start_time: '', step: '')
  input = {
    config:         config,
    properties:     properties,
    api_name:       'GetMonitor',
    request_method: 'GET',
    request_params: {
      'end_time'   => end_time,
      'meters'     => meters,
      'resource'   => resource,
      'start_time' => start_time,
      'step'       => step, # step's available values: 5m, 15m, 2h, 1d
    },
  }

  get_instance_monitor_input_validate input

  request = Request.new input
  request.send
end
modify_instance_attributes(description: '', instance: '', instance_name: '') click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/modify_instance_attributes.html

# File lib/qingcloud/sdk/service/instance.rb, line 174
def modify_instance_attributes(description: '', instance: '', instance_name: '')
  input = {
    config:         config,
    properties:     properties,
    api_name:       'ModifyInstanceAttributes',
    request_method: 'GET',
    request_params: {
      'description'   => description,
      'instance'      => instance,
      'instance_name' => instance_name,
    },
  }

  modify_instance_attributes_input_validate input

  request = Request.new input
  request.send
end
reset_instances(instances: [], login_keypair: '', login_mode: '', login_passwd: '', need_newsid: nil) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/reset_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 206
def reset_instances(instances: [], login_keypair: '', login_mode: '', login_passwd: '', need_newsid: nil)
  input = {
    config:         config,
    properties:     properties,
    api_name:       'ResetInstances',
    request_method: 'GET',
    request_params: {
      'instances'     => instances,
      'login_keypair' => login_keypair,
      'login_mode'    => login_mode, # login_mode's available values: keypair, passwd
      'login_passwd'  => login_passwd,
      'need_newsid'   => need_newsid, # need_newsid's available values: 0, 1
    },
  }

  reset_instances_input_validate input

  request = Request.new input
  request.send
end
resize_instances(cpu: nil, instance_type: '', instances: [], memory: nil) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/resize_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 266
def resize_instances(cpu: nil, instance_type: '', instances: [], memory: nil)
  input = {
    config:         config,
    properties:     properties,
    api_name:       'ResizeInstances',
    request_method: 'GET',
    request_params: {
      'cpu'           => cpu, # cpu's available values: 1, 2, 4, 8, 16
      'instance_type' => instance_type,
      'instances'     => instances,
      'memory'        => memory, # memory's available values: 1024, 2048, 4096, 6144, 8192, 12288, 16384, 24576, 32768
    },
  }

  resize_instances_input_validate input

  request = Request.new input
  request.send
end
restart_instances(instances: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/restart_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 321
def restart_instances(instances: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'RestartInstances',
    request_method: 'GET',
    request_params: {
      'instances' => instances,
    },
  }

  restart_instances_input_validate input

  request = Request.new input
  request.send
end
run_instances(billing_id: '', count: nil, cpu: nil, hostname: '', image_id: '', instance_class: nil, instance_name: '', instance_type: '', login_keypair: '', login_mode: '', login_passwd: '', memory: nil, need_newsid: nil, need_userdata: nil, security_group: '', ui_type: '', userdata_file: '', userdata_path: '', userdata_type: '', userdata_value: '', volumes: [], vxnets: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/run_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 351
def run_instances(billing_id: '', count: nil, cpu: nil, hostname: '', image_id: '', instance_class: nil, instance_name: '', instance_type: '', login_keypair: '', login_mode: '', login_passwd: '', memory: nil, need_newsid: nil, need_userdata: nil, security_group: '', ui_type: '', userdata_file: '', userdata_path: '', userdata_type: '', userdata_value: '', volumes: [], vxnets: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'RunInstances',
    request_method: 'GET',
    request_params: {
      'billing_id'     => billing_id,
      'count'          => count,
      'cpu'            => cpu, # cpu's available values: 1, 2, 4, 8, 16
      'hostname'       => hostname,
      'image_id'       => image_id,
      'instance_class' => instance_class, # instance_class's available values: 0, 1
      'instance_name'  => instance_name,
      'instance_type'  => instance_type,
      'login_keypair'  => login_keypair,
      'login_mode'     => login_mode, # login_mode's available values: keypair, passwd
      'login_passwd'   => login_passwd,
      'memory'         => memory, # memory's available values: 1024, 2048, 4096, 6144, 8192, 12288, 16384, 24576, 32768
      'need_newsid'    => need_newsid, # need_newsid's available values: 0, 1
      'need_userdata'  => need_userdata,  # need_userdata's available values: 0, 1
      'security_group' => security_group,
      'ui_type'        => ui_type,
      'userdata_file'  => userdata_file,
      'userdata_path'  => userdata_path,
      'userdata_type'  => userdata_type,  # userdata_type's available values: plain, exec, tar
      'userdata_value' => userdata_value,
      'volumes'        => volumes,
      'vxnets'         => vxnets,
    },
  }

  run_instances_input_validate input

  request = Request.new input
  request.send
end
start_instances(instances: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/start_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 483
def start_instances(instances: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'StartInstances',
    request_method: 'GET',
    request_params: {
      'instances' => instances,
    },
  }

  start_instances_input_validate input

  request = Request.new input
  request.send
end
stop_instances(force: nil, instances: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/stop_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 513
def stop_instances(force: nil, instances: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'StopInstances',
    request_method: 'GET',
    request_params: {
      'force'     => force, # force's available values: 0, 1
      'instances' => instances,
    },
  }

  stop_instances_input_validate input

  request = Request.new input
  request.send
end
terminate_instances(instances: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/instance/terminate_instances.html

# File lib/qingcloud/sdk/service/instance.rb, line 555
def terminate_instances(instances: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'TerminateInstances',
    request_method: 'GET',
    request_params: {
      'instances' => instances,
    },
  }

  terminate_instances_input_validate input

  request = Request.new input
  request.send
end

Private Instance Methods

describe_instance_types_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 49
def describe_instance_types_input_validate(input)
  input.deep_stringify_keys!
end
describe_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 84
def describe_instances_input_validate(input)
  input.deep_stringify_keys!

  if input['request_params']['instance_class'] && !input['request_params']['instance_class'].to_s.empty?
    instance_class_valid_values = %w(0 1)
    unless instance_class_valid_values.include? input['request_params']['instance_class'].to_s
      raise ParameterValueNotAllowedError.new(
        'instance_class',
        input['request_params']['instance_class'],
        instance_class_valid_values,
      )
    end
  end

  if input['request_params']['verbose'] && !input['request_params']['verbose'].to_s.empty?
    verbose_valid_values = %w(0 1)
    unless verbose_valid_values.include? input['request_params']['verbose'].to_s
      raise ParameterValueNotAllowedError.new(
        'verbose',
        input['request_params']['verbose'],
        verbose_valid_values,
      )
    end
  end
end
get_instance_monitor_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 136
def get_instance_monitor_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['end_time'].nil? && !input['request_params']['end_time'].to_s.empty?
    raise ParameterRequiredError.new('end_time', 'GetInstanceMonitorInput')
  end

  unless !input['request_params']['meters'].nil? && !input['request_params']['meters'].to_s.empty?
    raise ParameterRequiredError.new('meters', 'GetInstanceMonitorInput')
  end

  unless !input['request_params']['resource'].nil? && !input['request_params']['resource'].to_s.empty?
    raise ParameterRequiredError.new('resource', 'GetInstanceMonitorInput')
  end

  unless !input['request_params']['start_time'].nil? && !input['request_params']['start_time'].to_s.empty?
    raise ParameterRequiredError.new('start_time', 'GetInstanceMonitorInput')
  end

  unless !input['request_params']['step'].nil? && !input['request_params']['step'].to_s.empty?
    raise ParameterRequiredError.new('step', 'GetInstanceMonitorInput')
  end

  if input['request_params']['step'] && !input['request_params']['step'].to_s.empty?
    step_valid_values = %w(5m 15m 2h 1d)
    unless step_valid_values.include? input['request_params']['step'].to_s
      raise ParameterValueNotAllowedError.new(
        'step',
        input['request_params']['step'],
        step_valid_values,
      )
    end
  end
end
modify_instance_attributes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 195
def modify_instance_attributes_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['instance'].nil? && !input['request_params']['instance'].to_s.empty?
    raise ParameterRequiredError.new('instance', 'ModifyInstanceAttributesInput')
  end
end
reset_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 229
def reset_instances_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'ResetInstancesInput')
  end

  unless !input['request_params']['login_mode'].nil? && !input['request_params']['login_mode'].to_s.empty?
    raise ParameterRequiredError.new('login_mode', 'ResetInstancesInput')
  end

  if input['request_params']['login_mode'] && !input['request_params']['login_mode'].to_s.empty?
    login_mode_valid_values = %w(keypair passwd)
    unless login_mode_valid_values.include? input['request_params']['login_mode'].to_s
      raise ParameterValueNotAllowedError.new(
        'login_mode',
        input['request_params']['login_mode'],
        login_mode_valid_values,
      )
    end
  end

  if input['request_params']['need_newsid'] && !input['request_params']['need_newsid'].to_s.empty?
    need_newsid_valid_values = %w(0 1)
    unless need_newsid_valid_values.include? input['request_params']['need_newsid'].to_s
      raise ParameterValueNotAllowedError.new(
        'need_newsid',
        input['request_params']['need_newsid'],
        need_newsid_valid_values,
      )
    end
  end
end
resize_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 288
def resize_instances_input_validate(input)
  input.deep_stringify_keys!

  if input['request_params']['cpu'] && !input['request_params']['cpu'].to_s.empty?
    cpu_valid_values = %w(1 2 4 8 16)
    unless cpu_valid_values.include? input['request_params']['cpu'].to_s
      raise ParameterValueNotAllowedError.new(
        'cpu',
        input['request_params']['cpu'],
        cpu_valid_values,
      )
    end
  end

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'ResizeInstancesInput')
  end

  if input['request_params']['memory'] && !input['request_params']['memory'].to_s.empty?
    memory_valid_values = %w(1024 2048 4096 6144 8192 12288 16384 24576 32768)
    unless memory_valid_values.include? input['request_params']['memory'].to_s
      raise ParameterValueNotAllowedError.new(
        'memory',
        input['request_params']['memory'],
        memory_valid_values,
      )
    end
  end
end
restart_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 340
def restart_instances_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'RestartInstancesInput')
  end
end
run_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 391
def run_instances_input_validate(input)
  input.deep_stringify_keys!

  if input['request_params']['cpu'] && !input['request_params']['cpu'].to_s.empty?
    cpu_valid_values = %w(1 2 4 8 16)
    unless cpu_valid_values.include? input['request_params']['cpu'].to_s
      raise ParameterValueNotAllowedError.new(
        'cpu',
        input['request_params']['cpu'],
        cpu_valid_values,
      )
    end
  end

  unless !input['request_params']['image_id'].nil? && !input['request_params']['image_id'].to_s.empty?
    raise ParameterRequiredError.new('image_id', 'RunInstancesInput')
  end

  if input['request_params']['instance_class'] && !input['request_params']['instance_class'].to_s.empty?
    instance_class_valid_values = %w(0 1)
    unless instance_class_valid_values.include? input['request_params']['instance_class'].to_s
      raise ParameterValueNotAllowedError.new(
        'instance_class',
        input['request_params']['instance_class'],
        instance_class_valid_values,
      )
    end
  end

  unless !input['request_params']['login_mode'].nil? && !input['request_params']['login_mode'].to_s.empty?
    raise ParameterRequiredError.new('login_mode', 'RunInstancesInput')
  end

  if input['request_params']['login_mode'] && !input['request_params']['login_mode'].to_s.empty?
    login_mode_valid_values = %w(keypair passwd)
    unless login_mode_valid_values.include? input['request_params']['login_mode'].to_s
      raise ParameterValueNotAllowedError.new(
        'login_mode',
        input['request_params']['login_mode'],
        login_mode_valid_values,
      )
    end
  end

  if input['request_params']['memory'] && !input['request_params']['memory'].to_s.empty?
    memory_valid_values = %w(1024 2048 4096 6144 8192 12288 16384 24576 32768)
    unless memory_valid_values.include? input['request_params']['memory'].to_s
      raise ParameterValueNotAllowedError.new(
        'memory',
        input['request_params']['memory'],
        memory_valid_values,
      )
    end
  end

  if input['request_params']['need_newsid'] && !input['request_params']['need_newsid'].to_s.empty?
    need_newsid_valid_values = %w(0 1)
    unless need_newsid_valid_values.include? input['request_params']['need_newsid'].to_s
      raise ParameterValueNotAllowedError.new(
        'need_newsid',
        input['request_params']['need_newsid'],
        need_newsid_valid_values,
      )
    end
  end

  if input['request_params']['need_userdata'] && !input['request_params']['need_userdata'].to_s.empty?
    need_userdata_valid_values = %w(0 1)
    unless need_userdata_valid_values.include? input['request_params']['need_userdata'].to_s
      raise ParameterValueNotAllowedError.new(
        'need_userdata',
        input['request_params']['need_userdata'],
        need_userdata_valid_values,
      )
    end
  end

  if input['request_params']['userdata_type'] && !input['request_params']['userdata_type'].to_s.empty?
    userdata_type_valid_values = %w(plain exec tar)
    unless userdata_type_valid_values.include? input['request_params']['userdata_type'].to_s
      raise ParameterValueNotAllowedError.new(
        'userdata_type',
        input['request_params']['userdata_type'],
        userdata_type_valid_values,
      )
    end
  end
end
start_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 502
def start_instances_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'StartInstancesInput')
  end
end
stop_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 533
def stop_instances_input_validate(input)
  input.deep_stringify_keys!

  if input['request_params']['force'] && !input['request_params']['force'].to_s.empty?
    force_valid_values = %w(0 1)
    unless force_valid_values.include? input['request_params']['force'].to_s
      raise ParameterValueNotAllowedError.new(
        'force',
        input['request_params']['force'],
        force_valid_values,
      )
    end
  end

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'StopInstancesInput')
  end
end
terminate_instances_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/instance.rb, line 574
def terminate_instances_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['instances'].nil? && !input['request_params']['instances'].to_s.empty?
    raise ParameterRequiredError.new('instances', 'TerminateInstancesInput')
  end
end