nested_serializers.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from rest_framework import serializers
  2. from netbox.api.serializers import WritableNestedSerializer
  3. from vpn import models
  4. __all__ = (
  5. 'NestedIKEPolicySerializer',
  6. 'NestedIKEProposalSerializer',
  7. 'NestedIPSecPolicySerializer',
  8. 'NestedIPSecProfileSerializer',
  9. 'NestedIPSecProposalSerializer',
  10. 'NestedTunnelSerializer',
  11. 'NestedTunnelTerminationSerializer',
  12. )
  13. class NestedTunnelSerializer(WritableNestedSerializer):
  14. url = serializers.HyperlinkedIdentityField(
  15. view_name='vpn-api:tunnel-detail'
  16. )
  17. class Meta:
  18. model = models.Tunnel
  19. fields = ('id', 'url', 'display', 'name')
  20. class NestedTunnelTerminationSerializer(WritableNestedSerializer):
  21. url = serializers.HyperlinkedIdentityField(
  22. view_name='vpn-api:tunneltermination-detail'
  23. )
  24. class Meta:
  25. model = models.TunnelTermination
  26. fields = ('id', 'url', 'display')
  27. class NestedIKEProposalSerializer(WritableNestedSerializer):
  28. url = serializers.HyperlinkedIdentityField(
  29. view_name='vpn-api:ikeproposal-detail'
  30. )
  31. class Meta:
  32. model = models.IKEProposal
  33. fields = ('id', 'url', 'display', 'name')
  34. class NestedIKEPolicySerializer(WritableNestedSerializer):
  35. url = serializers.HyperlinkedIdentityField(
  36. view_name='vpn-api:ikepolicy-detail'
  37. )
  38. class Meta:
  39. model = models.IKEPolicy
  40. fields = ('id', 'url', 'display', 'name')
  41. class NestedIPSecProposalSerializer(WritableNestedSerializer):
  42. url = serializers.HyperlinkedIdentityField(
  43. view_name='vpn-api:ipsecproposal-detail'
  44. )
  45. class Meta:
  46. model = models.IPSecProposal
  47. fields = ('id', 'url', 'display', 'name')
  48. class NestedIPSecPolicySerializer(WritableNestedSerializer):
  49. url = serializers.HyperlinkedIdentityField(
  50. view_name='vpn-api:ipsecpolicy-detail'
  51. )
  52. class Meta:
  53. model = models.IPSecPolicy
  54. fields = ('id', 'url', 'display', 'name')
  55. class NestedIPSecProfileSerializer(WritableNestedSerializer):
  56. url = serializers.HyperlinkedIdentityField(
  57. view_name='vpn-api:ipsecprofile-detail'
  58. )
  59. class Meta:
  60. model = models.IPSecProfile
  61. fields = ('id', 'url', 'display', 'name')