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 UriLinkSerializer
18 from .subscription_auth_data import SubscriptionAuthenticationSerializer
19 from .nsdm_filter_data import NsdmNotificationsFilter
22 class NsdmSubscriptionLinkSerializer(serializers.Serializer):
23 self = UriLinkSerializer(
24 help_text="Links to resources related to this resource.",
29 ref_name = "NSDM_SUB_LinkSerializer"
32 class NsdmSubscriptionSerializer(serializers.Serializer):
33 id = serializers.CharField(
34 help_text="Identifier of this subscription resource.",
39 callbackUri = serializers.CharField(
40 help_text="The URI of the endpoint to send the notification to.",
45 filter = NsdmNotificationsFilter(
46 help_text="Filter settings for this subscription, to define the "
47 "of all notifications this subscription relates to.",
50 _links = NsdmSubscriptionLinkSerializer(
51 help_text="Links to resources related to this resource.",
56 class NsdmSubscriptionsSerializer(serializers.ListSerializer):
57 child = NsdmSubscriptionSerializer()
60 class NsdmSubscriptionIdSerializer(serializers.Serializer):
61 subscription_id = serializers.CharField(
62 help_text="Identifier of this subscription resource.",
68 class NsdmSubscriptionRequestSerializer(serializers.Serializer):
69 callbackUri = serializers.CharField(
70 help_text="The URI of the endpoint to send the notification to.",
74 filter = NsdmNotificationsFilter(
75 help_text="Filter settings for the subscription,"
76 " to define the subset of all "
77 "notifications this subscription relates to.",
81 authentication = SubscriptionAuthenticationSerializer(
82 help_text="Authentication parameters to configure"
83 " the use of Authorization when sending "
84 "notifications corresponding to this subscription.",