version: '1.0'
generics:
- name: GenericModule
namespace: Dcim
description: A generic module, such as a Linecard or Routing Engine, installed in
a module bay.
label: Module
icon: mdi:expansion-card
human_friendly_id:
- computed_name__value
display_label: computed_name__value
attributes:
- name: computed_name
kind: Text
read_only: true
optional: false
unique: true
allow_override: any
order_weight: 1000
- name: serial_number
kind: Text
optional: true
description: Serial number of the module, if known.
order_weight: 1100
- name: description
kind: Text
optional: true
order_weight: 1200
relationships:
- name: module_bay
label: Module Bay
peer: DcimModuleBay
identifier: module_bay__module
optional: false
cardinality: one
kind: Attribute
order_weight: 900
- name: GenericModuleType
namespace: Dcim
description: A generic module type, with common specifications like part number
and manufacturer.
label: Module Type
icon: mdi:database-cog
menu_placement: DcimGenericModule
display_label: name__value
uniqueness_constraints:
- - name__value
- manufacturer
human_friendly_id:
- name__value
order_by:
- manufacturer__name__value
- name__value
attributes:
- name: name
kind: Text
unique: true
description: Name of the module type.
order_weight: 1000
- name: description
kind: Text
optional: true
description: Description of the module type.
order_weight: 1100
- name: part_number
label: Part Number
kind: Text
optional: true
description: Part number of the module.
order_weight: 1200
relationships:
- name: manufacturer
peer: OrganizationManufacturer
identifier: manufacturer__moduletype
cardinality: one
optional: false
kind: Attribute
description: Manufacturer of the module type.
order_weight: 1250
nodes:
- name: ModuleBay
namespace: Dcim
description: A physical bay on a device that can receive a module.
label: Module Bay
icon: mdi:tray
menu_placement: DcimDevice
human_friendly_id:
- computed_name__value
display_label: computed_name__value
order_by:
- device__name__value
- name__value
uniqueness_constraints:
- - device
- name__value
- - device
- position__value
attributes:
- name: computed_name
kind: Text
read_only: true
optional: false
unique: true
computed_attribute:
kind: Jinja2
jinja2_template: '{{ device__name__value }} > {{ name__value }}'
description: Name computed from the device and bay name.
order_weight: 800
- name: name
kind: Text
description: Name of the bay, e.g. 'slot 1' or 'psu 1'.
order_weight: 1000
- name: position
kind: Number
description: Numeric position of the bay within the device, used for ordering
(e.g. slot 1, 2, 3...).
optional: false
parameters:
min_value: 1
order_weight: 1050
- name: description
kind: Text
optional: true
order_weight: 1100
relationships:
- name: device
label: Device
peer: DcimPhysicalDevice
identifier: device__module_bays
optional: false
cardinality: one
kind: Parent
order_weight: 900
- name: installed_module
label: Installed Module
peer: DcimGenericModule
identifier: module_bay__module
optional: true
cardinality: one
kind: Attribute
order_weight: 1200
- name: Module
namespace: Dcim
description: Standard module installed in a device.
label: Module
icon: mdi:expansion-card
include_in_menu: false
inherit_from:
- DcimGenericModule
attributes:
- name: computed_name
kind: Text
read_only: true
optional: false
unique: true
computed_attribute:
kind: Jinja2
jinja2_template: '{{ module_bay__computed_name__value }} ({{ module_type__name__value
}})'
description: Name computed from the module bay and module type.
order_weight: 1000
relationships:
- name: module_type
peer: DcimModuleType
optional: false
cardinality: one
kind: Attribute
order_weight: 950
- name: ModuleType
namespace: Dcim
description: Standard module type, defining common specifications for a Module.
label: Module Type
icon: mdi:database-cog
include_in_menu: false
inherit_from:
- DcimGenericModuleType
extensions:
nodes:
- kind: DcimPhysicalDevice
relationships:
- name: module_bays
label: Module Bays
peer: DcimModuleBay
identifier: device__module_bays
cardinality: many
kind: Component
optional: true
description: Module bays available on this device.