class DeviceSerializer(CustomFieldSerializer, serializers.ModelSerializer): device_type = DeviceTypeNestedSerializer() device_role = DeviceRoleNestedSerializer() tenant = TenantNestedSerializer() platform = PlatformNestedSerializer() rack = RackNestedSerializer() primary_ip = DeviceIPAddressNestedSerializer() primary_ip4 = DeviceIPAddressNestedSerializer() primary_ip6 = DeviceIPAddressNestedSerializer() parent_device = serializers.SerializerMethodField() class Meta: model = Device fields = [ 'id', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', 'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', 'primary_ip6', 'comments', 'custom_fields' ] def get_parent_device(self, obj): try: device_bay = obj.parent_bay except DeviceBay.DoesNotExist: return None return { 'id': device_bay.device.pk, 'name': device_bay.device.name, 'device_bay': { 'id': device_bay.pk, 'name': device_bay.name, } }
class IPAddressSerializer(serializers.ModelSerializer): vrf = VRFTenantSerializer() tenant = TenantNestedSerializer() interface = InterfaceNestedSerializer() class Meta: model = IPAddress fields = ['id', 'family', 'address', 'vrf', 'tenant', 'interface', 'description', 'nat_inside', 'nat_outside']
class VLANSerializer(serializers.ModelSerializer): site = SiteNestedSerializer() group = VLANGroupNestedSerializer() tenant = TenantNestedSerializer() role = RoleNestedSerializer() class Meta: model = VLAN fields = ['id', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'display_name']
class CircuitSerializer(CustomFieldSerializer, serializers.ModelSerializer): provider = ProviderNestedSerializer() type = CircuitTypeNestedSerializer() tenant = TenantNestedSerializer() terminations = CircuitTerminationSerializer(many=True) class Meta: model = Circuit fields = ['id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'comments', 'terminations', 'custom_fields']
class VRFSerializer(CustomFieldSerializer, serializers.ModelSerializer): tenant = TenantNestedSerializer() class Meta: model = VRF fields = [ 'id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'custom_fields' ]
class PrefixSerializer(serializers.ModelSerializer): site = SiteNestedSerializer() vrf = VRFTenantSerializer() tenant = TenantNestedSerializer() vlan = VLANNestedSerializer() role = RoleNestedSerializer() class Meta: model = Prefix fields = ['id', 'family', 'prefix', 'site', 'vrf', 'tenant', 'vlan', 'status', 'role', 'description']
class SiteSerializer(CustomFieldSerializer, serializers.ModelSerializer): tenant = TenantNestedSerializer() class Meta: model = Site fields = [ 'id', 'name', 'slug', 'tenant', 'facility', 'asn', 'physical_address', 'shipping_address', 'comments', 'custom_fields', 'count_prefixes', 'count_vlans', 'count_racks', 'count_devices', 'count_circuits' ]
class RackSerializer(serializers.ModelSerializer): site = SiteNestedSerializer() group = RackGroupNestedSerializer() tenant = TenantNestedSerializer() class Meta: model = Rack fields = [ 'id', 'name', 'facility_id', 'display_name', 'site', 'group', 'tenant', 'u_height', 'comments' ]
class RackSerializer(CustomFieldSerializer, serializers.ModelSerializer): site = SiteNestedSerializer() group = RackGroupNestedSerializer() tenant = TenantNestedSerializer() role = RackRoleNestedSerializer() class Meta: model = Rack fields = [ 'id', 'name', 'facility_id', 'display_name', 'site', 'group', 'tenant', 'role', 'type', 'width', 'u_height', 'comments', 'custom_fields' ]
class CircuitSerializer(serializers.ModelSerializer): provider = ProviderNestedSerializer() type = CircuitTypeNestedSerializer() tenant = TenantNestedSerializer() site = SiteNestedSerializer() interface = InterfaceNestedSerializer() class Meta: model = Circuit fields = [ 'id', 'cid', 'provider', 'type', 'tenant', 'site', 'interface', 'install_date', 'port_speed', 'upstream_speed', 'commit_rate', 'xconnect_id', 'comments' ]