# Update Device

## PATCH Request

`https://app.mk.io/api/v1/projects/:project_name/fleet/devices/:name`

Update a device. To learn more about devices, read Device Concept.

### RBAC Capability Required

`fleet.device.update`

## Authentication

### Authorization

Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Path parameters

- `project_name`: string **Required**  
- `name`: string **Required**

## Request

This endpoint expects an object.

### metadata

- **Optional** `metadata`: object [DefaultPatchMetadata](https://docs.mediakind.com/api-reference/fleets-api/schemas/defaultpatchmetadata)
  - **displayName**: string **Optional** 1-255 characters
  - **labels**: map from strings to string **Optional**  
    Maximum number of labels: 32.  
    Maximum length of a label or value: 256 characters.

### spec

- **Optional** `spec`: object [DevicePatchBodySpec](https://docs.mediakind.com/api-reference/fleets-api/schemas/devicepatchbodyspec)
  - **autoPreloadLatestSoftware**: boolean **Optional** Defaults to false  
  - **availableNetworks**: list of objects [AvailableNetworkFragment](https://docs.mediakind.com/api-reference/fleets-api/schemas/availablenetworkfragment) **Optional** 
    - **interfaceName**: string **Required**  pattern: `[^\s\/]` {1,16}
    - **networkName**: string **Required**  pattern: `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`
  - **desiredSoftwareVersion**: string **Optional** <=255 characters
  - **geolocation**: object [GeolocationFragment](https://docs.mediakind.com/api-reference/fleets-api/schemas/geolocationfragment) **Optional**  
    - **coordinates**: list of doubles **Required** 0-2 items
    - **locationId**: string **Optional**  pattern: `^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
    - **preloadSoftwareVersion**: string **Optional** <=255 characters
    - **shortCode**: string **Optional** 8-8 characters
    - **siteName**: string **Optional** pattern: `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`

## Response

### 200 - The updated device

- **kind**: string **Required**
- **metadata**: object [MetadataSchema](https://docs.mediakind.com/api-reference/fleets-api/schemas/metadataschema) **Required**  
  - **created**: string **Optional**  format: date-time
  - **createdBy**: string **Optional** format: uuid
  - **createdByEmail**: string **Optional**  
  - **displayName**: string **Optional**  
  - **id**: string **Required** format: uuid
  - **labels**: map from strings to string **Optional**  
  - **name**: string **Optional**
  - **updated**: string **Optional** format: date-time
  - **updatedBy**: string **Optional** format: uuid
  - **updatedByEmail**: string **Optional**
  - **spec**: object [DeviceBodySpec](https://docs.mediakind.com/api-reference/fleets-api/schemas/devicebodyspec) **Required**

### Errors

- **400 Bad Request**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required**  
    - **code**: string **Required**  
    - **detail**: string **Required**  
    - **ref**: string **Required**  
    - **status**: integer **Required**
- **401 Unauthorized**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required** 
- **403 Forbidden**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required** 
- **404 Not Found**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required** 
- **429 Too Many Requests**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required** 
- **500 Internal Server Error**:  
  - **error**: object [ErrorDetail](https://docs.mediakind.com/api-reference/fleets-api/schemas/errordetail) **Required**
