Skip to content

Nautobot TRAX API Package

nautobot_trax.api

REST API module for nautobot_trax app.

serializers

API serializers for nautobot_trax.

CommsCardEntrySerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

CommsCardEntry serializer.

Source code in nautobot_trax/api/serializers.py
class CommsCardEntrySerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """CommsCardEntry serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.CommsCardEntry
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "channel",
            "keymat",
            "comms_card",
            "frequency_set",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.CommsCardEntry
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "channel",
        "keymat",
        "comms_card",
        "frequency_set",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

CommsCardSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

CommsCard serializer.

Source code in nautobot_trax/api/serializers.py
class CommsCardSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """CommsCard serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.CommsCard
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "operation",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.CommsCard
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "operation",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

FrequencyBandSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

FrequencyBand serializer (read-only reference data).

Source code in nautobot_trax/api/serializers.py
class FrequencyBandSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """FrequencyBand serializer (read-only reference data)."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.FrequencyBand
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "description",
            "lower_frequency_mhz",
            "upper_frequency_mhz",
            "created",
            "last_updated",
            "tags",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
        read_only_fields = ["lower_frequency_mhz", "upper_frequency_mhz"]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.FrequencyBand
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "description",
        "lower_frequency_mhz",
        "upper_frequency_mhz",
        "created",
        "last_updated",
        "tags",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]
    read_only_fields = ["lower_frequency_mhz", "upper_frequency_mhz"]

FrequencySerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

Frequency serializer.

Source code in nautobot_trax/api/serializers.py
class FrequencySerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """Frequency serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.Frequency
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "frequency_mhz",
            "description",
            "band",
            "status",
            "tenant",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.Frequency
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "frequency_mhz",
        "description",
        "band",
        "status",
        "tenant",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

FrequencySetSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

FrequencySet serializer.

Source code in nautobot_trax/api/serializers.py
class FrequencySetSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):  # pylint: disable=nb-sub-class-name
    """FrequencySet serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.MissionFrequencySet
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "tx_frequency_mhz",
            "rx_frequency_mhz",
            "tx_bandwidth_mhz",
            "rx_bandwidth_mhz",
            "transport_type",
            "transport_subtype",
            "access_method",
            "modulation",
            "polarization",
            "notes",
            "satellite",
            "band",
            "provider",
            "status",
            "tenant",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.MissionFrequencySet
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "tx_frequency_mhz",
        "rx_frequency_mhz",
        "tx_bandwidth_mhz",
        "rx_bandwidth_mhz",
        "transport_type",
        "transport_subtype",
        "access_method",
        "modulation",
        "polarization",
        "notes",
        "satellite",
        "band",
        "provider",
        "status",
        "tenant",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

MapTileSetSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

MapTileSet serializer.

Source code in nautobot_trax/api/serializers.py
class MapTileSetSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """MapTileSet serializer."""

    def to_representation(self, instance):
        """Return the object-authorized REST download route for uploaded archives."""
        data = super().to_representation(instance)
        if instance.mbtiles_file:
            url = reverse("plugins-api:nautobot_trax-api:maptileset-download", kwargs={"pk": instance.pk})
            request = self.context.get("request")
            data["mbtiles_file"] = request.build_absolute_uri(url) if request else url
        return data

    class Meta:
        """Define atlas metadata and read-only derived values."""

        model = models.MapTileSet
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "description",
            "mbtiles_file",
            "is_active",
            "tile_format",
            "attribution",
            "min_zoom",
            "max_zoom",
            "zoom_levels",
            "bounds_west",
            "bounds_south",
            "bounds_east",
            "bounds_north",
            "created",
            "last_updated",
            "tags",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
        read_only_fields = [
            "tile_format",
            "attribution",
            "min_zoom",
            "max_zoom",
            "zoom_levels",
            "bounds_west",
            "bounds_south",
            "bounds_east",
            "bounds_north",
        ]
Meta

Define atlas metadata and read-only derived values.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Define atlas metadata and read-only derived values."""

    model = models.MapTileSet
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "description",
        "mbtiles_file",
        "is_active",
        "tile_format",
        "attribution",
        "min_zoom",
        "max_zoom",
        "zoom_levels",
        "bounds_west",
        "bounds_south",
        "bounds_east",
        "bounds_north",
        "created",
        "last_updated",
        "tags",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]
    read_only_fields = [
        "tile_format",
        "attribution",
        "min_zoom",
        "max_zoom",
        "zoom_levels",
        "bounds_west",
        "bounds_south",
        "bounds_east",
        "bounds_north",
    ]
to_representation(instance)

Return the object-authorized REST download route for uploaded archives.

