1# SPDX-License-Identifier: Apache-2.0
2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com>
3from django.urls import path
4
5from . import views
6
7app_name = "netbox_interface_name_rules"
8
9urlpatterns = [
10 # List / CRUD
11 path("rules/", views.InterfaceNameRuleListView.as_view(), name="interfacenamerule_list"),
12 path("rules/add/", views.InterfaceNameRuleCreateView.as_view(), name="interfacenamerule_add"),
13 path("rules/import/", views.InterfaceNameRuleBulkImportView.as_view(), name="interfacenamerule_bulk_import"),
14 path("rules/bulk_delete/", views.InterfaceNameRuleBulkDeleteView.as_view(), name="interfacenamerule_bulk_delete"),
15 # Rule tester (Build Rule)
16 path("rules/test/", views.RuleTestView.as_view(), name="interfacenamerule_test"),
17 # Apply rules to existing interfaces
18 path("rules/apply/", views.RuleApplyListView.as_view(), name="interfacenamerule_apply"),
19 # Per-rule parameterised routes
20 path("rules/<int:pk>/", views.InterfaceNameRuleView.as_view(), name="interfacenamerule_detail"),
21 path(
22 "rules/<int:pk>/duplicate/", views.InterfaceNameRuleDuplicateView.as_view(), name="interfacenamerule_duplicate"
23 ),
24 path("rules/<int:pk>/edit/", views.InterfaceNameRuleEditView.as_view(), name="interfacenamerule_edit"),
25 path("rules/<int:pk>/delete/", views.InterfaceNameRuleDeleteView.as_view(), name="interfacenamerule_delete"),
26 path(
27 "rules/<int:pk>/changelog/",
28 views.InterfaceNameRuleChangeLogView.as_view(),
29 name="interfacenamerule_changelog",
30 ),
31 path("rules/<int:pk>/apply/", views.RuleApplyDetailView.as_view(), name="interfacenamerule_apply_detail"),
32 path("rules/<int:pk>/applicable/", views.RuleApplicableView.as_view(), name="interfacenamerule_applicable"),
33 path("rules/<int:pk>/toggle/", views.RuleToggleView.as_view(), name="interfacenamerule_toggle"),
34]