Skip to content

Circuit Maintenance API Package

nautobot_circuit_maintenance.api

REST API module for circuit maintenance plugin.

serializers

Serializer for Circuit Maintenance API.

CircuitMaintenanceCircuitImpactSerializer

Bases: serializers.ModelSerializer

Serializer for API.

Source code in nautobot_circuit_maintenance/api/serializers.py
class CircuitMaintenanceCircuitImpactSerializer(serializers.ModelSerializer):
    """Serializer for API."""

    circuit = CircuitSerializer

    class Meta:
        """Meta class for MaintenanceCircuitImpactSerializer."""

        model = CircuitImpact
        fields = ["id", "maintenance", "circuit", "impact"]
Meta

Meta class for MaintenanceCircuitImpactSerializer.

Source code in nautobot_circuit_maintenance/api/serializers.py
class Meta:
    """Meta class for MaintenanceCircuitImpactSerializer."""

    model = CircuitImpact
    fields = ["id", "maintenance", "circuit", "impact"]

CircuitMaintenanceSerializer

Bases: serializers.ModelSerializer

Serializer for API.

Source code in nautobot_circuit_maintenance/api/serializers.py
class CircuitMaintenanceSerializer(serializers.ModelSerializer):
    """Serializer for API."""

    circuits = CircuitMaintenanceCircuitImpactSerializer

    class Meta:
        """Meta class for MaintenanceSerializer."""

        model = CircuitMaintenance
        fields = ["id", "name", "start_time", "end_time", "description", "status", "ack"]
Meta

Meta class for MaintenanceSerializer.

Source code in nautobot_circuit_maintenance/api/serializers.py
class Meta:
    """Meta class for MaintenanceSerializer."""

    model = CircuitMaintenance
    fields = ["id", "name", "start_time", "end_time", "description", "status", "ack"]

NoteSerializer

Bases: serializers.ModelSerializer

Serializer for API.

Source code in nautobot_circuit_maintenance/api/serializers.py
class NoteSerializer(serializers.ModelSerializer):
    """Serializer for API."""

    maintenance = CircuitMaintenanceSerializer

    class Meta:
        """Meta class for MaintenanceNoteSerializer."""

        model = Note
        fields = ["id", "maintenance", "title", "comment"]
Meta

Meta class for MaintenanceNoteSerializer.

Source code in nautobot_circuit_maintenance/api/serializers.py
class Meta:
    """Meta class for MaintenanceNoteSerializer."""

    model = Note
    fields = ["id", "maintenance", "title", "comment"]

NotificationSourceSerializer

Bases: serializers.ModelSerializer

Serializer for NotificationSource records.

Source code in nautobot_circuit_maintenance/api/serializers.py
class NotificationSourceSerializer(serializers.ModelSerializer):
    """Serializer for NotificationSource records."""

    url = serializers.HyperlinkedIdentityField(
        view_name="plugins-api:nautobot_circuit_maintenance-api:notificationsource-detail"
    )
    providers = NestedProviderSerializer(many=True)

    class Meta:
        """Meta class for NotificationSourceSerializer."""

        model = NotificationSource
        fields = ["id", "url", "name", "slug", "providers", "attach_all_providers"]
Meta

Meta class for NotificationSourceSerializer.

Source code in nautobot_circuit_maintenance/api/serializers.py
class Meta:
    """Meta class for NotificationSourceSerializer."""

    model = NotificationSource
    fields = ["id", "url", "name", "slug", "providers", "attach_all_providers"]

urls

URLS for Circuit Maintenance API.

views

Views for API.

MaintenanceCircuitImpactTaskView

Bases: CustomFieldModelViewSet

API view for Circuit Impact CRUD operations.

Source code in nautobot_circuit_maintenance/api/views.py
class MaintenanceCircuitImpactTaskView(CustomFieldModelViewSet):
    """API view for Circuit Impact CRUD operations."""

    queryset = CircuitImpact.objects.prefetch_related()
    serializer_class = CircuitMaintenanceCircuitImpactSerializer
    filterset_class = filters.CircuitImpactFilterSet

MaintenanceNoteTaskView

Bases: CustomFieldModelViewSet

API view for Circuit Note CRUD operations.

Source code in nautobot_circuit_maintenance/api/views.py
class MaintenanceNoteTaskView(CustomFieldModelViewSet):
    """API view for Circuit Note CRUD operations."""

    queryset = Note.objects.prefetch_related()
    serializer_class = NoteSerializer

MaintenanceTaskView

Bases: CustomFieldModelViewSet

API view for Circuit Maintenance CRUD operations.

Source code in nautobot_circuit_maintenance/api/views.py
class MaintenanceTaskView(CustomFieldModelViewSet):
    """API view for Circuit Maintenance CRUD operations."""

    queryset = CircuitMaintenance.objects.prefetch_related()
    serializer_class = CircuitMaintenanceSerializer
    filterset_class = filters.CircuitMaintenanceFilterSet

NotificationSourceTaskView

Bases: viewsets.ReadOnlyModelViewSet

API view for Notification Source CRUD operations.

Source code in nautobot_circuit_maintenance/api/views.py
class NotificationSourceTaskView(viewsets.ReadOnlyModelViewSet):
    """API view for Notification Source CRUD operations."""

    queryset = NotificationSource.objects.prefetch_related()
    serializer_class = NotificationSourceSerializer
    filterset_class = filters.NotificationSourceFilterSet

    def get_serializer_context(self):
        """Add custom fields to the serializer context, as in nautobot.extras.api.views.CustomFieldModelViewSet."""
        # Gather all custom fields for the model
        content_type = ContentType.objects.get_for_model(self.queryset.model)
        custom_fields = content_type.custom_fields.all()

        context = super().get_serializer_context()
        context.update(
            {
                "custom_fields": custom_fields,
            }
        )
        return context
get_serializer_context()

Add custom fields to the serializer context, as in nautobot.extras.api.views.CustomFieldModelViewSet.

Source code in nautobot_circuit_maintenance/api/views.py
def get_serializer_context(self):
    """Add custom fields to the serializer context, as in nautobot.extras.api.views.CustomFieldModelViewSet."""
    # Gather all custom fields for the model
    content_type = ContentType.objects.get_for_model(self.queryset.model)
    custom_fields = content_type.custom_fields.all()

    context = super().get_serializer_context()
    context.update(
        {
            "custom_fields": custom_fields,
        }
    )
    return context