1 # Copyright (C) 2019 Verizon. All Rights Reserved
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from rest_framework import serializers
17 from .link import LinkSerializer
18 from .subscription_auth_data import SubscriptionAuthenticationSerializer
19 from .nsdm_filter_data import NsdmNotificationsFilter
22 class NsdmSubscriptionLinkSerializer(serializers.Serializer):
23 self = LinkSerializer(
24 help_text="Links to resources related to this resource.",
29 class NsdmSubscriptionSerializer(serializers.Serializer):
30 id = serializers.CharField(
31 help_text="Identifier of this subscription resource.",
36 callbackUri = serializers.CharField(
37 help_text="The URI of the endpoint to send the notification to.",
42 filter = NsdmNotificationsFilter(
43 help_text="Filter settings for this subscription, to define the "
44 "of all notifications this subscription relates to.",
47 _links = NsdmSubscriptionLinkSerializer(
48 help_text="Links to resources related to this resource.",
53 class NsdmSubscriptionsSerializer(serializers.ListSerializer):
54 child = NsdmSubscriptionSerializer()
57 class NsdmSubscriptionIdSerializer(serializers.Serializer):
58 subscription_id = serializers.UUIDField(
59 help_text="Identifier of this subscription resource.",
65 class NsdmSubscriptionRequestSerializer(serializers.Serializer):
66 callbackUri = serializers.CharField(
67 help_text="The URI of the endpoint to send the notification to.",
71 filter = NsdmNotificationsFilter(
72 help_text="Filter settings for the subscription,"
73 " to define the subset of all "
74 "notifications this subscription relates to.",
78 authentication = SubscriptionAuthenticationSerializer(
79 help_text="Authentication parameters to configure"
80 " the use of Authorization when sending "
81 "notifications corresponding to this subscription.",