Source code in nautobot_trax/api/serializers.py
def to_representation(self, instance):
    """Return the object-authorized REST download route for uploaded archives."""
    data = super().to_representation(instance)
    if instance.mbtiles_file:
        url = reverse("plugins-api:nautobot_trax-api:maptileset-download", kwargs={"pk": instance.pk})
        request = self.context.get("request")
        data["mbtiles_file"] = request.build_absolute_uri(url) if request else url
    return data

MissionPlanSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

MissionPlan serializer.

Source code in nautobot_trax/api/serializers.py
class MissionPlanSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """MissionPlan serializer."""

    def validate(self, attrs):
        """Validate the final kit selections, including partial updates."""
        tenant = attrs.get("tenant", self.instance.tenant if self.instance else None)
        supporting_kits = attrs.get("supporting_kits")
        if supporting_kits is None:
            supporting_kits = self.instance.supporting_kits.all() if self.instance else []
        if tenant and tenant in supporting_kits:
            raise serializers.ValidationError(
                {"supporting_kits": "Do not include the deployed kit in supporting kits."}
            )
        return super().validate(attrs)

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.MissionPlan
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "mission_name",
            "tenant",
            "supporting_kits",
            "status",
            "start_date",
            "end_date",
            "location",
            "deployment_mgrs",
            "deployment_latitude",
            "deployment_longitude",
            "deployment_altitude_m",
            "description",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.MissionPlan
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "mission_name",
        "tenant",
        "supporting_kits",
        "status",
        "start_date",
        "end_date",
        "location",
        "deployment_mgrs",
        "deployment_latitude",
        "deployment_longitude",
        "deployment_altitude_m",
        "description",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]
validate(attrs)

Validate the final kit selections, including partial updates.

Source code in nautobot_trax/api/serializers.py
def validate(self, attrs):
    """Validate the final kit selections, including partial updates."""
    tenant = attrs.get("tenant", self.instance.tenant if self.instance else None)
    supporting_kits = attrs.get("supporting_kits")
    if supporting_kits is None:
        supporting_kits = self.instance.supporting_kits.all() if self.instance else []
    if tenant and tenant in supporting_kits:
        raise serializers.ValidationError(
            {"supporting_kits": "Do not include the deployed kit in supporting kits."}
        )
    return super().validate(attrs)

MissionTransportOptionSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

MissionTransportOption serializer.

Source code in nautobot_trax/api/serializers.py
class MissionTransportOptionSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """MissionTransportOption serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.MissionTransportOption
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "transport_type",
            "transport_subtype",
            "role",
            "polarization",
            "status",
            "notes",
            "mission_plan",
            "circuit",
            "device",
            "provider",
            "mission_frequency_set",
            "satellite",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.MissionTransportOption
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "transport_type",
        "transport_subtype",
        "role",
        "polarization",
        "status",
        "notes",
        "mission_plan",
        "circuit",
        "device",
        "provider",
        "mission_frequency_set",
        "satellite",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

OperationSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

Operation serializer.

Source code in nautobot_trax/api/serializers.py
class OperationSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """Operation serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.Operation
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "status",
            "start_date",
            "end_date",
            "poc",
            "unit_tasked",
            "aor",
            "description",
            "mission_plans",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.Operation
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "status",
        "start_date",
        "end_date",
        "poc",
        "unit_tasked",
        "aor",
        "description",
        "mission_plans",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

SatelliteSerializer

Bases: NautobotModelSerializer, TaggedModelSerializerMixin

Satellite serializer.

Source code in nautobot_trax/api/serializers.py
class SatelliteSerializer(NautobotModelSerializer, TaggedModelSerializerMixin):
    """Satellite serializer."""

    class Meta:
        """Declare the model and fields exposed through the API."""

        model = models.Satellite
        fields = [
            "id",
            "object_type",
            "display",
            "url",
            "natural_slug",
            "name",
            "orbit",
            "description",
            "provider",
            "created",
            "last_updated",
            "tags",
            "notes_url",
            "custom_fields",
            "computed_fields",
            "relationships",
        ]
Meta

Declare the model and fields exposed through the API.

Source code in nautobot_trax/api/serializers.py
class Meta:
    """Declare the model and fields exposed through the API."""

    model = models.Satellite
    fields = [
        "id",
        "object_type",
        "display",
        "url",
        "natural_slug",
        "name",
        "orbit",
        "description",
        "provider",
        "created",
        "last_updated",
        "tags",
        "notes_url",
        "custom_fields",
        "computed_fields",
        "relationships",
    ]

urls

Django API urlpatterns declaration for nautobot_trax app.

views

API views for nautobot_trax.

CommsCardEntryViewSet

Bases: NautobotModelViewSet

CommsCardEntry viewset.

