Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / api / spec.py @ 4bdd7e3d

History | View | Annotate | Download (11 kB)

1 3b1912f4 root
from synnefo.lib.commissioning.specificator import (
2 c0b26605 Sofia Papagiannaki
    Specificator, Integer, Text, ListOf
3 c0b26605 Sofia Papagiannaki
)
4 9a06d96f Olga Brani
5 9a06d96f Olga Brani
6 9a06d96f Olga Brani
class Name(Text):
7 9a06d96f Olga Brani
    def init(self):
8 9a06d96f Olga Brani
        self.opts.update({'regex': "[\w.:]+", 'maxlen': 512})
9 9a06d96f Olga Brani
Name = Name()
10 9a06d96f Olga Brani
11 9a06d96f Olga Brani
12 9a06d96f Olga Brani
class Email(Text):
13 9a06d96f Olga Brani
    def init(self):
14 9a06d96f Olga Brani
        pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
15 9a06d96f Olga Brani
        self.opts.update({'regex': pattern, 'maxlen': 512})
16 9a06d96f Olga Brani
Email = Email()
17 9a06d96f Olga Brani
18 9a06d96f Olga Brani
19 9a06d96f Olga Brani
class Url(Text):
20 9a06d96f Olga Brani
    def init(self):
21 9a06d96f Olga Brani
        pattern = "(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"
22 9a06d96f Olga Brani
        self.opts.update({'regex': pattern, 'maxlen': 512})
23 9a06d96f Olga Brani
Url = Url()
24 9a06d96f Olga Brani
25 9a06d96f Olga Brani
26 9a06d96f Olga Brani
class Filepath(Text):
27 9a06d96f Olga Brani
    def init(self):
28 9a06d96f Olga Brani
        self.opts.update({'regex': "", 'maxlen': 512})
29 9a06d96f Olga Brani
Filepath = Filepath()
30 9a06d96f Olga Brani
31 9a06d96f Olga Brani
32 9a06d96f Olga Brani
class Nonnegative(Integer):
33 9a06d96f Olga Brani
    def init(self):
34 9a06d96f Olga Brani
        self.opts.update({'minimum': 0})
35 9a06d96f Olga Brani
Nonnegative = Nonnegative()
36 9a06d96f Olga Brani
37 9a06d96f Olga Brani
38 9a06d96f Olga Brani
class Boolean(Integer):
39 9a06d96f Olga Brani
    def init(self):
40 9a06d96f Olga Brani
        self.opts.update({'minimum': 0, 'maximum': 1})
41 9a06d96f Olga Brani
Boolean = Boolean()
42 9a06d96f Olga Brani
43 9a06d96f Olga Brani
44 820b18e0 Sofia Papagiannaki
# class GroupKind(Integer):
45 820b18e0 Sofia Papagiannaki
#     def init(self):
46 820b18e0 Sofia Papagiannaki
#         self.opts.update({'minimum': 1, 'maximum': 5})
47 820b18e0 Sofia Papagiannaki
# GroupKind = GroupKind()
48 9a06d96f Olga Brani
49 9a06d96f Olga Brani
Timepoint = Text(classname='Timepoint', maxlen=24)
50 9a06d96f Olga Brani
51 9a06d96f Olga Brani
52 9a06d96f Olga Brani
class AstakosAPI(Specificator):
53 9a06d96f Olga Brani
    def create_users(
54 9a06d96f Olga Brani
        self,
55 9a06d96f Olga Brani
        users=ListOf(
56 9a06d96f Olga Brani
            email=Email,
57 9a06d96f Olga Brani
            first_name=Name,
58 9a06d96f Olga Brani
            last_name=Name,
59 9a06d96f Olga Brani
            is_active=Boolean,
60 9a06d96f Olga Brani
            is_superuser=Boolean,
61 9a06d96f Olga Brani
            affiliation=Name,
62 9a06d96f Olga Brani
            password=Name,
63 9a06d96f Olga Brani
            provider=Name,
64 9a06d96f Olga Brani
            level=Nonnegative,
65 9a06d96f Olga Brani
            invitations=Nonnegative,
66 9a06d96f Olga Brani
            is_verified=Boolean,
67 9a06d96f Olga Brani
            third_party_identifier=Name,
68 9a06d96f Olga Brani
            email_verified=Boolean),
69 9a06d96f Olga Brani
        policies=ListOf(resource=Name, supimit=Nonnegative),
70 9a06d96f Olga Brani
        groups=ListOf(Name),
71 9a06d96f Olga Brani
        permissions=ListOf(Name)
72 9a06d96f Olga Brani
    ):
