mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-17 12:42:52 -06:00

* Move Module & ModuleType models to a separate file * Add ModuleTypeProfile & related fields * Initial work on JSON schema validation * Add attributes property on ModuleType * Introduce MultipleOfValidator * Introduce JSONSchemaProperty * Enable dynamic form field rendering * Misc cleanup * Fix migration conflict * Ensure deterministic ordering of attriubte fields * Support choices & default values * Include module type attributes on module view * Enable modifying individual attributes via REST API * Enable filtering by attribute values * Add documentation & tests * Schema should be optional * Include attributes column for profiles * Profile is nullable * Include some initial profiles to be installed via migration * Fix migrations conflict * Fix filterset test * Misc cleanup * Fixes #19023: get_field_value() should respect null values in bound forms (#19024) * Skip filters which do not specify a JSON-serializable value * Fix handling of array item types * Fix initial data in schema field during bulk edit * Implement sanity checking for JSON schema definitions * Fall back to filtering by string value
79 lines
3.1 KiB
Python
79 lines
3.1 KiB
Python
from netbox.api.routers import NetBoxRouter
|
|
from . import views
|
|
|
|
|
|
router = NetBoxRouter()
|
|
router.APIRootView = views.DCIMRootView
|
|
|
|
# Sites
|
|
router.register('regions', views.RegionViewSet)
|
|
router.register('site-groups', views.SiteGroupViewSet)
|
|
router.register('sites', views.SiteViewSet)
|
|
|
|
# Racks
|
|
router.register('locations', views.LocationViewSet)
|
|
router.register('rack-types', views.RackTypeViewSet)
|
|
router.register('rack-roles', views.RackRoleViewSet)
|
|
router.register('racks', views.RackViewSet)
|
|
router.register('rack-reservations', views.RackReservationViewSet)
|
|
|
|
# Device/module types
|
|
router.register('manufacturers', views.ManufacturerViewSet)
|
|
router.register('device-types', views.DeviceTypeViewSet)
|
|
router.register('module-types', views.ModuleTypeViewSet)
|
|
router.register('module-type-profiles', views.ModuleTypeProfileViewSet)
|
|
|
|
# Device type components
|
|
router.register('console-port-templates', views.ConsolePortTemplateViewSet)
|
|
router.register('console-server-port-templates', views.ConsoleServerPortTemplateViewSet)
|
|
router.register('power-port-templates', views.PowerPortTemplateViewSet)
|
|
router.register('power-outlet-templates', views.PowerOutletTemplateViewSet)
|
|
router.register('interface-templates', views.InterfaceTemplateViewSet)
|
|
router.register('front-port-templates', views.FrontPortTemplateViewSet)
|
|
router.register('rear-port-templates', views.RearPortTemplateViewSet)
|
|
router.register('module-bay-templates', views.ModuleBayTemplateViewSet)
|
|
router.register('device-bay-templates', views.DeviceBayTemplateViewSet)
|
|
router.register('inventory-item-templates', views.InventoryItemTemplateViewSet)
|
|
|
|
# Device/modules
|
|
router.register('device-roles', views.DeviceRoleViewSet)
|
|
router.register('platforms', views.PlatformViewSet)
|
|
router.register('devices', views.DeviceViewSet)
|
|
router.register('virtual-device-contexts', views.VirtualDeviceContextViewSet)
|
|
router.register('modules', views.ModuleViewSet)
|
|
|
|
# Device components
|
|
router.register('console-ports', views.ConsolePortViewSet)
|
|
router.register('console-server-ports', views.ConsoleServerPortViewSet)
|
|
router.register('power-ports', views.PowerPortViewSet)
|
|
router.register('power-outlets', views.PowerOutletViewSet)
|
|
router.register('interfaces', views.InterfaceViewSet)
|
|
router.register('front-ports', views.FrontPortViewSet)
|
|
router.register('rear-ports', views.RearPortViewSet)
|
|
router.register('module-bays', views.ModuleBayViewSet)
|
|
router.register('device-bays', views.DeviceBayViewSet)
|
|
router.register('inventory-items', views.InventoryItemViewSet)
|
|
|
|
# Device component roles
|
|
router.register('inventory-item-roles', views.InventoryItemRoleViewSet)
|
|
|
|
# Addressing
|
|
router.register('mac-addresses', views.MACAddressViewSet)
|
|
|
|
# Cables
|
|
router.register('cables', views.CableViewSet)
|
|
router.register('cable-terminations', views.CableTerminationViewSet)
|
|
|
|
# Virtual chassis
|
|
router.register('virtual-chassis', views.VirtualChassisViewSet)
|
|
|
|
# Power
|
|
router.register('power-panels', views.PowerPanelViewSet)
|
|
router.register('power-feeds', views.PowerFeedViewSet)
|
|
|
|
# Miscellaneous
|
|
router.register('connected-device', views.ConnectedDeviceViewSet, basename='connected-device')
|
|
|
|
app_name = 'dcim-api'
|
|
urlpatterns = router.urls
|