1 from synnefo.lib.commissioning.specificator import (
2 Specificator, Integer, Text, ListOf
8 self.opts.update({'regex': "[\w.:]+", 'maxlen': 512})
14 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 self.opts.update({'regex': pattern, 'maxlen': 512})
21 pattern = "(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"
22 self.opts.update({'regex': pattern, 'maxlen': 512})
28 self.opts.update({'regex': "", 'maxlen': 512})
32 class Nonnegative(Integer):
34 self.opts.update({'minimum': 0})
35 Nonnegative = Nonnegative()
38 class Boolean(Integer):
40 self.opts.update({'minimum': 0, 'maximum': 1})
44 # class GroupKind(Integer):
46 # self.opts.update({'minimum': 1, 'maximum': 5})
47 # GroupKind = GroupKind()
49 Timepoint = Text(classname='Timepoint', maxlen=24)
52 class AstakosAPI(Specificator):
65 invitations=Nonnegative,
67 third_party_identifier=Name,
68 email_verified=Boolean),
69 policies=ListOf(resource=Name, supimit=Nonnegative),
71 permissions=ListOf(Name)
73 rejected = ListOf(user=Email, reason=Text())
90 invitations=Nonnegative,
92 third_party_identifier=Name,
93 email_verified=Boolean
97 rejected = ListOf(user_id=Nonnegative, reason=Text())
100 def add_user_policies(
104 policies=ListOf(service=Name, resource=Name, upimit=Nonnegative)
106 rejected = ListOf(resource=Name, reason=Text())
109 def remove_user_policies(
112 policies=ListOf(service=Name, resource=Name)
114 rejected = ListOf(service=Name, resource=Name)
117 def add_user_permissions(
120 permissions=ListOf(permission=Name)
122 rejected = ListOf(permission=Name)
125 def remove_user_permissions(
128 permissions=ListOf(permission=Name)
130 rejected = ListOf(permission=Name)
136 data=ListOf(email=Email, realname=Name)
138 rejected = ListOf(receiver=Email)
143 filter=ListOf(id=Nonnegative)
146 activation_sent=Timepoint,
149 auth_token_created=Timepoint,
150 auth_token_expires=Timepoint,
151 date_joined=Timepoint,
152 date_signed_terms=Timepoint,
154 email_verified=Boolean,
157 has_signed_terms=Boolean,
159 invitations=Nonnegative,
160 invitations_sent=ListOf(
170 is_superuser=Boolean,
172 last_login=Timepoint,
177 third_party_identifier=Name,
179 user_permissions=ListOf(
185 astakos_groups=ListOf(
186 approval_date=Timepoint,
187 creation_date=Timepoint,
189 max_participants=Nonnegative,
190 expiration_date=Timepoint,
194 issue_date=Timepoint,
196 moderation_enabled=Boolean,
198 #permissions=ListOf(),
199 policy=ListOf(id=Nonnegative, name=Name)
215 def list_resources(self, filter=ListOf(id=Nonnegative)):
220 meta=ListOf(key=Name, value=Name),
240 rejected = ListOf(service=Name)
245 services=ListOf(id=Nonnegative, url=Url, icon=Filepath)
247 rejected = ListOf(service=Name)
250 def remove_services(self, ids=ListOf(Nonnegative)):
251 rejected = ListOf(service=Name)
256 service_id=Nonnegative,
267 rejected = ListOf(service=Name)
270 def remove_resources(
272 service_id=Nonnegative,
273 ids=ListOf(Nonnegative)
275 rejected = ListOf(Name)
285 policies=ListOf(resource=Name, upimit=Nonnegative),
286 issue_date=Timepoint,
287 expiration_date=Timepoint,
288 moderation_enabled=Boolean,
289 participants=Nonnegative,
290 permissions=ListOf(permission=Name),
291 members=ListOf(user=Email, is_approved=Boolean),
292 owners=ListOf(user=Email)
295 rejected = ListOf(group=Name)
298 def enable_groups(self, data=ListOf(group=Name)):
299 rejected = ListOf(group=Name)
302 def search_groups(self, key=Name):
308 creation_date=Timepoint,
309 issue_date=Timepoint,
310 expiration_date=Timepoint,
311 moderation_enabled=Boolean,
312 participants=Nonnegative,
313 owner=ListOf(user=Email),
314 policies=ListOf(resource=Name, upimit=Nonnegative),
315 members=ListOf(user=Email, is_approved=Boolean)
318 def list_groups(self):
324 creation_date=Timepoint,
325 issue_date=Timepoint,
326 expiration_date=Timepoint,
327 moderation_enabled=Boolean,
328 participants=Nonnegative,
329 owners=ListOf(user=Email),
330 policies=ListOf(resource=Name, upimit=Nonnegative),
331 members=ListOf(user=Email, is_approved=Boolean)
336 data=ListOf(group=Name, owners=ListOf(user=Email))
338 rejected = ListOf(user=Email)
343 data=ListOf(group=Name, owners=ListOf(user=Email))
345 rejected = ListOf(user=Email)
350 data=ListOf(group=Name, members=ListOf(user=Email))
352 rejected = ListOf(user=Email)
357 data=ListOf(group=Name, members=ListOf(user=Email))
359 rejected = ListOf(user=Email)
364 data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
366 rejected = ListOf(group=Name, resource=Name)
369 def remove_group_policies(
371 data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
373 rejected = ListOf(group=Name, resource=Name)
376 def update_group_policies(
377 self, data=ListOf(group=Name, resource=Name, upimit=Nonnegative)
379 rejected = ListOf(group=Name, resource=Name)
384 data=ListOf(group=Name, members=ListOf(user=Email))
386 rejected = ListOf(user=Email)
389 def disapprove_members(
391 data=ListOf(group=Name, members=ListOf(user=Email))
393 rejected = ListOf(user=Email)
396 def add_group_permissions(
398 data=ListOf(group=Name, permission=Name)
400 rejected = ListOf(group=Name, permission=Name)
403 def delete_group_permissions(
405 data=ListOf(group=Name, permission=Name)
407 rejected = ListOf(group=Name, permission=Name)
410 def list_resource_units(self):
413 def get_approval_terms(self, term=Nonnegative):
416 def add_approval_terms(self, location=Filepath):
419 # def change_emails():