Attach Host USB Device to VM

POST/zstack/v1/usb-device/usb-devices/{usbDeviceUuid}/attach

Headers

Authorization: OAuth the-session-uuid

Body

{
  "params": {
    "vmInstanceUuid": "2a3697245a4a3e829a246e222c243688",
    "attachType": "PassThrough"
  },
  "systemTags": [],
  "userTags": []
}

The systemTags and userTags fields can be omitted in the above example. They are listed to indicate that the body can contain these two fields.

Curl Example

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuid":"2a3697245a4a3e829a246e222c243688","attachType":"PassThrough"}}' http://localhost:8080/zstack/v1/usb-device/usb-devices/84838a1925bb3eb3b2440a8afd420e40/attach

Parameter List

Name

Type

Location

Description

Allowed Values

Starting Version

usbDeviceUuid

String

url

USB device UUID

 

2.2

vmInstanceUuid

String

body(contained in params structure)

Virtual Machine UUID

 

2.2

attachType (Optional)

String

body(contained in params structure)

Attach type

  • PassThrough
  • Redirect

3.5.0

systemTags (Optional)

List

body

System tags

 

2.2

userTags (Optional)

List

body

User tags

 

2.2

API Response

Response Example

{
  "inventory": {
    "uuid": "dc782167a4853525848fd04bf606d072",
    "name": "usb",
    "hostUuid": "dea6020aae7b3244be45eee6ae1d4d0f",
    "vmInstanceUuid": "33471e0ae8a33b3b8b0f295eff6e4db4",
    "state": "Enabled",
    "busNum": "001",
    "devNum": "001",
    "idVendor": "0781",
    "idProduct": "5591",
    "iManufacturer": "SanDisk",
    "iProduct": "Ultra USB 3.0",
    "iSerial": "000000000001",
    "usbVersion": "3.0",
    "attachType": "PassThrough"
  }
}
NameTypeDescriptionStarting Version
errorErrorCodeError code. If not null, the operation failed. This field is null when the operation succeeds. See error2.2
inventoryUsbDeviceInventorySee inventory2.2

error

NameTypeDescriptionStarting Version
codeStringError code, a globally unique identifier of the error, e.g. SYS.1000, HOST.10012.2
descriptionStringBrief description of the error2.2
detailsStringDetailed error information2.2
elaborationStringReserved field, defaults to null2.2
opaqueLinkedHashMapReserved field, defaults to null2.2
causeErrorCodeRoot cause, the source error that caused the current error, null if no original error2.2

inventory

NameTypeDescriptionStarting Version
uuidStringUUID of the resource, uniquely identifies the resource2.2
nameStringResource name2.2
descriptionStringResource description2.2
hostUuidStringHost UUID2.2
vmInstanceUuidStringVirtual Machine UUID2.2
busNumStringBus number2.2
devNumStringDevice number2.2
idVendorStringVendorID2.2
idProductStringProductID2.2
iManufacturerStringManufacturer2.2
iProductStringDevice type2.2
iSerialStringSerial number2.2
usbVersionStringUSB version2.2
attachTypeStringAttach method3.5.0
createDateTimestampCreate date2.2
lastOpDateTimestampLast update date2.2
stateUsbDeviceStateSee state2.2

state

NameTypeDescriptionStarting Version
nameStringResource name2.2
ordinalint 2.2

SDK Examples

Java SDK

AttachUsbDeviceToVmAction action = new AttachUsbDeviceToVmAction();
action.usbDeviceUuid = "84838a1925bb3eb3b2440a8afd420e40";
action.vmInstanceUuid = "2a3697245a4a3e829a246e222c243688";
action.attachType = "PassThrough";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachUsbDeviceToVmAction.Result res = action.call();

Python SDK

AttachUsbDeviceToVmAction action = AttachUsbDeviceToVmAction()
action.usbDeviceUuid = "84838a1925bb3eb3b2440a8afd420e40"
action.vmInstanceUuid = "2a3697245a4a3e829a246e222c243688"
action.attachType = "PassThrough"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachUsbDeviceToVmAction.Result res = action.call()