# snapshot

Type representing a IonosCloud Snapshot.

## Parameters:

| Name | Required | Description               |
| ---- | :------: | ------------------------- |
| name |   true   | The name of the snapshot. |

## Properties:

| Name                      | Required | Description                                                                                                                    |
| ------------------------- | :------: | ------------------------------------------------------------------------------------------------------------------------------ |
| ensure                    |    No    | The basic property that the resource should be in. Valid values are `present`, `absent`.                                       |
| restore                   |    No    | If true, restore the snapshot onto the volume specified be the volume property. Valid values are `true`, `false`.              |
| datacenter                |    No    | The ID or name of the virtual data center where the volume resides.                                                            |
| volume                    |    No    | The ID or name of the volume used to create/restore the snapshot.                                                              |
| description               |    No    | The snapshot's description.                                                                                                    |
| sec\_auth\_protection     |    No    | Flag representing if extra protection is enabled on snapshot e.g. Two Factor protection etc. Valid values are `true`, `false`. |
| licence\_type             |    No    | The OS type of this Snapshot Valid values are `LINUX`, `WINDOWS`, `WINDOWS2016`, `UNKNOWN`, `OTHER`.                           |
| cpu\_hot\_plug            |    No    | Indicates CPU hot plug capability. Valid values are `true`, `false`.                                                           |
| cpu\_hot\_unplug          |    No    | Indicates CPU hot unplug capability. Valid values are `true`, `false`.                                                         |
| ram\_hot\_plug            |    No    | Indicates memory hot plug capability. Valid values are `true`, `false`.                                                        |
| ram\_hot\_unplug          |    No    | Indicates memory hot unplug capability. Valid values are `true`, `false`.                                                      |
| nic\_hot\_plug            |    No    | Indicates NIC hot plug capability. Valid values are `true`, `false`.                                                           |
| nic\_hot\_unplug          |    No    | Indicates NIC hot unplug capability. Valid values are `true`, `false`.                                                         |
| disc\_virtio\_hot\_plug   |    No    | Indicates VirtIO drive hot plug capability. Valid values are `true`, `false`.                                                  |
| disc\_virtio\_hot\_unplug |    No    | Indicates VirtIO drive hot unplug capability. Valid values are `true`, `false`.                                                |
| disc\_scsi\_hot\_plug     |    No    | Indicates SCSI drive hot plug capability. Valid values are `true`, `false`.                                                    |
| disc\_scsi\_hot\_unplug   |    No    | Indicates SCSI drive hot unplug capability. Valid values are `true`, `false`.                                                  |
| id                        |    No    | The snapshot's ID.                                                                                                             |
| location                  |    No    | The snapshot's location.                                                                                                       |
| size                      |    No    | The size of the snapshot in GB.                                                                                                |
| \*\*\*                    |          |                                                                                                                                |

### Changeable properties:

* description
* cpu\_hot\_plug
* cpu\_hot\_unplug
* ram\_hot\_plug
* ram\_hot\_unplug
* nic\_hot\_plug
* nic\_hot\_unplug
* disc\_virtio\_hot\_plug
* disc\_virtio\_hot\_unplug
* disc\_scsi\_hot\_plug
* disc\_scsi\_hot\_unplug
* sec\_auth\_protection
* licence\_type

## Examples

### To list resources:

```bash
puppet resource snapshot
```

> ***NOTE:*** If two resources have the same name only one of them will be shown.

### To create, update or delete a resource:

```ruby
$datacenter_name = 'PPSnapshotTest'
$volume_name = 'staging'

datacenter { $datacenter_name :
  ensure   => present,
  location => 'us/ewr'
}
-> volume { $volume_name :
  ensure          => present,
  datacenter_name => $datacenter_name,
  size            => 10,
  volume_type     => 'HDD',
  ssh_keys        => ['ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDaH...']
}
-> snapshot { 'PPTestSnapshot' :
  ensure     => present,
  datacenter => $datacenter_name,
  volume     => $volume_name
}
```

> ***NOTE:*** If two resources with the same name ar found an error will be thrown, this only applies to cases where the resource cannot be identified. Example: an error is thrown for two servers with the same name in the same datacenter, not for two servers with the same name, but in different datacenters.