73 9a06d96f Olga Brani
        rejected = ListOf(user=Email, reason=Text())
74 9a06d96f Olga Brani
        return rejected
75 9a06d96f Olga Brani
76 9a06d96f Olga Brani
    def update_users(
77 9a06d96f Olga Brani
        self,
78 9a06d96f Olga Brani
        users=ListOf(
79 9a06d96f Olga Brani
            pk=Nonnegative,
80 9a06d96f Olga Brani
            renew_token=Boolean,
81 9a06d96f Olga Brani
            data=ListOf(
82 9a06d96f Olga Brani
                first_name=Name,
83 9a06d96f Olga Brani
                last_name=Name,
84 9a06d96f Olga Brani
                is_active=Boolean,
85 9a06d96f Olga Brani
                is_superuser=Boolean,
86 9a06d96f Olga Brani
                affiliation=Name,
87 9a06d96f Olga Brani
                password=Name,
88 9a06d96f Olga Brani
                provider=Name,
89 9a06d96f Olga Brani
                level=Nonnegative,
90 9a06d96f Olga Brani
                invitations=Nonnegative,
91 9a06d96f Olga Brani
                is_verified=Boolean,
92 9a06d96f Olga Brani
                third_party_identifier=Name,
93 9a06d96f Olga Brani
                email_verified=Boolean
94 9a06d96f Olga Brani
            )
95 9a06d96f Olga Brani
        )
96 9a06d96f Olga Brani
    ):
97 9a06d96f Olga Brani
        rejected = ListOf(user_id=Nonnegative, reason=Text())
98 9a06d96f Olga Brani
        return rejected
99 9a06d96f Olga Brani
100 9a06d96f Olga Brani
    def add_user_policies(
101 9a06d96f Olga Brani
        self,
102 9a06d96f Olga Brani
        pk=Nonnegative,
103 9a06d96f Olga Brani
        update=Boolean,
104 9a06d96f Olga Brani
        policies=ListOf(service=Name, resource=Name, upimit=Nonnegative)
105 9a06d96f Olga Brani
    ):
106 9a06d96f Olga Brani
        rejected = ListOf(resource=Name, reason=Text())
107 9a06d96f Olga Brani
        return rejected
108 9a06d96f Olga Brani
109 9a06d96f Olga Brani
    def remove_user_policies(
110 9a06d96f Olga Brani
        self,
111 9a06d96f Olga Brani
        pk=Nonnegative,
112 9a06d96f Olga Brani
        policies=ListOf(service=Name, resource=Name)
113 9a06d96f Olga Brani
    ):
114 9a06d96f Olga Brani
        rejected = ListOf(service=Name, resource=Name)
115 9a06d96f Olga Brani
        return rejected
116 9a06d96f Olga Brani
117 9a06d96f Olga Brani
    def add_user_permissions(
118 9a06d96f Olga Brani
        self,
119 9a06d96f Olga Brani
        pk=Nonnegative,
120 9a06d96f Olga Brani
        permissions=ListOf(permission=Name)
121 9a06d96f Olga Brani
    ):
122 9a06d96f Olga Brani
        rejected = ListOf(permission=Name)
123 9a06d96f Olga Brani
        return rejected
124 9a06d96f Olga Brani
125 9a06d96f Olga Brani
    def remove_user_permissions(
126 9a06d96f Olga Brani
        self,
127 9a06d96f Olga Brani
        pk=Nonnegative,
128 9a06d96f Olga Brani
        permissions=ListOf(permission=Name)
129 9a06d96f Olga Brani
    ):
130 9a06d96f Olga Brani
        rejected = ListOf(permission=Name)
131 9a06d96f Olga Brani
        return rejected
132 9a06d96f Olga Brani
133 9a06d96f Olga Brani
    def invite_users(
134 9a06d96f Olga Brani
        self,
135 9a06d96f Olga Brani
        sender=Email,
136 9a06d96f Olga Brani
        data=ListOf(email=Email, realname=Name)
137 9a06d96f Olga Brani
    ):
