class QingCloud::SDK::VolumeService

Attributes

config[RW]
properties[RW]

Public Class Methods

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

Public Instance Methods

attach_volumes(instance: '', volumes: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/attach_volumes.html

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

  attach_volumes_input_validate input

  request = Request.new input
  request.send
end
create_volumes(count: nil, size: nil, volume_name: '', volume_type: nil) click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/create_volumes.html

# File lib/qingcloud/sdk/service/volume.rb, line 65
def create_volumes(count: nil, size: nil, volume_name: '', volume_type: nil)
  input = {
    config:         config,
    properties:     properties,
    api_name:       'CreateVolumes',
    request_method: 'GET',
    request_params: {
      'count'       => count,
      'size'        => size,
      'volume_name' => volume_name,
      'volume_type' => volume_type, # volume_type's available values: 0, 1, 2, 3
    },
  }

  create_volumes_input_validate input

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

Documentation URL: docs.qingcloud.com/api/volume/delete_volumes.html

# File lib/qingcloud/sdk/service/volume.rb, line 109
def delete_volumes(volumes: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'DeleteVolumes',
    request_method: 'GET',
    request_params: {
      'volumes' => volumes,
    },
  }

  delete_volumes_input_validate input

  request = Request.new input
  request.send
end
describe_volumes(limit: nil, offset: nil, search_word: '', status: [], tags: [], verbose: nil, volume_type: nil, volumes: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/describe_volumes.html

# File lib/qingcloud/sdk/service/volume.rb, line 139
def describe_volumes(limit: nil, offset: nil, search_word: '', status: [], tags: [], verbose: nil, volume_type: nil, volumes: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'DescribeVolumes',
    request_method: 'GET',
    request_params: {
      'limit'       => limit,
      'offset'      => offset,
      'search_word' => search_word,
      'status'      => status,
      'tags'        => tags,
      'verbose'     => verbose, # verbose's available values: 0, 1
      'volume_type' => volume_type, # volume_type's available values: 0, 1, 2, 3
      'volumes'     => volumes,
    },
  }

  describe_volumes_input_validate input

  request = Request.new input
  request.send
end
detach_volumes(instance: '', volumes: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/detach_volumes.html

# File lib/qingcloud/sdk/service/volume.rb, line 194
def detach_volumes(instance: '', volumes: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'DetachVolumes',
    request_method: 'GET',
    request_params: {
      'instance' => instance,
      'volumes'  => volumes,
    },
  }

  detach_volumes_input_validate input

  request = Request.new input
  request.send
end
modify_volume_attributes(description: '', volume: '', volume_name: '') click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/modify_volume_attributes.html

# File lib/qingcloud/sdk/service/volume.rb, line 229
def modify_volume_attributes(description: '', volume: '', volume_name: '')
  input = {
    config:         config,
    properties:     properties,
    api_name:       'ModifyVolumeAttributes',
    request_method: 'GET',
    request_params: {
      'description' => description,
      'volume'      => volume,
      'volume_name' => volume_name,
    },
  }

  modify_volume_attributes_input_validate input

  request = Request.new input
  request.send
end
resize_volumes(size: nil, volumes: []) click to toggle source

Documentation URL: docs.qingcloud.com/api/volume/resize_volumes.html

# File lib/qingcloud/sdk/service/volume.rb, line 261
def resize_volumes(size: nil, volumes: [])
  input = {
    config:         config,
    properties:     properties,
    api_name:       'ResizeVolumes',
    request_method: 'GET',
    request_params: {
      'size'    => size,
      'volumes' => volumes,
    },
  }

  resize_volumes_input_validate input

  request = Request.new input
  request.send
end

Private Instance Methods

attach_volumes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 50
def attach_volumes_input_validate(input)
  input.deep_stringify_keys!

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

  unless !input['request_params']['volumes'].nil? && !input['request_params']['volumes'].to_s.empty?
    raise ParameterRequiredError.new('volumes', 'AttachVolumesInput')
  end
end
create_volumes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 87
def create_volumes_input_validate(input)
  input.deep_stringify_keys!

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

  if input['request_params']['volume_type'] && !input['request_params']['volume_type'].to_s.empty?
    volume_type_valid_values = %w(0 1 2 3)
    unless volume_type_valid_values.include? input['request_params']['volume_type'].to_s
      raise ParameterValueNotAllowedError.new(
        'volume_type',
        input['request_params']['volume_type'],
        volume_type_valid_values,
      )
    end
  end
end
delete_volumes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 128
def delete_volumes_input_validate(input)
  input.deep_stringify_keys!

  unless !input['request_params']['volumes'].nil? && !input['request_params']['volumes'].to_s.empty?
    raise ParameterRequiredError.new('volumes', 'DeleteVolumesInput')
  end
end
describe_volumes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 165
def describe_volumes_input_validate(input)
  input.deep_stringify_keys!

  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

  if input['request_params']['volume_type'] && !input['request_params']['volume_type'].to_s.empty?
    volume_type_valid_values = %w(0 1 2 3)
    unless volume_type_valid_values.include? input['request_params']['volume_type'].to_s
      raise ParameterValueNotAllowedError.new(
        'volume_type',
        input['request_params']['volume_type'],
        volume_type_valid_values,
      )
    end
  end
end
detach_volumes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 214
def detach_volumes_input_validate(input)
  input.deep_stringify_keys!

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

  unless !input['request_params']['volumes'].nil? && !input['request_params']['volumes'].to_s.empty?
    raise ParameterRequiredError.new('volumes', 'DetachVolumesInput')
  end
end
modify_volume_attributes_input_validate(input) click to toggle source
# File lib/qingcloud/sdk/service/volume.rb, line 250
def modify_volume_attributes_input_validate(input)
  input.deep_stringify_keys!

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

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

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