1. Operations
2. vcenter
3. vm
4. hardware
5. serial

## vcenter vm hardware serial: update

Updates the configuration of a virtual serial port.

### Request:

#### HTTP request

PATCH https://{server}/rest/vcenter/vm/{vm}/hardware/serial/{port}

#### Path Parameters

Name | Type | Description
--- | --- | ---
Required
vm | string | Virtual machine identifier.
port | string | Virtual serial port identifier.

#### Request Body Structure:

- JSON
- XML

{
"spec": {
"allow_guest_control": true,
"backing": {
"file": "string",
"host_device": "string",
"network_location": "http://myurl.com",
"no_rx_loss": true,
"pipe": "string",
"proxy": "http://myurl.com",
"type": "FILE"
},
"start_connected": true,
"yield_on_poll": true
}
}
<?xml version="1.0" ?>
<ns0:Update-Input xmlns:ns0="http://vmware.com/vcenter/vm/hardware/serial" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<spec>
<allow_guest_control>true</allow_guest_control>
<yield_on_poll>true</yield_on_poll>
<backing>
<network_location>http://myurl.com</network_location>
<file>string</file>
<proxy>http://myurl.com</proxy>
<type>FILE</type>
<no_rx_loss>true</no_rx_loss>
<pipe>string</pipe>
<host_device>string</host_device>
</backing>
<start_connected>true</start_connected>
</spec>
</ns0:Update-Input>

#### Request Body Parameters:

Name | Type | Description
--- | --- | ---
bold = required
spec | update_spec | Specification for updating the virtual serial port.
spec.yield_on_poll | boolean | CPU yield behavior. If set to true, the virtual machine will periodically relinquish the processor if its sole task is polling the virtual serial port. The amount of time it takes to regain the processor will depend on the degree of other virtual machine activity on the host. This field may be modified at any time, and changes applied to a connected virtual serial port take effect immediately. Optional. If unset, the value is unchanged.
spec.backing | backing_spec | Physical resource backing for the virtual serial port. This field may only be modified if the virtual machine is not powered on or the virtual serial port is not connected. Optional. If unset, the value is unchanged.
spec.backing.type | string | Backing type for the virtual serial port. Defines the valid backing types for a virtual serial port. Value is one of: FILE: Virtual serial port is backed by a file. HOST_DEVICE: Virtual serial port is backed by a device on the host where the virtual machine is running. PIPE_SERVER: Virtual serial port is backed by a named pipe server. The virtual machine will accept a connection from a host application or another virtual machine on the same host. This is useful for capturing debugging information sent through the virtual serial port. PIPE_CLIENT: Virtual serial port is backed by a named pipe client. The virtual machine will connect to the named pipe provided by a host application or another virtual machine on the same host. This is useful for capturing debugging information sent through the virtual serial port. NETWORK_SERVER: Virtual serial port is backed by a network server. This backing may be used to create a network-accessible serial port on the virtual machine, accepting a connection from a remote system. NETWORK_CLIENT: Virtual serial port is backed by a network client. This backing may be used to create a network-accessible serial port on the virtual machine, initiating a connection to a remote system.
spec.backing.file | string | Path of the file backing the virtual serial port. Optional. It is only relevant when type has value FILE. This field is optional and it is only relevant when the value of `type` is FILE.
spec.backing.host_device | string | Name of the device backing the virtual serial port. Optional. It is only relevant when type has value HOST_DEVICE. If unset, the virtual serial port will be configured to automatically detect a suitable host device.
spec.backing.pipe | string | Name of the pipe backing the virtual serial port. Optional. It is only relevant when type has value [PIPE_SERVER, PIPE_CLIENT]. This field is optional and it is only relevant when the value of `type` is one of PIPE_SERVER or PIPE_CLIENT.
spec.backing.no_rx_loss | boolean | Flag that enables optimized data transfer over the pipe. When the value is true, the host buffers data to prevent data overrun. This allows the virtual machine to read all of the data transferred over the pipe with no data loss. Optional. It is only relevant when type has value [PIPE_SERVER, PIPE_CLIENT]. If unset, defaults to false.
spec.backing.network_location | URI | URI specifying the location of the network service backing the virtual serial port. If vcenter.vm.hardware.serial.backing_spec.type is NETWORK_SERVER, this field is the location used by clients to connect to this server. The hostname part of the URI should either be empty or should specify the address of the host on which the virtual machine is running. If vcenter.vm.hardware.serial.backing_spec.type is NETWORK_CLIENT, this field is the location used by the virtual machine to connect to the remote server. Optional. It is only relevant when type has value [NETWORK_SERVER, NETWORK_CLIENT]. This field is optional and it is only relevant when the value of `type` is one of NETWORK_SERVER or NETWORK_CLIENT.
spec.backing.proxy | URI | Proxy service that provides network access to the network backing. If set, the virtual machine initiates a connection with the proxy service and forwards the traffic to the proxy. Optional. It is only relevant when type has value [NETWORK_SERVER, NETWORK_CLIENT]. If unset, no proxy service should be used.
spec.start_connected | boolean | Flag indicating whether the virtual device should be connected whenever the virtual machine is powered on. Optional. If unset, the value is unchanged.
spec.allow_guest_control | boolean | Flag indicating whether the guest can connect and disconnect the device. Optional. If unset, the value is unchanged.

### Response:

#### HTTP Status Code: 200

None

#### Errors:

HTTP Status Code | Type | Description
--- | --- | ---
500 | error | if the system reports an error while responding to the request.
404 | not_found | if the virtual machine or virtual serial port is not found.
400 | not_allowed_in_current_state | if one or more of the fields specified in the `spec` parameter cannot be modified due to the current power state of the virtual machine or the connection state of the virtual serial port.
400 | resource_busy | if the virtual machine is busy performing another operation.
400 | resource_inaccessible | if the virtual machine's configuration state cannot be accessed.
503 | service_unavailable | if the system is unable to communicate with a service to complete the request.
401 | unauthenticated | if the user can not be authenticated.
403 | unauthorized | if the user doesn't have the required privileges.