138 9a06d96f Olga Brani
        rejected = ListOf(receiver=Email)
139 9a06d96f Olga Brani
        return rejected
140 9a06d96f Olga Brani
141 9a06d96f Olga Brani
    def list_users(
142 9a06d96f Olga Brani
        self,
143 9a06d96f Olga Brani
        filter=ListOf(id=Nonnegative)
144 9a06d96f Olga Brani
    ):
145 9a06d96f Olga Brani
        return ListOf(
146 9a06d96f Olga Brani
            activation_sent=Timepoint,
147 9a06d96f Olga Brani
            affiliation=Name,
148 9a06d96f Olga Brani
            auth_token=Name,
149 9a06d96f Olga Brani
            auth_token_created=Timepoint,
150 9a06d96f Olga Brani
            auth_token_expires=Timepoint,
151 9a06d96f Olga Brani
            date_joined=Timepoint,
152 9a06d96f Olga Brani
            date_signed_terms=Timepoint,
153 9a06d96f Olga Brani
            email=Email,
154 9a06d96f Olga Brani
            email_verified=Boolean,
155 9a06d96f Olga Brani
            first_name=Name,
156 9a06d96f Olga Brani
            has_credits=Boolean,
157 9a06d96f Olga Brani
            has_signed_terms=Boolean,
158 9a06d96f Olga Brani
            id=Nonnegative,
159 9a06d96f Olga Brani
            invitations=Nonnegative,
160 9a06d96f Olga Brani
            invitations_sent=ListOf(
161 9a06d96f Olga Brani
                code=Name,
162 9a06d96f Olga Brani
                consumed=Boolean,
163 9a06d96f Olga Brani
                created=Timepoint,
164 9a06d96f Olga Brani
                id=Nonnegative,
165 9a06d96f Olga Brani
                realname=Name,
166 9a06d96f Olga Brani
                username=Email
167 9a06d96f Olga Brani
            ),
168 9a06d96f Olga Brani
            is_active=Boolean,
169 9a06d96f Olga Brani
            is_staff=Boolean,
170 9a06d96f Olga Brani
            is_superuser=Boolean,
171 9a06d96f Olga Brani
            is_verified=Boolean,
172 9a06d96f Olga Brani
            last_login=Timepoint,
173 9a06d96f Olga Brani
            last_name=Name,
174 9a06d96f Olga Brani
            level=Nonnegative,
175 9a06d96f Olga Brani
            password=Name,
176 9a06d96f Olga Brani
            provider=Name,
177 9a06d96f Olga Brani
            third_party_identifier=Name,
178 9a06d96f Olga Brani
            updated=Timepoint,
179 9a06d96f Olga Brani
            user_permissions=ListOf(
180 9a06d96f Olga Brani
                codename=Name,
181 9a06d96f Olga Brani
                id=Nonnegative,
182 9a06d96f Olga Brani
                name=Name
183 9a06d96f Olga Brani
            ),
184 9a06d96f Olga Brani
            username=Name,
185 9a06d96f Olga Brani
            astakos_groups=ListOf(
186 9a06d96f Olga Brani
                approval_date=Timepoint,
187 9a06d96f Olga Brani
                creation_date=Timepoint,
188 9a06d96f Olga Brani
                desc=Text(),
189 9a06d96f Olga Brani
                max_participants=Nonnegative,
190 9a06d96f Olga Brani
                expiration_date=Timepoint,
191 9a06d96f Olga Brani
                group_ptr=Url,
192 9a06d96f Olga Brani
                homepage=Url,
193 9a06d96f Olga Brani
                id=Nonnegative,
194 9a06d96f Olga Brani
                issue_date=Timepoint,
195 9a06d96f Olga Brani
                kind=Name,
196 9a06d96f Olga Brani
                moderation_enabled=Boolean,
197 9a06d96f Olga Brani
                name=Name,
198 9a06d96f Olga Brani
                #permissions=ListOf(),
199 9a06d96f Olga Brani
                policy=ListOf(id=Nonnegative, name=Name)
200 9a06d96f Olga Brani
            )
201 9a06d96f Olga Brani
        )
202 9a06d96f Olga Brani
203 666c7490 Sofia Papagiannaki
    def get_user_usage(
204 9a06d96f Olga Brani
        self,
205 9a06d96f Olga Brani
        user_id=Nonnegative
206 9a06d96f Olga Brani
    ):
