content: from rest_framework import serializers
  
  from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
  from dcim.api.serializers_.devicetypes import DeviceTypeSerializer
  from dcim.api.serializers_.platforms import PlatformSerializer
  from dcim.api.serializers_.roles import DeviceRoleSerializer
  from dcim.api.serializers_.sites import LocationSerializer, RegionSerializer, SiteSerializer, SiteGroupSerializer
  from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
  from extras.models import ConfigContext, ConfigContextProfile, Tag
  from netbox.api.fields import SerializedPKRelatedField
  from netbox.api.serializers import ChangeLogMessageSerializer, ValidatedModelSerializer
  from tenancy.api.serializers_.tenants import TenantSerializer, TenantGroupSerializer
  from tenancy.models import Tenant, TenantGroup
  from virtualization.api.serializers_.clusters import ClusterSerializer, ClusterGroupSerializer, ClusterTypeSerializer
  from virtualization.models import Cluster, ClusterGroup, ClusterType
  
  __all__ = (
      'ConfigContextProfileSerializer',
      'ConfigContextSerializer',
  )
  
  
  class ConfigContextProfileSerializer(ChangeLogMessageSerializer, ValidatedModelSerializer):
      tags = serializers.SlugRelatedField(
          queryset=Tag.objects.all(),
          slug_field='slug',
          required=False,
          many=True
      )
      data_source = DataSourceSerializer(
          nested=True,
          required=False
      )
      data_file = DataFileSerializer(
          nested=True,
          read_only=True
      )
  
      class Meta:
          model = ConfigContextProfile
          fields = [
              'id', 'url', 'display_url', 'display', 'name', 'description', 'schema', 'tags', 'comments', 'data_source',
              'data_path', 'data_file', 'data_synced', 'created', 'last_updated',
          ]
          brief_fields = ('id', 'url', 'display', 'name', 'description')
  
  
  class ConfigContextSerializer(ChangeLogMessageSerializer, ValidatedModelSerializer):
      profile = ConfigContextProfileSerializer(
          nested=True,
          required=False,
          allow_null=True,
          default=None,
      )
      regions = SerializedPKRelatedField(
          queryset=Region.objects.all(),
          serializer=RegionSerializer,
          nested=True,
          required=False,
          many=True
      )
      site_groups = SerializedPKRelatedField(
          queryset=SiteGroup.objects.all(),
          serializer=SiteGroupSerializer,
          nested=True,
          required=False,
          many=True
      )
      sites = SerializedPKRelatedField(
          queryset=Site.objects.all(),
          serializer=SiteSerializer,
          nested=True,
          required=False,
          many=True
      )
      locations = SerializedPKRelatedField(
          queryset=Location.objects.all(),
          serializer=LocationSerializer,
          nested=True,
          required=False,
          many=True
      )
      device_types = SerializedPKRelatedField(
          queryset=DeviceType.objects.all(),
          serializer=DeviceTypeSerializer,
          nested=True,
          required=False,
          many=True
      )
      roles = SerializedPKRelatedField(
          queryset=DeviceRole.objects.all(),
          serializer=DeviceRoleSerializer,
          nested=True,
          required=False,
          many=True
      )
      platforms = SerializedPKRelatedField(
          queryset=Platform.objects.all(),
          serializer=PlatformSerializer,
          nested=True,
          required=False,
          many=True
      )
      cluster_types = SerializedPKRelatedField(
          queryset=ClusterType.objects.all(),
          serializer=ClusterTypeSerializer,
          nested=True,
          required=False,
          many=True
      )
      cluster_groups = SerializedPKRelatedField(
          queryset=ClusterGroup.objects.all(),
          serializer=ClusterGroupSerializer,
          nested=True,
          required=False,
          many=True
      )
      clusters = SerializedPKRelatedField(
          queryset=Cluster.objects.all(),
          serializer=ClusterSerializer,
          nested=True,
          required=False,
          many=True
      )
      tenant_groups = SerializedPKRelatedField(
          queryset=TenantGroup.objects.all(),
          serializer=TenantGroupSerializer,
          nested=True,
          required=False,
          many=True
      )
      tenants = SerializedPKRelatedField(
          queryset=Tenant.objects.all(),
          serializer=TenantSerializer,
          nested=True,
          required=False,
          many=True
      )
      tags = serializers.SlugRelatedField(
          queryset=Tag.objects.all(),
          slug_field='slug',
          required=False,
          many=True
      )
      data_source = DataSourceSerializer(
          nested=True,
          required=False
      )
      data_file = DataFileSerializer(
          nested=True,
          read_only=True
      )
  
      class Meta:
          model = ConfigContext
          fields = [
              'id', 'url', 'display_url', 'display', 'name', 'weight', 'profile', 'description', 'is_active', 'regions',
              'site_groups', 'sites', 'locations', 'device_types', 'roles', 'platforms', 'cluster_types',
              'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data_source', 'data_path', 'data_file',
              'data_synced', 'data', 'created', 'last_updated',
          ]
          brief_fields = ('id', 'url', 'display', 'name', 'description')
  