Source code in nautobot_trax/api/views.py
class CommsCardEntryViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """CommsCardEntry viewset."""

    queryset = models.CommsCardEntry.objects.select_related("comms_card", "frequency_set")
    serializer_class = serializers.CommsCardEntrySerializer
    filterset_class = filters.CommsCardEntryFilterSet

CommsCardViewSet

Bases: NautobotModelViewSet

CommsCard viewset.

Source code in nautobot_trax/api/views.py
class CommsCardViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """CommsCard viewset."""

    queryset = models.CommsCard.objects.select_related("operation")
    serializer_class = serializers.CommsCardSerializer
    filterset_class = filters.CommsCardFilterSet

FrequencyBandViewSet

Bases: ReadOnlyModelViewSet

Read-only FrequencyBand viewset.

Source code in nautobot_trax/api/views.py
class FrequencyBandViewSet(ReadOnlyModelViewSet):  # pylint: disable=too-many-ancestors
    """Read-only FrequencyBand viewset."""

    queryset = models.FrequencyBand.objects.all()
    serializer_class = serializers.FrequencyBandSerializer
    filterset_class = filters.FrequencyBandFilterSet

FrequencySetViewSet

Bases: NautobotModelViewSet

FrequencySet viewset.

Source code in nautobot_trax/api/views.py
class FrequencySetViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """FrequencySet viewset."""

    queryset = models.MissionFrequencySet.objects.select_related("satellite", "band", "provider", "status", "tenant")
    serializer_class = serializers.FrequencySetSerializer
    filterset_class = filters.FrequencySetFilterSet

FrequencyViewSet

Bases: NautobotModelViewSet

Frequency viewset.

Source code in nautobot_trax/api/views.py
class FrequencyViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """Frequency viewset."""

    queryset = models.Frequency.objects.select_related("band", "status", "tenant")
    serializer_class = serializers.FrequencySerializer
    filterset_class = filters.FrequencyFilterSet

    @action(detail=False, methods=["get"], url_path="available", filterset_class=None)
    def available(self, request):  # pylint: disable=too-many-locals
        """Return catalog frequencies not currently in use by scoped Frequency Sets."""
        band_id = request.query_params.get("band")
        if not band_id:
            return Response({"detail": "Query parameter 'band' is required."}, status=400)

        satellite_id = request.query_params.get("satellite")
        tenant_id = request.query_params.get("tenant")
        provider_id = request.query_params.get("provider")
        exclude_name = request.query_params.get("exclude_name")

        status_ids_param = request.query_params.get("mission_set_status_id", "")
        status_ids = [s.strip() for s in status_ids_param.split(",") if s.strip()]
        status_param = request.query_params.get("mission_set_status", "active")
        status_names = [s.strip() for s in status_param.split(",") if s.strip()]

        catalog_qs = self.get_queryset().filter(band_id=band_id, status__name="Active")
        if tenant_id:
            catalog_qs = catalog_qs.filter(django_models.Q(tenant_id=tenant_id) | django_models.Q(tenant__isnull=True))

        occupied = models.MissionFrequencySet.objects.filter(band_id=band_id)
        if satellite_id:
            occupied = occupied.filter(satellite_id=satellite_id)
        if tenant_id:
            occupied = occupied.filter(django_models.Q(tenant_id=tenant_id) | django_models.Q(tenant__isnull=True))
        if provider_id:
            occupied = occupied.filter(provider_id=provider_id)
        if exclude_name:
            occupied = occupied.exclude(name=exclude_name)
        if status_ids:
            occupied = occupied.filter(status_id__in=status_ids)
        elif status_names:
            q = django_models.Q()
            for name in status_names:
                q |= django_models.Q(status__name__iexact=name)
            occupied = occupied.filter(q)

        occupied_freqs = set(occupied.values_list("tx_frequency_mhz", flat=True))
        occupied_freqs.update(occupied.values_list("rx_frequency_mhz", flat=True))

        available_qs = catalog_qs.exclude(frequency_mhz__in=occupied_freqs).order_by("frequency_mhz")

        page = self.paginate_queryset(available_qs)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)
        return Response(self.get_serializer(available_qs, many=True).data)
available(request)

Return catalog frequencies not currently in use by scoped Frequency Sets.