207 9a06d96f Olga Brani
        return ListOf(
208 9a06d96f Olga Brani
            name=Name,
209 9a06d96f Olga Brani
            description=Text(),
210 9a06d96f Olga Brani
            unit=Name,
211 9a06d96f Olga Brani
            maxValue=Integer(),
212 9a06d96f Olga Brani
            currValue=Integer()
213 9a06d96f Olga Brani
        )
214 9a06d96f Olga Brani
215 9a06d96f Olga Brani
    def list_resources(self, filter=ListOf(id=Nonnegative)):
216 9a06d96f Olga Brani
        return ListOf(
217 9a06d96f Olga Brani
            desc=Text(),
218 9a06d96f Olga Brani
            group=Name,
219 9a06d96f Olga Brani
            id=Nonnegative,
220 9a06d96f Olga Brani
            meta=ListOf(key=Name, value=Name),
221 9a06d96f Olga Brani
            name=Name,
222 9a06d96f Olga Brani
            service=Name,
223 9a06d96f Olga Brani
            unit=Name
224 9a06d96f Olga Brani
        )
225 9a06d96f Olga Brani
226 9a06d96f Olga Brani
    def add_services(
227 9a06d96f Olga Brani
        self,
228 9a06d96f Olga Brani
        services=ListOf(
229 9a06d96f Olga Brani
            name=Name,
230 9a06d96f Olga Brani
            url=Url,
231 9a06d96f Olga Brani
            icon=Filepath,
232 9a06d96f Olga Brani
            resources=ListOf(
233 9a06d96f Olga Brani
                name=Name,
234 9a06d96f Olga Brani
                desc=Text(),
235 9a06d96f Olga Brani
                unit=Name,
236 9a06d96f Olga Brani
                group=Name
237 9a06d96f Olga Brani
            )
238 9a06d96f Olga Brani
        )
239 9a06d96f Olga Brani
    ):
240 9a06d96f Olga Brani
        rejected = ListOf(service=Name)
241 9a06d96f Olga Brani
        return rejected
242 9a06d96f Olga Brani
243 9a06d96f Olga Brani
    def update_services(
244 9a06d96f Olga Brani
        self,
245 9a06d96f Olga Brani
        services=ListOf(id=Nonnegative, url=Url, icon=Filepath)
246 9a06d96f Olga Brani
    ):
247 9a06d96f Olga Brani
        rejected = ListOf(service=Name)
248 9a06d96f Olga Brani
        return rejected
249 9a06d96f Olga Brani
250 9a06d96f Olga Brani
    def remove_services(self, ids=ListOf(Nonnegative)):
251 9a06d96f Olga Brani
        rejected = ListOf(service=Name)
252 9a06d96f Olga Brani
        return rejected
253 9a06d96f Olga Brani
254 9a06d96f Olga Brani
    def add_resources(
255 9a06d96f Olga Brani
        self,
256 9a06d96f Olga Brani
        service_id=Nonnegative,
257 9a06d96f Olga Brani
        update=Boolean,
258 9a06d96f Olga Brani
        resources=ListOf(
259 9a06d96f Olga Brani
            name=Name,
260 9a06d96f Olga Brani
            resources=ListOf(
261 9a06d96f Olga Brani
                name=Name,
262 9a06d96f Olga Brani
                desc=Text(),
263 9a06d96f Olga Brani
                unit=Name,
264 9a06d96f Olga Brani
                group=Name)
265 9a06d96f Olga Brani
        )
266 9a06d96f Olga Brani
    ):
267 9a06d96f Olga Brani
        rejected = ListOf(service=Name)
268 9a06d96f Olga Brani
        return rejected
269 9a06d96f Olga Brani
270 9a06d96f Olga Brani
    def remove_resources(
271 9a06d96f Olga Brani
        self,
272 9a06d96f Olga Brani
        service_id=Nonnegative,
273 9a06d96f Olga Brani
        ids=ListOf(Nonnegative)
274 9a06d96f Olga Brani
    ):
275 9a06d96f Olga Brani
        rejected = ListOf(Name)
276 9a06d96f Olga Brani
        return rejected
