genericparser seed code
[modeling/etsicatalog.git] / genericparser / packages / serializers / nsdm_subscription.py
1 # Copyright (C) 2019 Verizon. All Rights Reserved
2 #
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
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
15 from rest_framework import serializers
16
17 from link import LinkSerializer
18 from subscription_auth_data import SubscriptionAuthenticationSerializer
19 from nsdm_filter_data import NsdmNotificationsFilter
20
21
22 class NsdmSubscriptionLinkSerializer(serializers.Serializer):
23     self = LinkSerializer(
24         help_text="Links to resources related to this resource.",
25         required=True
26     )
27
28
29 class NsdmSubscriptionSerializer(serializers.Serializer):
30     id = serializers.CharField(
31         help_text="Identifier of this subscription resource.",
32         max_length=255,
33         required=True,
34         allow_null=False
35     )
36     callbackUri = serializers.CharField(
37         help_text="The URI of the endpoint to send the notification to.",
38         max_length=255,
39         required=True,
40         allow_null=False
41     )
42     filter = NsdmNotificationsFilter(
43         help_text="Filter settings for this subscription, to define the "
44         "of all notifications this subscription relates to.",
45         required=False
46     )
47     _links = NsdmSubscriptionLinkSerializer(
48         help_text="Links to resources related to this resource.",
49         required=True
50     )
51
52
53 class NsdmSubscriptionsSerializer(serializers.ListSerializer):
54     child = NsdmSubscriptionSerializer()
55
56
57 class NsdmSubscriptionIdSerializer(serializers.Serializer):
58     subscription_id = serializers.UUIDField(
59         help_text="Identifier of this subscription resource.",
60         required=True,
61         allow_null=False
62     )
63
64
65 class NsdmSubscriptionRequestSerializer(serializers.Serializer):
66     callbackUri = serializers.CharField(
67         help_text="The URI of the endpoint to send the notification to.",
68         required=True,
69         allow_null=False
70     )
71     filter = NsdmNotificationsFilter(
72         help_text="Filter settings for the subscription,"
73                   " to define the subset of all "
74                   "notifications this subscription relates to.",
75         required=False,
76         allow_null=True
77     )
78     authentication = SubscriptionAuthenticationSerializer(
79         help_text="Authentication parameters to configure"
80                   " the use of Authorization when sending "
81                   "notifications corresponding to this subscription.",
82         required=False,
83         allow_null=True
84     )