43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from rest_framework import serializers
|
|
from rest_framework.decorators import action
|
|
from rest_framework.response import Response
|
|
from rest_framework.routers import APIRootView
|
|
|
|
from netbox.api.viewsets import NetBoxModelViewSet
|
|
from netbox_slm.api.serializers import (
|
|
SoftwareProductSerializer, SoftwareProductVersionSerializer, SoftwareProductInstallationSerializer,
|
|
)
|
|
from netbox_slm.filters import (
|
|
SoftwareProductFilter, SoftwareProductVersionFilter, SoftwareProductInstallationFilter,
|
|
)
|
|
from netbox_slm.models import (
|
|
SoftwareProduct, SoftwareProductVersion, SoftwareProductInstallation,
|
|
)
|
|
|
|
|
|
class NetboxSLMRootView(APIRootView):
|
|
"""
|
|
NetboxSLM API root view
|
|
"""
|
|
|
|
def get_view_name(self):
|
|
return "NetboxSLM"
|
|
|
|
|
|
class SoftwareProductViewSet(NetBoxModelViewSet):
|
|
queryset = SoftwareProduct.objects.all()
|
|
serializer_class = SoftwareProductSerializer
|
|
filterset_class = SoftwareProductFilter
|
|
|
|
|
|
class SoftwareProductVersionViewSet(NetBoxModelViewSet):
|
|
queryset = SoftwareProductVersion.objects.all()
|
|
serializer_class = SoftwareProductVersionSerializer
|
|
filterset_class = SoftwareProductVersionFilter
|
|
|
|
|
|
class SoftwareProductInstallationViewSet(NetBoxModelViewSet):
|
|
queryset = SoftwareProductInstallation.objects.all()
|
|
serializer_class = SoftwareProductInstallationSerializer
|
|
filterset_class = SoftwareProductInstallationFilter
|