277 9a06d96f Olga Brani
278 9a06d96f Olga Brani
    def create_groups(
279 9a06d96f Olga Brani
        self,
280 9a06d96f Olga Brani
        groups=ListOf(
281 9a06d96f Olga Brani
            name=Name,
282 820b18e0 Sofia Papagiannaki
            kind=Name,
283 9a06d96f Olga Brani
            homepage=Url,
284 9a06d96f Olga Brani
            desc=Text(),
285 9a06d96f Olga Brani
            policies=ListOf(resource=Name, upimit=Nonnegative),
286 9a06d96f Olga Brani
            issue_date=Timepoint,
287 9a06d96f Olga Brani
            expiration_date=Timepoint,
288 9a06d96f Olga Brani
            moderation_enabled=Boolean,
289 9a06d96f Olga Brani
            participants=Nonnegative,
290 9a06d96f Olga Brani
            permissions=ListOf(permission=Name),
291 9a06d96f Olga Brani
            members=ListOf(user=Email, is_approved=Boolean),
292 9a06d96f Olga Brani
            owners=ListOf(user=Email)
293 9a06d96f Olga Brani
        )
294 9a06d96f Olga Brani
    ):
295 9a06d96f Olga Brani
        rejected = ListOf(group=Name)
296 9a06d96f Olga Brani
        return rejected
297 9a06d96f Olga Brani
298 9a06d96f Olga Brani
    def enable_groups(self, data=ListOf(group=Name)):
299 9a06d96f Olga Brani
        rejected = ListOf(group=Name)
300 9a06d96f Olga Brani
        return rejected
301 9a06d96f Olga Brani
302 9a06d96f Olga Brani
    def search_groups(self, key=Name):
303 9a06d96f Olga Brani
        return ListOf(
304 9a06d96f Olga Brani
            group=Name,
305 820b18e0 Sofia Papagiannaki
            kind=Nonnegative,
306 9a06d96f Olga Brani
            homepage=Url,
307 9a06d96f Olga Brani
            desc=Text(),
308 9a06d96f Olga Brani
            creation_date=Timepoint,
309 9a06d96f Olga Brani
            issue_date=Timepoint,
310 9a06d96f Olga Brani
            expiration_date=Timepoint,
311 9a06d96f Olga Brani
            moderation_enabled=Boolean,
312 9a06d96f Olga Brani
            participants=Nonnegative,
313 9a06d96f Olga Brani
            owner=ListOf(user=Email),
314 9a06d96f Olga Brani
            policies=ListOf(resource=Name, upimit=Nonnegative),
315 9a06d96f Olga Brani
            members=ListOf(user=Email, is_approved=Boolean)
316 9a06d96f Olga Brani
        )
317 9a06d96f Olga Brani
318 9a06d96f Olga Brani
    def list_groups(self):
319 9a06d96f Olga Brani
        return ListOf(
320 9a06d96f Olga Brani
            group=Name,
321 820b18e0 Sofia Papagiannaki
            kind=Nonnegative,
322 9a06d96f Olga Brani
            homepage=Url,
323 9a06d96f Olga Brani
            desc=Text(),
324 9a06d96f Olga Brani
            creation_date=Timepoint,
325 9a06d96f Olga Brani
            issue_date=Timepoint,
326 9a06d96f Olga Brani
            expiration_date=Timepoint,
327 9a06d96f Olga Brani
            moderation_enabled=Boolean,
328 9a06d96f Olga Brani
            participants=Nonnegative,
329 9a06d96f Olga Brani
            owners=ListOf(user=Email),
330 9a06d96f Olga Brani
            policies=ListOf(resource=Name, upimit=Nonnegative),
331 9a06d96f Olga Brani
            members=ListOf(user=Email, is_approved=Boolean)
332 9a06d96f Olga Brani
        )
333 9a06d96f Olga Brani
334 9a06d96f Olga Brani
    def add_owners(
335 9a06d96f Olga Brani
        self,
336 9a06d96f Olga Brani
        data=ListOf(group=Name, owners=ListOf(user=Email))
337 9a06d96f Olga Brani
    ):
338 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
339 9a06d96f Olga Brani
        return rejected
340 9a06d96f Olga Brani
341 9a06d96f Olga Brani
    def remove_owners(
342 9a06d96f Olga Brani
        self,
343 9a06d96f Olga Brani
        data=ListOf(group=Name, owners=ListOf(user=Email))
344 9a06d96f Olga Brani
    ):
