# VolumesApi

All URIs are relative to *<https://api.ionos.com/cloudapi/v6>*

| Method                                                                                          | HTTP request                                                             | Description              |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------ |
| [**datacenters\_volumes\_create\_snapshot\_post**](#datacenters_volumes_create_snapshot_post)   | **POST** /datacenters/{datacenterId}/volumes/{volumeId}/create-snapshot  | Create volume snapshots  |
| [**datacenters\_volumes\_delete**](#datacenters_volumes_delete)                                 | **DELETE** /datacenters/{datacenterId}/volumes/{volumeId}                | Delete volumes           |
| [**datacenters\_volumes\_find\_by\_id**](#datacenters_volumes_find_by_id)                       | **GET** /datacenters/{datacenterId}/volumes/{volumeId}                   | Retrieve volumes         |
| [**datacenters\_volumes\_get**](#datacenters_volumes_get)                                       | **GET** /datacenters/{datacenterId}/volumes                              | List volumes             |
| [**datacenters\_volumes\_patch**](#datacenters_volumes_patch)                                   | **PATCH** /datacenters/{datacenterId}/volumes/{volumeId}                 | Partially modify volumes |
| [**datacenters\_volumes\_post**](#datacenters_volumes_post)                                     | **POST** /datacenters/{datacenterId}/volumes                             | Create a Volume          |
| [**datacenters\_volumes\_put**](#datacenters_volumes_put)                                       | **PUT** /datacenters/{datacenterId}/volumes/{volumeId}                   | Modify a Volume by ID    |
| [**datacenters\_volumes\_restore\_snapshot\_post**](#datacenters_volumes_restore_snapshot_post) | **POST** /datacenters/{datacenterId}/volumes/{volumeId}/restore-snapshot | Restore volume snapshots |

## datacenters\_volumes\_create\_snapshot\_post

> datacenters\_volumes\_create\_snapshot\_post(datacenter\_id, volume\_id, opts)

Create volume snapshots

Create a snapshot of the specified volume within the data center; this snapshot can later be used to restore this volume.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56, # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
  name: 'name_example', # String | Snapshot name
  description: 'description_example', # String | Snapshot description
  sec_auth_protection: true, # Boolean | Flag for enabling extra protection for this snapshot, such as two-step verification.
  licence_type: 'UNKNOWN' # String | The OS type for this snapshot.
}

begin
  # Create volume snapshots
  result = api_instance.datacenters_volumes_create_snapshot_post(datacenter_id, volume_id, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_create_snapshot_post: #{e}"
end
```

#### Using the datacenters\_volumes\_create\_snapshot\_post\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_create\_snapshot\_post\_with\_http\_info(datacenter\_id, volume\_id, opts)

```ruby
begin
  # Create volume snapshots
  data, status_code, headers = api_instance.datacenters_volumes_create_snapshot_post_with_http_info(datacenter_id, volume_id, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Snapshot>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_create_snapshot_post_with_http_info: #{e}"
end
```

### Parameters

| Name                      | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**        | **String**  | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**            | **String**  | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **pretty**                | **Boolean** | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**                 | **Integer** | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number**   | **Integer** | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |
| **name**                  | **String**  | Snapshot name                                                                                                                                                                                                                                                                                                                                                                                                                            | \[optional]                   |
| **description**           | **String**  | Snapshot description                                                                                                                                                                                                                                                                                                                                                                                                                     | \[optional]                   |
| **sec\_auth\_protection** | **Boolean** | Flag for enabling extra protection for this snapshot, such as two-step verification.                                                                                                                                                                                                                                                                                                                                                     | \[optional]                   |
| **licence\_type**         | **String**  | The OS type for this snapshot.                                                                                                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

[**Snapshot**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/snapshot)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: application/x-www-form-urlencoded
* **Accept**: application/json

## datacenters\_volumes\_delete

> datacenters\_volumes\_delete(datacenter\_id, volume\_id, opts)

Delete volumes

Delete the specified volume within the data center. Use with caution, the volume will be permanently removed!

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56 # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
}

begin
  # Delete volumes
  api_instance.datacenters_volumes_delete(datacenter_id, volume_id, opts)
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_delete: #{e}"
end
```

#### Using the datacenters\_volumes\_delete\_with\_http\_info variant

This returns an Array which contains the response data (`nil` in this case), status code and headers.

> \<Array(nil, Integer, Hash)> datacenters\_volumes\_delete\_with\_http\_info(datacenter\_id, volume\_id, opts)

```ruby
begin
  # Delete volumes
  data, status_code, headers = api_instance.datacenters_volumes_delete_with_http_info(datacenter_id, volume_id, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => nil
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_delete_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**  | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**          | **String**  | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **pretty**              | **Boolean** | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer** | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer** | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

nil (empty response body)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: Not defined
* **Accept**: application/json

## datacenters\_volumes\_find\_by\_id

> datacenters\_volumes\_find\_by\_id(datacenter\_id, volume\_id, opts)

Retrieve volumes

Retrieve the properties of the specified volume within the data center.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56 # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
}

begin
  # Retrieve volumes
  result = api_instance.datacenters_volumes_find_by_id(datacenter_id, volume_id, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_find_by_id: #{e}"
end
```

#### Using the datacenters\_volumes\_find\_by\_id\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_find\_by\_id\_with\_http\_info(datacenter\_id, volume\_id, opts)

```ruby
begin
  # Retrieve volumes
  data, status_code, headers = api_instance.datacenters_volumes_find_by_id_with_http_info(datacenter_id, volume_id, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Volume>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_find_by_id_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**  | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**          | **String**  | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **pretty**              | **Boolean** | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer** | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer** | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

[**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: Not defined
* **Accept**: application/json

## datacenters\_volumes\_get

> datacenters\_volumes\_get(datacenter\_id, opts)

List volumes

List all the volumes within the data center.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56, # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
  offset: 56, # Integer | The first element (from the complete list of the elements) to include in the response (used together with <b><i>limit</i></b> for pagination).
  limit: 56 # Integer | The maximum number of elements to return (use together with offset for pagination).
}

begin
  # List volumes
  result = api_instance.datacenters_volumes_get(datacenter_id, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_get: #{e}"
end
```

#### Using the datacenters\_volumes\_get\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_get\_with\_http\_info(datacenter\_id, opts)

```ruby
begin
  # List volumes
  data, status_code, headers = api_instance.datacenters_volumes_get_with_http_info(datacenter_id, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Volumes>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_get_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**  | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **pretty**              | **Boolean** | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer** | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer** | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |
| **offset**              | **Integer** | The first element (from the complete list of the elements) to include in the response (used together with \<b>\<i>limit\</i>\</b> for pagination).                                                                                                                                                                                                                                                                                       | \[optional]\[default to 0]    |
| **limit**               | **Integer** | The maximum number of elements to return (use together with offset for pagination).                                                                                                                                                                                                                                                                                                                                                      | \[optional]\[default to 1000] |

### Return type

[**Volumes**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volumes)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: Not defined
* **Accept**: application/json

## datacenters\_volumes\_patch

> datacenters\_volumes\_patch(datacenter\_id, volume\_id, volume, opts)

Partially modify volumes

Update the properties of the specified storage volume within the data center.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
volume = Ionoscloud::VolumeProperties.new({size: 100.0}) # VolumeProperties | The properties of the volume to be updated.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56 # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
}

begin
  # Partially modify volumes
  result = api_instance.datacenters_volumes_patch(datacenter_id, volume_id, volume, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_patch: #{e}"
end
```

#### Using the datacenters\_volumes\_patch\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_patch\_with\_http\_info(datacenter\_id, volume\_id, volume, opts)

```ruby
begin
  # Partially modify volumes
  data, status_code, headers = api_instance.datacenters_volumes_patch_with_http_info(datacenter_id, volume_id, volume, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Volume>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_patch_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**                                                                                                       | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**          | **String**                                                                                                       | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **volume**              | [**VolumeProperties**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volumeproperties) | The properties of the volume to be updated.                                                                                                                                                                                                                                                                                                                                                                                              |                               |
| **pretty**              | **Boolean**                                                                                                      | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer**                                                                                                      | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer**                                                                                                      | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

[**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: application/json
* **Accept**: application/json

## datacenters\_volumes\_post

> datacenters\_volumes\_post(datacenter\_id, volume, opts)

Create a Volume

Creates a storage volume within the specified data center. The volume will not be attached! Attaching volumes is described in the Servers section.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume = Ionoscloud::Volume.new({properties: Ionoscloud::VolumeProperties.new({size: 100.0})}) # Volume | The volume to create.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56 # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
}

begin
  # Create a Volume
  result = api_instance.datacenters_volumes_post(datacenter_id, volume, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_post: #{e}"
end
```

#### Using the datacenters\_volumes\_post\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_post\_with\_http\_info(datacenter\_id, volume, opts)

```ruby
begin
  # Create a Volume
  data, status_code, headers = api_instance.datacenters_volumes_post_with_http_info(datacenter_id, volume, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Volume>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_post_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**                                                                                   | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume**              | [**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume) | The volume to create.                                                                                                                                                                                                                                                                                                                                                                                                                    |                               |
| **pretty**              | **Boolean**                                                                                  | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer**                                                                                  | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer**                                                                                  | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

[**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: application/json
* **Accept**: application/json

## datacenters\_volumes\_put

> datacenters\_volumes\_put(datacenter\_id, volume\_id, volume, opts)

Modify a Volume by ID

Modifies the properties of the specified volume within the data center.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
volume = Ionoscloud::Volume.new({properties: Ionoscloud::VolumeProperties.new({size: 100.0})}) # Volume | The modified volume
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56 # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
}

begin
  # Modify a Volume by ID
  result = api_instance.datacenters_volumes_put(datacenter_id, volume_id, volume, opts)
  p result
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_put: #{e}"
end
```

#### Using the datacenters\_volumes\_put\_with\_http\_info variant

This returns an Array which contains the response data, status code and headers.

> \<Array(, Integer, Hash)> datacenters\_volumes\_put\_with\_http\_info(datacenter\_id, volume\_id, volume, opts)

```ruby
begin
  # Modify a Volume by ID
  data, status_code, headers = api_instance.datacenters_volumes_put_with_http_info(datacenter_id, volume_id, volume, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => <Volume>
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_put_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**                                                                                   | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**          | **String**                                                                                   | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **volume**              | [**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume) | The modified volume                                                                                                                                                                                                                                                                                                                                                                                                                      |                               |
| **pretty**              | **Boolean**                                                                                  | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer**                                                                                  | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer**                                                                                  | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

[**Volume**](https://docs.ionos.com/sections-test/ruby-sdk/cloud-api-ruby-sdk/models/volume)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: application/json
* **Accept**: application/json

## datacenters\_volumes\_restore\_snapshot\_post

> datacenters\_volumes\_restore\_snapshot\_post(datacenter\_id, volume\_id, opts)

Restore volume snapshots

Restore a snapshot for the specified volume within the data center. A snapshot is an image of a volume, which can be used to restore this volume at a later time.

### Examples

```ruby
require 'time'
require 'ionoscloud'
# setup authorization
Ionoscloud.configure do |config|
  # Configure HTTP basic authorization: Basic Authentication
  config.username = 'YOUR USERNAME'
  config.password = 'YOUR PASSWORD'

  # Configure API key authorization: Token Authentication
  config.api_key['Authorization'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  # config.api_key_prefix['Authorization'] = 'Bearer'
end

api_instance = Ionoscloud::VolumesApi.new
datacenter_id = 'datacenter_id_example' # String | The unique ID of the data center.
volume_id = 'volume_id_example' # String | The unique ID of the volume.
opts = {
  pretty: true, # Boolean | Controls whether the response is pretty-printed (with indentations and new lines).
  depth: 56, # Integer | Controls the detail depth of the response objects.  GET /datacenters/[ID]  - depth=0: Only direct properties are included; children (servers and other elements) 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
  x_contract_number: 56, # Integer | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.
  snapshot_id: 'snapshot_id_example' # String | The unique ID of the snapshot.
}

begin
  # Restore volume snapshots
  api_instance.datacenters_volumes_restore_snapshot_post(datacenter_id, volume_id, opts)
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_restore_snapshot_post: #{e}"
end
```

#### Using the datacenters\_volumes\_restore\_snapshot\_post\_with\_http\_info variant

This returns an Array which contains the response data (`nil` in this case), status code and headers.

> \<Array(nil, Integer, Hash)> datacenters\_volumes\_restore\_snapshot\_post\_with\_http\_info(datacenter\_id, volume\_id, opts)

```ruby
begin
  # Restore volume snapshots
  data, status_code, headers = api_instance.datacenters_volumes_restore_snapshot_post_with_http_info(datacenter_id, volume_id, opts)
  p status_code # => 2xx
  p headers # => { ... }
  p data # => nil
rescue Ionoscloud::ApiError => e
  puts "Error when calling VolumesApi->datacenters_volumes_restore_snapshot_post_with_http_info: #{e}"
end
```

### Parameters

| Name                    | Type        | Description                                                                                                                                                                                                                                                                                                                                                                                                                              | Notes                         |
| ----------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **datacenter\_id**      | **String**  | The unique ID of the data center.                                                                                                                                                                                                                                                                                                                                                                                                        |                               |
| **volume\_id**          | **String**  | The unique ID of the volume.                                                                                                                                                                                                                                                                                                                                                                                                             |                               |
| **pretty**              | **Boolean** | Controls whether the response is pretty-printed (with indentations and new lines).                                                                                                                                                                                                                                                                                                                                                       | \[optional]\[default to true] |
| **depth**               | **Integer** | Controls the detail depth of the response objects. GET /datacenters/\[ID] - depth=0: Only direct properties are included; children (servers and other elements) 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 | \[optional]\[default to 0]    |
| **x\_contract\_number** | **Integer** | Users with multiple contracts must provide the contract number, for which all API requests are to be executed.                                                                                                                                                                                                                                                                                                                           | \[optional]                   |
| **snapshot\_id**        | **String**  | The unique ID of the snapshot.                                                                                                                                                                                                                                                                                                                                                                                                           | \[optional]                   |

### Return type

nil (empty response body)

### Authorization

Basic Authentication, Token Authentication

### HTTP request headers

* **Content-Type**: application/x-www-form-urlencoded
* **Accept**: application/json
