# Device Types

A device type represents a particular make and model of hardware that exists in the real world. Device types define the physical attributes of a device (rack height and depth) and its individual components (console, power, network interfaces, and so on).

Device types are instantiated as devices installed within sites and/or equipment racks. For example, you might define a device type to represent a Juniper EX4300-48T network switch with 48 Ethernet interfaces. You can then create multiple _instances_ of this type named "switch1," "switch2," and so on. Each device will automatically inherit the components (such as interfaces) of its device type at the time of creation. However, changes made to a device type will **not** apply to instances of that device type retroactively.

!!! note
    This parent/child relationship is **not** suitable for modeling chassis-based devices, wherein child members share a common control plane. Instead, line cards and similarly non-autonomous hardware should be modeled as modules or inventory items within a device.

## Automatic Component Renaming

When adding component templates to a device type, the string `{vc_position}` can be used in component template names to reference the
`vc_position` field of the device being provisioned, when that device is a member of a Virtual Chassis.

For example, an interface template named `Gi{vc_position}/0/0` installed on a Virtual Chassis
member with position `2` will be rendered as `Gi2/0/0`.

If the device is not a member of a Virtual Chassis, `{vc_position}` defaults to `0`. A custom
fallback value can be specified using the syntax `{vc_position:X}`, where `X` is the desired default.
For example, `{vc_position:1}` will render as `1` when no Virtual Chassis position is set.

## Fields

### Manufacturer

The [manufacturer](./manufacturer.md) which produces this type of device.

### Model

The model number assigned to this device type by its manufacturer. Must be unique to the manufacturer.

### Slug

A unique URL-friendly representation of the model identifier. (This value can be used for filtering.)

### Default Platform

If defined, devices instantiated from this type will automatically inherit the selected platform. (This assignment can be changed after the device has been created.)

### Part Number

An alternative part number to uniquely identify the device type.

### Height

The height of the physical device in rack units. (For device types that are not rack-mountable, this should be `0`.)

### Is Full Depth

If selected, this device type is considered to occupy both the front and rear faces of a rack, regardless of which face it is assigned.

### Parent/Child Status

Indicates whether this is a parent type (capable of housing child devices), a child type (which must be installed within a device bay), or neither.

### Airflow

The default direction in which airflow circulates within the device chassis. This may be configured differently for instantiated devices (e.g. because of different fan modules).

### Weight

The numeric weight of the device, including a unit designation (e.g. 10 kilograms or 20 pounds).

### End of Life

The date after which this device type is no longer supported by its manufacturer. This can be used to identify devices approaching or past their support horizon to aid in hardware lifecycle planning.

### Front & Rear Images

Users can upload illustrations of the device's front and rear panels. If present, these will be used to render the device in [rack](./rack.md) elevation diagrams.