345 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
346 9a06d96f Olga Brani
        return rejected
347 9a06d96f Olga Brani
348 9a06d96f Olga Brani
    def add_members(
349 9a06d96f Olga Brani
        self,
350 9a06d96f Olga Brani
        data=ListOf(group=Name, members=ListOf(user=Email))
351 9a06d96f Olga Brani
    ):
352 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
353 9a06d96f Olga Brani
        return rejected
354 9a06d96f Olga Brani
355 9a06d96f Olga Brani
    def remove_members(
356 9a06d96f Olga Brani
        self,
357 9a06d96f Olga Brani
        data=ListOf(group=Name, members=ListOf(user=Email))
358 9a06d96f Olga Brani
    ):
359 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
360 9a06d96f Olga Brani
        return rejected
361 9a06d96f Olga Brani
362 9a06d96f Olga Brani
    def add_policies(
363 9a06d96f Olga Brani
        self,
364 9a06d96f Olga Brani
        data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
365 9a06d96f Olga Brani
    ):
366 9a06d96f Olga Brani
        rejected = ListOf(group=Name, resource=Name)
367 9a06d96f Olga Brani
        return rejected
368 9a06d96f Olga Brani
369 9a06d96f Olga Brani
    def remove_group_policies(
370 9a06d96f Olga Brani
        self,
371 9a06d96f Olga Brani
        data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
372 9a06d96f Olga Brani
    ):
373 9a06d96f Olga Brani
        rejected = ListOf(group=Name, resource=Name)
374 9a06d96f Olga Brani
        return rejected
375 9a06d96f Olga Brani
376 9a06d96f Olga Brani
    def update_group_policies(
377 9a06d96f Olga Brani
        self, data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
378 9a06d96f Olga Brani
    ):
379 9a06d96f Olga Brani
        rejected = ListOf(group=Name, resource=Name)
380 9a06d96f Olga Brani
        return rejected
381 9a06d96f Olga Brani
382 9a06d96f Olga Brani
    def approve_members(
383 9a06d96f Olga Brani
        self,
384 9a06d96f Olga Brani
        data=ListOf(group=Name, members=ListOf(user=Email))
385 9a06d96f Olga Brani
    ):
386 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
387 9a06d96f Olga Brani
        return rejected
388 9a06d96f Olga Brani
389 9a06d96f Olga Brani
    def disapprove_members(
390 9a06d96f Olga Brani
        self,
391 9a06d96f Olga Brani
        data=ListOf(group=Name, members=ListOf(user=Email))
392 9a06d96f Olga Brani
    ):
393 9a06d96f Olga Brani
        rejected = ListOf(user=Email)
394 9a06d96f Olga Brani
        return rejected
395 9a06d96f Olga Brani
396 9a06d96f Olga Brani
    def add_group_permissions(
397 9a06d96f Olga Brani
        self,
398 9a06d96f Olga Brani
        data=ListOf(group=Name, permission=Name)
399 9a06d96f Olga Brani
    ):
400 9a06d96f Olga Brani
        rejected = ListOf(group=Name, permission=Name)
401 9a06d96f Olga Brani
        return rejected
402 9a06d96f Olga Brani
403 9a06d96f Olga Brani
    def delete_group_permissions(
404 9a06d96f Olga Brani
        self,
405 9a06d96f Olga Brani
        data=ListOf(group=Name, permission=Name)
406 9a06d96f Olga Brani
    ):
407 9a06d96f Olga Brani
        rejected = ListOf(group=Name, permission=Name)
408 9a06d96f Olga Brani
        return rejected
409 9a06d96f Olga Brani
410 9a06d96f Olga Brani
    def list_resource_units(self):
411 9a06d96f Olga Brani
        return ListOf(Name)
412 9a06d96f Olga Brani
413 c0b26605 Sofia Papagiannaki
    def get_approval_terms(self, term=Nonnegative):
414 9a06d96f Olga Brani
        return Text()
415 9a06d96f Olga Brani
416 c0b26605 Sofia Papagiannaki
    def add_approval_terms(self, location=Filepath):
417 9a06d96f Olga Brani
        return Nonnegative
418 9a06d96f Olga Brani
419 9a06d96f Olga Brani
#     def change_emails():
420 9a06d96f Olga Brani
#         pass