class Ionoscloud::VolumeApi
Attributes
Public Class Methods
# File lib/ionoscloud/api/volume_api.rb, line 19 def initialize(api_client = ApiClient.default) @api_client = api_client end
Public Instance Methods
Create Volume
Snapshot
Creates a snapshot of a volume within the datacenter. You can use a snapshot to create a new storage volume or to restore a storage volume. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [String] :name The name of the snapshot @option opts [String] :description The description of the snapshot @option opts [Boolean] :sec_auth_protection Flag representing if extra protection is enabled on snapshot e.g. Two Factor protection etc. @option opts [String] :licence_type The OS type of this Snapshot
@return [Snapshot]
# File lib/ionoscloud/api/volume_api.rb, line 35 def datacenters_volumes_create_snapshot_post(datacenter_id, volume_id, opts = {}) data, _status_code, _headers = datacenters_volumes_create_snapshot_post_with_http_info(datacenter_id, volume_id, opts) data end
Create Volume
Snapshot
Creates a snapshot of a volume within the datacenter. You can use a snapshot to create a new storage volume or to restore a storage volume. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [String] :name The name of the snapshot @option opts [String] :description The description of the snapshot @option opts [Boolean] :sec_auth_protection Flag representing if extra protection is enabled on snapshot e.g. Two Factor protection etc. @option opts [String] :licence_type The OS type of this Snapshot
@return [Array<(Snapshot
, Integer, Hash)>] Snapshot
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 53 def datacenters_volumes_create_snapshot_post_with_http_info(datacenter_id, volume_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_create_snapshot_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_create_snapshot_post" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_create_snapshot_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_create_snapshot_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_create_snapshot_post, must be greater than or equal to 0.' end allowable_values = ["UNKNOWN", "WINDOWS", "WINDOWS2016", "LINUX", "OTHER"] if @api_client.config.client_side_validation && opts[:'licence_type'] && !allowable_values.include?(opts[:'licence_type']) fail ArgumentError, "invalid value for \"licence_type\", must be one of #{allowable_values}" end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}/create-snapshot'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' header_params['Content-Type'] = @api_client.select_header_content_type(['application/x-www-form-urlencoded']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} form_params['name'] = opts[:'name'] if !opts[:'name'].nil? form_params['description'] = opts[:'description'] if !opts[:'description'].nil? form_params['secAuthProtection'] = opts[:'sec_auth_protection'] if !opts[:'sec_auth_protection'].nil? form_params['licenceType'] = opts[:'licence_type'] if !opts[:'licence_type'].nil? # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'Snapshot' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_create_snapshot_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_create_snapshot_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Delete a Volume
Deletes the specified volume. This will result in the volume being removed from your datacenter. Use this with caution. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Object]
# File lib/ionoscloud/api/volume_api.rb, line 135 def datacenters_volumes_delete(datacenter_id, volume_id, opts = {}) data, _status_code, _headers = datacenters_volumes_delete_with_http_info(datacenter_id, volume_id, opts) data end
Delete a Volume
Deletes the specified volume. This will result in the volume being removed from your datacenter. Use this with caution. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Array<(Object
, Integer, Hash)>] Object
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 149 def datacenters_volumes_delete_with_http_info(datacenter_id, volume_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_delete ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_delete" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_delete" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_delete, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_delete, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'Object' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_delete", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Retrieve a Volume
Retrieves the attributes of a given Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Volume]
# File lib/ionoscloud/api/volume_api.rb, line 221 def datacenters_volumes_find_by_id(datacenter_id, volume_id, opts = {}) data, _status_code, _headers = datacenters_volumes_find_by_id_with_http_info(datacenter_id, volume_id, opts) data end
Retrieve a Volume
Retrieves the attributes of a given Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Array<(Volume
, Integer, Hash)>] Volume
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 235 def datacenters_volumes_find_by_id_with_http_info(datacenter_id, volume_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_find_by_id ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_find_by_id" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_find_by_id" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_find_by_id, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_find_by_id, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'Volume' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_find_by_id", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_find_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
List Volumes
Retrieves a list of Volumes
. @param datacenter_id [String] The unique ID of the datacenter @param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with <code>limit</code> for pagination) (default to 0) @option opts [Integer] :limit the maximum number of elements to return (use together with <code>offset</code> for pagination) (default to 1000) @return [Volumes]
# File lib/ionoscloud/api/volume_api.rb, line 308 def datacenters_volumes_get(datacenter_id, opts = {}) data, _status_code, _headers = datacenters_volumes_get_with_http_info(datacenter_id, opts) data end
List Volumes
Retrieves a list of Volumes
. @param datacenter_id [String] The unique ID of the datacenter @param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [Integer] :offset the first element (of the total list of elements) to include in the response (use together with <code>limit</code> for pagination) @option opts [Integer] :limit the maximum number of elements to return (use together with <code>offset</code> for pagination) @return [Array<(Volumes
, Integer, Hash)>] Volumes
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 323 def datacenters_volumes_get_with_http_info(datacenter_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_get ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_get" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_get, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_get, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0 fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling VolumeApi.datacenters_volumes_get, must be greater than or equal to 0.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 10000 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling VolumeApi.datacenters_volumes_get, must be smaller than or equal to 10000.' end if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1 fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling VolumeApi.datacenters_volumes_get, must be greater than or equal to 1.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil? query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'Volumes' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_get", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Partially modify a Volume
You can use update attributes of a Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param volume [VolumeProperties] Modified properties of Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Volume]
# File lib/ionoscloud/api/volume_api.rb, line 406 def datacenters_volumes_patch(datacenter_id, volume_id, volume, opts = {}) data, _status_code, _headers = datacenters_volumes_patch_with_http_info(datacenter_id, volume_id, volume, opts) data end
Partially modify a Volume
You can use update attributes of a Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param volume [VolumeProperties] Modified properties of Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Array<(Volume
, Integer, Hash)>] Volume
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 421 def datacenters_volumes_patch_with_http_info(datacenter_id, volume_id, volume, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_patch ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_patch" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_patch" end # verify the required parameter 'volume' is set if @api_client.config.client_side_validation && volume.nil? fail ArgumentError, "Missing the required parameter 'volume' when calling VolumeApi.datacenters_volumes_patch" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_patch, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_patch, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(volume) # return_type return_type = opts[:debug_return_type] || 'Volume' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_patch", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Create a Volume
Creates a volume within the datacenter. This will not attach the volume to a server. Please see the Servers
section for details on how to attach storage volumes @param datacenter_id [String] The unique ID of the datacenter @param volume [Volume] Volume
to be created @param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Volume]
# File lib/ionoscloud/api/volume_api.rb, line 499 def datacenters_volumes_post(datacenter_id, volume, opts = {}) data, _status_code, _headers = datacenters_volumes_post_with_http_info(datacenter_id, volume, opts) data end
Create a Volume
Creates a volume within the datacenter. This will not attach the volume to a server. Please see the Servers
section for details on how to attach storage volumes @param datacenter_id [String] The unique ID of the datacenter @param volume [Volume] Volume
to be created @param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Array<(Volume
, Integer, Hash)>] Volume
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 513 def datacenters_volumes_post_with_http_info(datacenter_id, volume, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_post" end # verify the required parameter 'volume' is set if @api_client.config.client_side_validation && volume.nil? fail ArgumentError, "Missing the required parameter 'volume' when calling VolumeApi.datacenters_volumes_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_post, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(volume) # return_type return_type = opts[:debug_return_type] || 'Volume' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Modify a Volume
You can use update attributes of a Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param volume [Volume] Modified Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Volume]
# File lib/ionoscloud/api/volume_api.rb, line 588 def datacenters_volumes_put(datacenter_id, volume_id, volume, opts = {}) data, _status_code, _headers = datacenters_volumes_put_with_http_info(datacenter_id, volume_id, volume, opts) data end
Modify a Volume
You can use update attributes of a Volume
@param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param volume [Volume] Modified Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @return [Array<(Volume
, Integer, Hash)>] Volume
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 603 def datacenters_volumes_put_with_http_info(datacenter_id, volume_id, volume, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_put ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_put" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_put" end # verify the required parameter 'volume' is set if @api_client.config.client_side_validation && volume.nil? fail ArgumentError, "Missing the required parameter 'volume' when calling VolumeApi.datacenters_volumes_put" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_put, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_put, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(volume) # return_type return_type = opts[:debug_return_type] || 'Volume' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_put", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end
Restore Volume
Snapshot
This will restore a snapshot onto a volume. A snapshot is created as just another image that can be used to create subsequent volumes if you want or to restore an existing volume. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) (default to true) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on (default to 0) @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [String] :snapshot_id This is the ID of the snapshot @return [Object]
# File lib/ionoscloud/api/volume_api.rb, line 682 def datacenters_volumes_restore_snapshot_post(datacenter_id, volume_id, opts = {}) data, _status_code, _headers = datacenters_volumes_restore_snapshot_post_with_http_info(datacenter_id, volume_id, opts) data end
Restore Volume
Snapshot
This will restore a snapshot onto a volume. A snapshot is created as just another image that can be used to create subsequent volumes if you want or to restore an existing volume. @param datacenter_id [String] The unique ID of the datacenter @param volume_id [String] The unique ID of the Volume
@param [Hash] opts the optional parameters @option opts [Boolean] :pretty Controls whether response is pretty-printed (with indentation and new lines) @option opts [Integer] :depth Controls the details depth of response objects. Eg. GET /datacenters/ - depth=0: only direct properties are included. Children (servers etc.) are not included - depth=1: direct properties and children references are included - depth=2: direct properties and children properties are included - depth=3: direct properties and children properties and children's children are included - depth=… and so on @option opts [Integer] :x_contract_number Users
having more than 1 contract need to provide contract number, against which all API requests should be executed @option opts [String] :snapshot_id This is the ID of the snapshot @return [Array<(Object
, Integer, Hash)>] Object
data, response status code and response headers
# File lib/ionoscloud/api/volume_api.rb, line 697 def datacenters_volumes_restore_snapshot_post_with_http_info(datacenter_id, volume_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: VolumeApi.datacenters_volumes_restore_snapshot_post ...' end # verify the required parameter 'datacenter_id' is set if @api_client.config.client_side_validation && datacenter_id.nil? fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling VolumeApi.datacenters_volumes_restore_snapshot_post" end # verify the required parameter 'volume_id' is set if @api_client.config.client_side_validation && volume_id.nil? fail ArgumentError, "Missing the required parameter 'volume_id' when calling VolumeApi.datacenters_volumes_restore_snapshot_post" end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_restore_snapshot_post, must be smaller than or equal to 10.' end if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0 fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling VolumeApi.datacenters_volumes_restore_snapshot_post, must be greater than or equal to 0.' end # resource path local_var_path = '/datacenters/{datacenterId}/volumes/{volumeId}/restore-snapshot'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'volumeId' + '}', CGI.escape(volume_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil? query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil? # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' header_params['Content-Type'] = @api_client.select_header_content_type(['application/x-www-form-urlencoded']) header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil? # form parameters form_params = opts[:form_params] || {} form_params['snapshotId'] = opts[:'snapshot_id'] if !opts[:'snapshot_id'].nil? # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'Object' # auth_names auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication'] new_options = opts.merge( :operation => :"VolumeApi.datacenters_volumes_restore_snapshot_post", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: VolumeApi#datacenters_volumes_restore_snapshot_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end