Note on Inventory Items
masterinventory-items are deprecated. Do not add them to this repository. Use module-bays instead to model hardware components like power supplies, CPUs, or line cards.repository·master·Indexed 21 days ago
https://github.com/netbox-community/devicetype-libraryA library of YAML-based device, module, and rack type definitions used to populate NetBox databases with manufacturer-specific hardware models. It includes specifications for defining device types, rack types, module types, and various components such as console ports, power ports, interfaces, and module bays.
inventory-items are deprecated. Do not add them to this repository. Use module-bays instead to model hardware components like power supplies, CPUs, or line cards.Module type images are stored in a flat structure under module-images/<manufacturer>/. There are no per-module subdirectories.
Requirements:
module-types/ before adding images.<module-type>.(front|rear).<ext> (e.g., RMCARD205.front.png). Filenames must include .front or .rear.To automate the import of YAML device type template files into NetBox, use the NetBox Community Python script. This script provides features such as checking for duplicates and selectively importing specific vendors.
It is available in the netbox-community/Device-Type-Library-Import repository.
Pre-commit checks help identify issues like trailing whitespace or YAML linting errors before raising a PR. It is highly recommended to use a virtual environment.
python3 -m venv venvpip install -r requirements.txtpre-commit hooks:pre-commit installpip install pre-commitpre-commit installgit add):pre-commit runpre-commit run -allpre-commit uninstallpython3 -m venv venv
pip install -r requirements.txt
pre-commit installDevice type definitions are expressed in YAML and represent discrete physical devices.
manufacturer: (String) The name of the manufacturer.model: (String) The model number. Must be unique per manufacturer.slug: (String) A URL-friendly representation of the model number. Must be unique per manufacturer and follow the pattern ^[-a-z0-9_]+$. Note: Prepend the manufacturer's name followed by a dash (e.g., dell-poweredge-r670).u_height: (Number) Height in rack units (supports 0.5U increments). Note: For child devices, u_height must be 0.is_full_depth: (Boolean) Indicates if the device consumes both front and rear rack faces. Defaults to true.part_number: (String) Alternative model representation/SKU.airflow: (String) Airflow pattern. Options: front-to-rear, rear-to-front, left-to-right, right-to-left, side-to-rear, rear-to-side, bottom-to-top, top-to-bottom, passive, mixed.front_image: (Boolean) If true, indicates a front elevation image exists in the elevation-images/ folder. File naming convention: <SLUG>.front.<format>.rear_image: (Boolean) If true, indicates a rear elevation image exists in the elevation-images/ folder. File naming convention: <SLUG>.rear.<format>.subdevice_role: (String) Indicates if the device is a parent or child.is_powered: (Boolean) If false, the device does not take power (useful for patch panels).weight: (Number) Numeric weight (multiple of 0.01).weight_unit: (String) Unit of measurement. Options: kg, g, lb, oz.comments: (String) Additional notes.manufacturer: Dell
model: PowerEdge R670
slug: dell-poweredge-r670
u_height: 1
is_full_depth: trueInterfaces represent network interfaces used to exchange data (e.g., Ethernet).
Available in all NetBox versions.
Supported fields:
name: Namelabel: Labeltype: Interface type slug (Array)mgmt_only: Boolean indicating if the interface is for management only (default: false)poe_mode: Indicates if the device is POE powered (pd) or provides POE (pse)poe_type: Classification of PoE transmission supportedConsole ports provide connectivity to a device's physical console, used for local access or remote out-of-band access via a console server.
Available in NetBox 2 and later.
Supported fields:
name: Namelabel: Labeltype: Port type slug (Array)_is_power_source: Internal use for power validation (default: false)Rack type definitions describe the physical characteristics of a rack.
manufacturer: (String) The name of the manufacturer.model: (String) The model number. Must be unique per manufacturer.slug: (String) URL-friendly representation. Must follow pattern ^[-a-z0-9_]+$ and prepend the manufacturer name with a dash.form_factor: (String) Physical characteristics (e.g., 4-post-frame).width: (Integer) Width in inches/zoll (e.g., 19).u_height: (Number) Height in rack units.starting_unit: (Number) The unit number where the rack starts (e.g., 1).outer_width, outer_height, outer_depth, outer_unit, weight, max_weight, weight_unit, mounting_depth, desc_units.manufacturer: Startech
model: 4 Post 42U
slug: startech-4postrack42
form_factor: 4-post-frame
width: 19
u_height: 42
starting_unit: 1Device bays represent slots in a parent device where a child device (e.g., a blade server in a chassis) is installed. Child devices are independent managed entities with their own platform, role, and components. They do not appear in rack elevations or consume rack units.
Available in all NetBox versions.
Supported fields:
name: Namelabel: LabelConsole server ports represent devices that provide remote access to the local consoles of connected devices.
Available in NetBox 2.2 and later.
Supported fields:
name: Namelabel: Labeltype: Port type slug (Array)Power ports represent internal power supplies that draw power from an external source.
Note: For devices with removable Power Supplies (like FRUs), model them using module-bays and place the power-port within the PSU module.
Available in NetBox 1.7 and later.
Supported fields:
name: Namelabel: Labeltype: Port type slug (Array)maximum_draw: Maximum power draw in watts (optional)allocated_draw: Allocated power draw in watts (optional)Module type definitions represent components that can be installed into devices.
manufacturer: (String) The name of the manufacturer.model: (String) The model number. Must be unique per manufacturer.profile: (String) The module profile. Options: CPU, Fan, GPU, Hard disk, Memory, Power supply, Expansion card.attribute_data: (Object) Data associated with the chosen profile:architecture (string), cores (integer), speed (number).rpm (integer).gpu (string), interface (options: PCIe 4.0, PCIe 4.0 x8, PCIe 4.0 x16, PCIe 5.0 x16), memory (integer, Required).size (integer), speed (integer), disk_type (options: HD, SSD, NVME, Required).class (options: DDR3, DDR4, DDR5, Required), data_rate (integer), ecc (boolean), size (integer, Required).wattage (integer), hot_swappable (boolean, Required), input_current (options: AC, DC, Required), input_voltage (number, Required).bandwidth (integer), connector_type (string).airflow, comments, weight, weight_unit, part_number: (Same as Device Type definitions).