> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/go/go-bundle/sdks/compute/models/serverproperties.md).

# ServerProperties

## Properties

| Name                 | Type                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Notes                   |
| -------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| **TemplateUuid**     | Pointer to **string**                                                                            | The ID of the template for creating CUBE or GPU servers. If a template has GPU cards assigned, then it can only be used to create GPU servers, otherwise it can only be used for CUBE servers. The available templates can be found on the templates resource.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | \[optional]             |
| **Name**             | Pointer to **string**                                                                            | The name of the resource.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | \[optional]             |
| **Hostname**         | Pointer to **string**                                                                            | The hostname of the resource. Allowed characters are a-z, 0-9 and - (minus). Hostname should not start with minus and should not be longer than 63 characters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | \[optional]             |
| **Cores**            | Pointer to **int32**                                                                             | The total number of cores for the server. It can not be supplied for the VMs that have to be created based on templates. For servers with Confidential Computing enabled, the number of cores must match the amount of cores required by the Confidential Computing image, and this field is immutable once the server has been created — update requests attempting to change it will be rejected.                                                                                                                                                                                                                                                                                                                                                                                          | \[optional]             |
| **Ram**              | Pointer to **int32**                                                                             | The memory size for the server in MB, such as 2048. Size must be specified in multiples of 256 MB with a minimum of 256 MB; however, if you set ramHotPlug to TRUE then you must use a minimum of 1024 MB. If you set the RAM size more than 240GB, then ramHotPlug will be set to FALSE and can not be set to TRUE unless RAM size not set to less than 240GB. It can not be supplied for the VMs that have to be created based on templates. For servers with Confidential Computing enabled, this field is immutable once the server has been created — update requests attempting to change it will be rejected.                                                                                                                                                                         | \[optional]             |
| **AvailabilityZone** | Pointer to **string**                                                                            | The availability zone in which the server should be provisioned. For CUBE and GPU servers, the only value accepted is 'AUTO'. For servers with Confidential Computing enabled, this field is immutable once the server has been created — update requests attempting to change it will be rejected.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | \[optional]             |
| **VmState**          | Pointer to **string**                                                                            | Status of the virtual machine.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | \[optional] \[readonly] |
| **BootCdrom**        | Pointer to [**ResourceReference**](/cloud/go/go-bundle/sdks/compute/models/resourcereference.md) |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | \[optional]             |
| **BootVolume**       | Pointer to [**ResourceReference**](/cloud/go/go-bundle/sdks/compute/models/resourcereference.md) |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | \[optional]             |
| **CpuFamily**        | Pointer to **string**                                                                            | CPU architecture on which server gets provisioned; not all CPU architectures are available in all datacenter regions; available CPU architectures can be retrieved from the datacenter resource; must not be provided for CUBE and VCPU servers. If the field is omitted from the request or the value is empty or null, an available CPU architecture will be automatically selected. This field must not be supplied when creating a server with Confidential Computing enabled (i.e. when one of the attached volumes uses a confidential computing image); in that case the CPU family is determined by the image and is selected automatically. On servers with Confidential Computing enabled this field is also immutable — update requests attempting to change it will be rejected. | \[optional]             |
| **Type**             | Pointer to **string**                                                                            | Server type: CUBE, ENTERPRISE, VCPU or GPU. Confidential Computing can be enabled only on a server of type ENTERPRISE by creating it with a volume with a Confidential Computing image.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \[optional]             |
| **EnabledFeatures**  | Pointer to **\[]string**                                                                         | The list of features enabled on this server. An ENTERPRISE server with Confidential Computing enabled will have \`SEV-SNP\` as part of this list.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | \[optional] \[readonly] |
| **PlacementGroupId** | Pointer to **string**                                                                            | The placement group ID that belongs to this server; Requires system privileges, for internal usage only                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \[optional]             |
| **NicMultiQueue**    | Pointer to **bool**                                                                              | Activate or deactivate the Multi Queue feature on all NICs of this server. This feature is beneficial to enable when the NICs are experiencing performance issues (e.g. low throughput). Toggling this feature will also initiate a restart of the server. If the specified value is \`true\`, the feature will be activated; if it is not specified or set to \`false\`, the feature will be deactivated. It is not allowed for servers of type Cube.                                                                                                                                                                                                                                                                                                                                       | \[optional]             |

## Methods

### NewServerProperties

`func NewServerProperties() *ServerProperties`

NewServerProperties instantiates a new ServerProperties object This constructor will assign default values to properties that have it defined, and makes sure properties required by API are set, but the set of arguments will change when the set of required properties is changed

### NewServerPropertiesWithDefaults

`func NewServerPropertiesWithDefaults() *ServerProperties`

NewServerPropertiesWithDefaults instantiates a new ServerProperties object This constructor will only assign default values to properties that have it defined, but it doesn't guarantee that properties required by API are set

### GetTemplateUuid

`func (o *ServerProperties) GetTemplateUuid() string`

GetTemplateUuid returns the TemplateUuid field if non-nil, zero value otherwise.

### GetTemplateUuidOk

`func (o *ServerProperties) GetTemplateUuidOk() (*string, bool)`

GetTemplateUuidOk returns a tuple with the TemplateUuid field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetTemplateUuid

`func (o *ServerProperties) SetTemplateUuid(v string)`

SetTemplateUuid sets TemplateUuid field to given value.

### HasTemplateUuid

`func (o *ServerProperties) HasTemplateUuid() bool`

HasTemplateUuid returns a boolean if a field has been set.

### GetName

`func (o *ServerProperties) GetName() string`

GetName returns the Name field if non-nil, zero value otherwise.

### GetNameOk

`func (o *ServerProperties) GetNameOk() (*string, bool)`

GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetName

`func (o *ServerProperties) SetName(v string)`

SetName sets Name field to given value.

### HasName

`func (o *ServerProperties) HasName() bool`

HasName returns a boolean if a field has been set.

### GetHostname

`func (o *ServerProperties) GetHostname() string`

GetHostname returns the Hostname field if non-nil, zero value otherwise.

### GetHostnameOk

`func (o *ServerProperties) GetHostnameOk() (*string, bool)`

GetHostnameOk returns a tuple with the Hostname field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetHostname

`func (o *ServerProperties) SetHostname(v string)`

SetHostname sets Hostname field to given value.

### HasHostname

`func (o *ServerProperties) HasHostname() bool`

HasHostname returns a boolean if a field has been set.

### GetCores

`func (o *ServerProperties) GetCores() int32`

GetCores returns the Cores field if non-nil, zero value otherwise.

### GetCoresOk

`func (o *ServerProperties) GetCoresOk() (*int32, bool)`

GetCoresOk returns a tuple with the Cores field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetCores

`func (o *ServerProperties) SetCores(v int32)`

SetCores sets Cores field to given value.

### HasCores

`func (o *ServerProperties) HasCores() bool`

HasCores returns a boolean if a field has been set.

### GetRam

`func (o *ServerProperties) GetRam() int32`

GetRam returns the Ram field if non-nil, zero value otherwise.

### GetRamOk

`func (o *ServerProperties) GetRamOk() (*int32, bool)`

GetRamOk returns a tuple with the Ram field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetRam

`func (o *ServerProperties) SetRam(v int32)`

SetRam sets Ram field to given value.

### HasRam

`func (o *ServerProperties) HasRam() bool`

HasRam returns a boolean if a field has been set.

### GetAvailabilityZone

`func (o *ServerProperties) GetAvailabilityZone() string`

GetAvailabilityZone returns the AvailabilityZone field if non-nil, zero value otherwise.

### GetAvailabilityZoneOk

`func (o *ServerProperties) GetAvailabilityZoneOk() (*string, bool)`

GetAvailabilityZoneOk returns a tuple with the AvailabilityZone field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetAvailabilityZone

`func (o *ServerProperties) SetAvailabilityZone(v string)`

SetAvailabilityZone sets AvailabilityZone field to given value.

### HasAvailabilityZone

`func (o *ServerProperties) HasAvailabilityZone() bool`

HasAvailabilityZone returns a boolean if a field has been set.

### GetVmState

`func (o *ServerProperties) GetVmState() string`

GetVmState returns the VmState field if non-nil, zero value otherwise.

### GetVmStateOk

`func (o *ServerProperties) GetVmStateOk() (*string, bool)`

GetVmStateOk returns a tuple with the VmState field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetVmState

`func (o *ServerProperties) SetVmState(v string)`

SetVmState sets VmState field to given value.

### HasVmState

`func (o *ServerProperties) HasVmState() bool`

HasVmState returns a boolean if a field has been set.

### GetBootCdrom

`func (o *ServerProperties) GetBootCdrom() ResourceReference`

GetBootCdrom returns the BootCdrom field if non-nil, zero value otherwise.

### GetBootCdromOk

`func (o *ServerProperties) GetBootCdromOk() (*ResourceReference, bool)`

GetBootCdromOk returns a tuple with the BootCdrom field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetBootCdrom

`func (o *ServerProperties) SetBootCdrom(v ResourceReference)`

SetBootCdrom sets BootCdrom field to given value.

### HasBootCdrom

`func (o *ServerProperties) HasBootCdrom() bool`

HasBootCdrom returns a boolean if a field has been set.

### GetBootVolume

`func (o *ServerProperties) GetBootVolume() ResourceReference`

GetBootVolume returns the BootVolume field if non-nil, zero value otherwise.

### GetBootVolumeOk

`func (o *ServerProperties) GetBootVolumeOk() (*ResourceReference, bool)`

GetBootVolumeOk returns a tuple with the BootVolume field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetBootVolume

`func (o *ServerProperties) SetBootVolume(v ResourceReference)`

SetBootVolume sets BootVolume field to given value.

### HasBootVolume

`func (o *ServerProperties) HasBootVolume() bool`

HasBootVolume returns a boolean if a field has been set.

### GetCpuFamily

`func (o *ServerProperties) GetCpuFamily() string`

GetCpuFamily returns the CpuFamily field if non-nil, zero value otherwise.

### GetCpuFamilyOk

`func (o *ServerProperties) GetCpuFamilyOk() (*string, bool)`

GetCpuFamilyOk returns a tuple with the CpuFamily field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetCpuFamily

`func (o *ServerProperties) SetCpuFamily(v string)`

SetCpuFamily sets CpuFamily field to given value.

### HasCpuFamily

`func (o *ServerProperties) HasCpuFamily() bool`

HasCpuFamily returns a boolean if a field has been set.

### GetType

`func (o *ServerProperties) GetType() string`

GetType returns the Type field if non-nil, zero value otherwise.

### GetTypeOk

`func (o *ServerProperties) GetTypeOk() (*string, bool)`

GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetType

`func (o *ServerProperties) SetType(v string)`

SetType sets Type field to given value.

### HasType

`func (o *ServerProperties) HasType() bool`

HasType returns a boolean if a field has been set.

### GetEnabledFeatures

`func (o *ServerProperties) GetEnabledFeatures() []string`

GetEnabledFeatures returns the EnabledFeatures field if non-nil, zero value otherwise.

### GetEnabledFeaturesOk

`func (o *ServerProperties) GetEnabledFeaturesOk() (*[]string, bool)`

GetEnabledFeaturesOk returns a tuple with the EnabledFeatures field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetEnabledFeatures

`func (o *ServerProperties) SetEnabledFeatures(v []string)`

SetEnabledFeatures sets EnabledFeatures field to given value.

### HasEnabledFeatures

`func (o *ServerProperties) HasEnabledFeatures() bool`

HasEnabledFeatures returns a boolean if a field has been set.

### GetPlacementGroupId

`func (o *ServerProperties) GetPlacementGroupId() string`

GetPlacementGroupId returns the PlacementGroupId field if non-nil, zero value otherwise.

### GetPlacementGroupIdOk

`func (o *ServerProperties) GetPlacementGroupIdOk() (*string, bool)`

GetPlacementGroupIdOk returns a tuple with the PlacementGroupId field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetPlacementGroupId

`func (o *ServerProperties) SetPlacementGroupId(v string)`

SetPlacementGroupId sets PlacementGroupId field to given value.

### HasPlacementGroupId

`func (o *ServerProperties) HasPlacementGroupId() bool`

HasPlacementGroupId returns a boolean if a field has been set.

### GetNicMultiQueue

`func (o *ServerProperties) GetNicMultiQueue() bool`

GetNicMultiQueue returns the NicMultiQueue field if non-nil, zero value otherwise.

### GetNicMultiQueueOk

`func (o *ServerProperties) GetNicMultiQueueOk() (*bool, bool)`

GetNicMultiQueueOk returns a tuple with the NicMultiQueue field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.

### SetNicMultiQueue

`func (o *ServerProperties) SetNicMultiQueue(v bool)`

SetNicMultiQueue sets NicMultiQueue field to given value.

### HasNicMultiQueue

`func (o *ServerProperties) HasNicMultiQueue() bool`

HasNicMultiQueue returns a boolean if a field has been set.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ionos.com/cloud/go/go-bundle/sdks/compute/models/serverproperties.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