Source code in nautobot_trax/api/views.py
@action(detail=False, methods=["get"], url_path="available", filterset_class=None)
def available(self, request):  # pylint: disable=too-many-locals
    """Return catalog frequencies not currently in use by scoped Frequency Sets."""
    band_id = request.query_params.get("band")
    if not band_id:
        return Response({"detail": "Query parameter 'band' is required."}, status=400)

    satellite_id = request.query_params.get("satellite")
    tenant_id = request.query_params.get("tenant")
    provider_id = request.query_params.get("provider")
    exclude_name = request.query_params.get("exclude_name")

    status_ids_param = request.query_params.get("mission_set_status_id", "")
    status_ids = [s.strip() for s in status_ids_param.split(",") if s.strip()]
    status_param = request.query_params.get("mission_set_status", "active")
    status_names = [s.strip() for s in status_param.split(",") if s.strip()]

    catalog_qs = self.get_queryset().filter(band_id=band_id, status__name="Active")
    if tenant_id:
        catalog_qs = catalog_qs.filter(django_models.Q(tenant_id=tenant_id) | django_models.Q(tenant__isnull=True))

    occupied = models.MissionFrequencySet.objects.filter(band_id=band_id)
    if satellite_id:
        occupied = occupied.filter(satellite_id=satellite_id)
    if tenant_id:
        occupied = occupied.filter(django_models.Q(tenant_id=tenant_id) | django_models.Q(tenant__isnull=True))
    if provider_id:
        occupied = occupied.filter(provider_id=provider_id)
    if exclude_name:
        occupied = occupied.exclude(name=exclude_name)
    if status_ids:
        occupied = occupied.filter(status_id__in=status_ids)
    elif status_names:
        q = django_models.Q()
        for name in status_names:
            q |= django_models.Q(status__name__iexact=name)
        occupied = occupied.filter(q)

    occupied_freqs = set(occupied.values_list("tx_frequency_mhz", flat=True))
    occupied_freqs.update(occupied.values_list("rx_frequency_mhz", flat=True))

    available_qs = catalog_qs.exclude(frequency_mhz__in=occupied_freqs).order_by("frequency_mhz")

    page = self.paginate_queryset(available_qs)
    if page is not None:
        serializer = self.get_serializer(page, many=True)
        return self.get_paginated_response(serializer.data)
    return Response(self.get_serializer(available_qs, many=True).data)

MapTileSetViewSet

Bases: NautobotModelViewSet

MapTileSet viewset.

Source code in nautobot_trax/api/views.py
class MapTileSetViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """MapTileSet viewset."""

    parser_classes = [*NautobotModelViewSet.parser_classes, MultiPartParser, FormParser]
    queryset = models.MapTileSet.objects.all()
    serializer_class = serializers.MapTileSetSerializer
    filterset_class = filters.MapTileSetFilterSet

    @action(detail=True, methods=["get"])
    def download(self, request, pk=None):  # pylint: disable=unused-argument
        """Allow token/session authenticated archive downloads with object restrictions."""
        return map_archive_download(self.get_object())
download(request, pk=None)

Allow token/session authenticated archive downloads with object restrictions.

Source code in nautobot_trax/api/views.py
@action(detail=True, methods=["get"])
def download(self, request, pk=None):  # pylint: disable=unused-argument
    """Allow token/session authenticated archive downloads with object restrictions."""
    return map_archive_download(self.get_object())

MissionPlanViewSet

Bases: NautobotModelViewSet

MissionPlan viewset.

Source code in nautobot_trax/api/views.py
class MissionPlanViewSet(NautobotModelViewSet):
    """MissionPlan viewset."""

    queryset = models.MissionPlan.objects.select_related("tenant", "location").prefetch_related("supporting_kits")
    serializer_class = serializers.MissionPlanSerializer
    filterset_class = filters.MissionPlanFilterSet

MissionTransportOptionViewSet

Bases: NautobotModelViewSet

MissionTransportOption viewset.

Source code in nautobot_trax/api/views.py
class MissionTransportOptionViewSet(NautobotModelViewSet):
    """MissionTransportOption viewset."""

    queryset = models.MissionTransportOption.objects.select_related(
        "mission_plan",
        "mission_frequency_set",
        "circuit",
        "device",
        "provider",
    )
    serializer_class = serializers.MissionTransportOptionSerializer
    filterset_class = filters.MissionTransportOptionFilterSet

OperationViewSet

Bases: NautobotModelViewSet

Operation viewset.

Source code in nautobot_trax/api/views.py
class OperationViewSet(NautobotModelViewSet):
    """Operation viewset."""

    queryset = models.Operation.objects.prefetch_related("mission_plans")
    serializer_class = serializers.OperationSerializer
    filterset_class = filters.OperationFilterSet

SatelliteViewSet

Bases: NautobotModelViewSet

Satellite viewset.

Source code in nautobot_trax/api/views.py
class SatelliteViewSet(NautobotModelViewSet):  # pylint: disable=too-many-ancestors
    """Satellite viewset."""

    queryset = models.Satellite.objects.all()
    serializer_class = serializers.SatelliteSerializer
    filterset_class = filters.SatelliteFilterSet