gam7 7.19.3__py3-none-any.whl → 7.28.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
gam/gamlib/glclargs.py CHANGED
@@ -49,43 +49,71 @@ class GamCLArgs():
49
49
  ENTITY_CROS_OUS_AND_CHILDREN_QUERIES = 'cros_ous_and_children_queries'
50
50
  ENTITY_CROS_SN = 'cros_sn'
51
51
  ENTITY_DOMAINS = 'domains'
52
+ ENTITY_DOMAINS_NA = 'domains_na'
53
+ ENTITY_DOMAINS_ARCH = 'domains_arch'
52
54
  ENTITY_DOMAINS_NS = 'domains_ns'
53
55
  ENTITY_DOMAINS_SUSP = 'domains_susp'
56
+ ENTITY_DOMAINS_NA_NS = 'domains_na_ns'
54
57
  ENTITY_GROUP = 'group'
55
58
  ENTITY_GROUP_INDE = 'group_inde'
59
+ ENTITY_GROUP_NA = 'group_na'
60
+ ENTITY_GROUP_ARCH = 'group_arch'
56
61
  ENTITY_GROUP_NS = 'group_ns'
57
62
  ENTITY_GROUP_SUSP = 'group_susp'
63
+ ENTITY_GROUP_NA_NS = 'group_na_ns'
58
64
  ENTITY_GROUPS = 'groups'
59
65
  ENTITY_GROUPS_INDE = 'groups_inde'
66
+ ENTITY_GROUPS_NA = 'groups_na'
67
+ ENTITY_GROUPS_ARCH = 'groups_arch'
60
68
  ENTITY_GROUPS_NS = 'groups_ns'
61
69
  ENTITY_GROUPS_SUSP = 'groups_susp'
70
+ ENTITY_GROUPS_NA_NS = 'groups_na_ns'
62
71
  ENTITY_GROUP_USERS = 'group_users'
72
+ ENTITY_GROUP_USERS_NA = 'group_users_na'
73
+ ENTITY_GROUP_USERS_ARCH = 'group_users_arch'
63
74
  ENTITY_GROUP_USERS_NS = 'group_users_ns'
64
75
  ENTITY_GROUP_USERS_SUSP = 'group_users_susp'
76
+ ENTITY_GROUP_USERS_NA_NS = 'group_users_na_ns'
65
77
  ENTITY_GROUP_USERS_SELECT = 'group_users_select'
66
78
  ENTITY_LICENSES = 'licenses'
67
79
  ENTITY_OAUTHUSER = 'oauthuser'
68
80
  ENTITY_OU = 'ou'
81
+ ENTITY_OU_NA = 'ou_na'
82
+ ENTITY_OU_ARCH = 'ou_arch'
69
83
  ENTITY_OU_NS = 'ou_ns'
70
84
  ENTITY_OU_SUSP = 'ou_susp'
85
+ ENTITY_OU_NA_NS = 'ou_na_ns'
71
86
  ENTITY_OU_AND_CHILDREN = 'ou_and_children'
87
+ ENTITY_OU_AND_CHILDREN_NA = 'ou_and_children_na'
88
+ ENTITY_OU_AND_CHILDREN_ARCH = 'ou_and_children_arch'
72
89
  ENTITY_OU_AND_CHILDREN_NS = 'ou_and_children_ns'
73
90
  ENTITY_OU_AND_CHILDREN_SUSP = 'ou_and_children_susp'
91
+ ENTITY_OU_AND_CHILDREN_NA_NS = 'ou_and_children_na_ns'
74
92
  ENTITY_OUS = 'ous'
93
+ ENTITY_OUS_NA = 'ous_na'
94
+ ENTITY_OUS_ARCH = 'ous_arch'
75
95
  ENTITY_OUS_NS = 'ous_ns'
76
96
  ENTITY_OUS_SUSP = 'ous_susp'
97
+ ENTITY_OUS_NA_NS = 'ous_na_ns'
77
98
  ENTITY_OUS_AND_CHILDREN = 'ous_and_children'
99
+ ENTITY_OUS_AND_CHILDREN_NA = 'ous_and_children_na'
100
+ ENTITY_OUS_AND_CHILDREN_ARCH = 'ous_and_children_arch'
78
101
  ENTITY_OUS_AND_CHILDREN_NS = 'ous_and_children_ns'
79
102
  ENTITY_OUS_AND_CHILDREN_SUSP = 'ous_and_children_susp'
103
+ ENTITY_OUS_AND_CHILDREN_NA_NS = 'ous_and_children_na_ns'
80
104
  ENTITY_QUERIES = 'queries'
81
105
  ENTITY_QUERY = 'query'
82
106
  ENTITY_STUDENTS = 'students'
83
107
  ENTITY_TEACHERS = 'teachers'
84
108
  ENTITY_USER = 'user'
85
109
  ENTITY_USERS = 'users'
110
+ ENTITY_USERS_NA = 'users_na'
111
+ ENTITY_USERS_ARCH = 'users_arch'
86
112
  ENTITY_USERS_NS = 'users_ns'
87
- ENTITY_USERS_NS_SUSP = 'users_ns_susp'
88
113
  ENTITY_USERS_SUSP = 'users_susp'
114
+ ENTITY_USERS_NA_NS = 'users_na_ns'
115
+ ENTITY_USERS_ARCH_OR_SUSP = 'users_arch_or_susp'
116
+ ENTITY_USERS_NS_SUSP = 'users_ns_susp'
89
117
  #
90
118
  BROWSER_ENTITIES = [
91
119
  ENTITY_BROWSER,
@@ -118,34 +146,58 @@ class GamCLArgs():
118
146
  ENTITY_CIGROUP_USERS,
119
147
  ENTITY_COURSEPARTICIPANTS,
120
148
  ENTITY_DOMAINS,
149
+ ENTITY_DOMAINS_NA,
150
+ ENTITY_DOMAINS_ARCH,
121
151
  ENTITY_DOMAINS_NS,
122
152
  ENTITY_DOMAINS_SUSP,
153
+ ENTITY_DOMAINS_NA_NS,
123
154
  ENTITY_GROUP,
124
155
  ENTITY_GROUP_INDE,
156
+ ENTITY_GROUP_NA,
157
+ ENTITY_GROUP_ARCH,
125
158
  ENTITY_GROUP_NS,
126
159
  ENTITY_GROUP_SUSP,
160
+ ENTITY_GROUP_NA_NS,
127
161
  ENTITY_GROUPS,
128
162
  ENTITY_GROUPS_INDE,
163
+ ENTITY_GROUPS_NA,
164
+ ENTITY_GROUPS_ARCH,
129
165
  ENTITY_GROUPS_NS,
130
166
  ENTITY_GROUPS_SUSP,
167
+ ENTITY_GROUPS_NA_NS,
131
168
  ENTITY_GROUP_USERS,
169
+ ENTITY_GROUP_USERS_NA,
170
+ ENTITY_GROUP_USERS_ARCH,
132
171
  ENTITY_GROUP_USERS_NS,
133
172
  ENTITY_GROUP_USERS_SUSP,
173
+ ENTITY_GROUP_USERS_NA_NS,
134
174
  ENTITY_GROUP_USERS_SELECT,
135
175
  ENTITY_LICENSES,
136
176
  ENTITY_OAUTHUSER,
137
177
  ENTITY_OU,
178
+ ENTITY_OU_NA,
179
+ ENTITY_OU_ARCH,
138
180
  ENTITY_OU_NS,
139
181
  ENTITY_OU_SUSP,
182
+ ENTITY_OU_NA_NS,
140
183
  ENTITY_OU_AND_CHILDREN,
184
+ ENTITY_OU_AND_CHILDREN_NA,
185
+ ENTITY_OU_AND_CHILDREN_ARCH,
141
186
  ENTITY_OU_AND_CHILDREN_NS,
142
187
  ENTITY_OU_AND_CHILDREN_SUSP,
188
+ ENTITY_OU_AND_CHILDREN_NA_NS,
143
189
  ENTITY_OUS,
190
+ ENTITY_OUS_NA,
191
+ ENTITY_OUS_ARCH,
144
192
  ENTITY_OUS_NS,
145
193
  ENTITY_OUS_SUSP,
194
+ ENTITY_OUS_NA_NS,
146
195
  ENTITY_OUS_AND_CHILDREN,
196
+ ENTITY_OUS_AND_CHILDREN_NA,
197
+ ENTITY_OUS_AND_CHILDREN_ARCH,
147
198
  ENTITY_OUS_AND_CHILDREN_NS,
148
199
  ENTITY_OUS_AND_CHILDREN_SUSP,
200
+ ENTITY_OUS_AND_CHILDREN_NA_NS,
149
201
  ENTITY_QUERIES,
150
202
  ENTITY_QUERY,
151
203
  ENTITY_STUDENTS,
@@ -222,29 +274,53 @@ class GamCLArgs():
222
274
  'licence': ENTITY_LICENSES,
223
275
  'licences': ENTITY_LICENSES,
224
276
  'org': ENTITY_OU,
277
+ 'org_na': ENTITY_OU_NA,
278
+ 'org_arch': ENTITY_OU_ARCH,
225
279
  'org_ns': ENTITY_OU_NS,
226
280
  'org_susp': ENTITY_OU_SUSP,
281
+ 'org_na_ns': ENTITY_OU_NA_NS,
227
282
  'org_and_child': ENTITY_OU_AND_CHILDREN,
283
+ 'org_and_child_na': ENTITY_OU_AND_CHILDREN_NA,
284
+ 'org_and_child_arch': ENTITY_OU_AND_CHILDREN_ARCH,
228
285
  'org_and_child_ns': ENTITY_OU_AND_CHILDREN_NS,
229
286
  'org_and_child_susp': ENTITY_OU_AND_CHILDREN_SUSP,
287
+ 'org_and_child_na_ns': ENTITY_OU_AND_CHILDREN_NA_NS,
230
288
  'org_and_children': ENTITY_OU_AND_CHILDREN,
289
+ 'org_and_children_na': ENTITY_OU_AND_CHILDREN_NA,
290
+ 'org_and_children_arch': ENTITY_OU_AND_CHILDREN_ARCH,
231
291
  'org_and_children_ns': ENTITY_OU_AND_CHILDREN_NS,
232
292
  'org_and_children_susp': ENTITY_OU_AND_CHILDREN_SUSP,
293
+ 'org_and_children_na_ns': ENTITY_OU_AND_CHILDREN_NA_NS,
233
294
  'orgs': ENTITY_OUS,
295
+ 'orgs_na': ENTITY_OUS_NA,
296
+ 'orgs_arch': ENTITY_OUS_ARCH,
234
297
  'orgs_ns': ENTITY_OUS_NS,
235
298
  'orgs_susp': ENTITY_OUS_SUSP,
299
+ 'orgs_na_ns': ENTITY_OUS_NA_NS,
236
300
  'orgs_and_child': ENTITY_OUS_AND_CHILDREN,
301
+ 'orgs_and_child_na': ENTITY_OUS_AND_CHILDREN_NA,
302
+ 'orgs_and_child_arch': ENTITY_OUS_AND_CHILDREN_ARCH,
237
303
  'orgs_and_child_ns': ENTITY_OUS_AND_CHILDREN_NS,
238
304
  'orgs_and_child_susp': ENTITY_OUS_AND_CHILDREN_SUSP,
305
+ 'orgs_and_child_na_ns': ENTITY_OUS_AND_CHILDREN_NA_NS,
239
306
  'orgs_and_children': ENTITY_OUS_AND_CHILDREN,
307
+ 'orgs_and_children_na': ENTITY_OUS_AND_CHILDREN_NA,
308
+ 'orgs_and_children_arch': ENTITY_OUS_AND_CHILDREN_ARCH,
240
309
  'orgs_and_children_ns': ENTITY_OUS_AND_CHILDREN_NS,
241
310
  'orgs_and_children_susp': ENTITY_OUS_AND_CHILDREN_SUSP,
311
+ 'orgs_and_children_na_ns': ENTITY_OUS_AND_CHILDREN_NA_NS,
242
312
  'ou_and_child': ENTITY_OU_AND_CHILDREN,
313
+ 'ou_and_child_na': ENTITY_OU_AND_CHILDREN_NA,
314
+ 'ou_and_child_arch': ENTITY_OU_AND_CHILDREN_ARCH,
243
315
  'ou_and_child_ns': ENTITY_OU_AND_CHILDREN_NS,
244
316
  'ou_and_child_susp': ENTITY_OU_AND_CHILDREN_SUSP,
317
+ 'ou_and_child_na_ns': ENTITY_OU_AND_CHILDREN_NA_NS,
245
318
  'ous_and_child': ENTITY_OUS_AND_CHILDREN,
319
+ 'ous_and_child_na': ENTITY_OUS_AND_CHILDREN_NA,
320
+ 'ous_and_child_arch': ENTITY_OUS_AND_CHILDREN_ARCH,
246
321
  'ous_and_child_ns': ENTITY_OUS_AND_CHILDREN_NS,
247
322
  'ous_and_child_susp': ENTITY_OUS_AND_CHILDREN_SUSP,
323
+ 'ous_and_child_na_ns': ENTITY_OUS_AND_CHILDREN_NA_NS,
248
324
  }
249
325
  # CL entity source selectors
250
326
  ENTITY_SELECTOR_ALL = 'all'
@@ -315,30 +391,217 @@ class GamCLArgs():
315
391
  ]
316
392
  USER_ENTITY_SELECTOR_ALL_SUBTYPES = [
317
393
  ENTITY_USERS,
394
+ ENTITY_USERS_NA,
395
+ ENTITY_USERS_ARCH,
318
396
  ENTITY_USERS_NS,
319
- ENTITY_USERS_NS_SUSP,
320
397
  ENTITY_USERS_SUSP,
398
+ ENTITY_USERS_ARCH_OR_SUSP,
399
+ ENTITY_USERS_NA_NS,
400
+ ENTITY_USERS_NS_SUSP,
321
401
  ]
322
402
  #
323
403
  ENTITY_ALL_CROS = ENTITY_SELECTOR_ALL+' '+ENTITY_CROS
324
404
  ENTITY_ALL_USERS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS
405
+ ENTITY_ALL_USERS_NA = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NA
406
+ ENTITY_ALL_USERS_ARCH = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_ARCH
325
407
  ENTITY_ALL_USERS_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NS
326
- ENTITY_ALL_USERS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NS_SUSP
327
408
  ENTITY_ALL_USERS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_SUSP
409
+ ENTITY_ALL_USERS_NA_NS = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NA_NS
410
+ ENTITY_ALL_USERS_ARCH_OR_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_ARCH_OR_SUSP
411
+ ENTITY_ALL_USERS_NS_SUSP = ENTITY_SELECTOR_ALL+' '+ENTITY_USERS_NS_SUSP
412
+ #
413
+ ALL_USER_ENTITY_TYPES = {
414
+ ENTITY_ALL_USERS,
415
+ ENTITY_ALL_USERS_NA,
416
+ ENTITY_ALL_USERS_ARCH,
417
+ ENTITY_ALL_USERS_NS,
418
+ ENTITY_ALL_USERS_SUSP,
419
+ ENTITY_ALL_USERS_NA_NS,
420
+ ENTITY_ALL_USERS_NS_SUSP,
421
+ }
422
+ DOMAIN_ENTITY_TYPES = {
423
+ ENTITY_DOMAINS,
424
+ ENTITY_DOMAINS_NA,
425
+ ENTITY_DOMAINS_ARCH,
426
+ ENTITY_DOMAINS_NS,
427
+ ENTITY_DOMAINS_SUSP,
428
+ ENTITY_DOMAINS_NA_NS,
429
+ }
430
+ GROUP_ENTITY_TYPES = {
431
+ ENTITY_GROUP,
432
+ ENTITY_GROUP_NA,
433
+ ENTITY_GROUP_ARCH,
434
+ ENTITY_GROUP_NS,
435
+ ENTITY_GROUP_SUSP,
436
+ ENTITY_GROUP_NA_NS,
437
+ ENTITY_GROUP_INDE,
438
+ }
439
+ GROUPS_ENTITY_TYPES = {
440
+ ENTITY_GROUPS,
441
+ ENTITY_GROUPS_NA,
442
+ ENTITY_GROUPS_ARCH,
443
+ ENTITY_GROUPS_NS,
444
+ ENTITY_GROUPS_SUSP,
445
+ ENTITY_GROUPS_NA_NS,
446
+ ENTITY_GROUPS_INDE,
447
+ }
448
+ GROUP_USERS_ENTITY_TYPES = {
449
+ ENTITY_GROUP_USERS,
450
+ ENTITY_GROUP_USERS_NA,
451
+ ENTITY_GROUP_USERS_ARCH,
452
+ ENTITY_GROUP_USERS_NS,
453
+ ENTITY_GROUP_USERS_SUSP,
454
+ ENTITY_GROUP_USERS_NA_NS,
455
+ ENTITY_GROUP_USERS_SELECT,
456
+ }
457
+ OU_ENTITY_TYPES = {
458
+ ENTITY_OU,
459
+ ENTITY_OU_AND_CHILDREN,
460
+ ENTITY_OU_NA,
461
+ ENTITY_OU_AND_CHILDREN_NA,
462
+ ENTITY_OU_ARCH,
463
+ ENTITY_OU_AND_CHILDREN_ARCH,
464
+ ENTITY_OU_NS,
465
+ ENTITY_OU_AND_CHILDREN_NS,
466
+ ENTITY_OU_SUSP,
467
+ ENTITY_OU_AND_CHILDREN_SUSP,
468
+ ENTITY_OU_NA_NS,
469
+ ENTITY_OU_AND_CHILDREN_NA_NS,
470
+ }
471
+ OUS_ENTITY_TYPES = {
472
+ ENTITY_OUS,
473
+ ENTITY_OUS_AND_CHILDREN,
474
+ ENTITY_OUS_NA,
475
+ ENTITY_OUS_AND_CHILDREN_NA,
476
+ ENTITY_OUS_ARCH,
477
+ ENTITY_OUS_AND_CHILDREN_ARCH,
478
+ ENTITY_OUS_NS,
479
+ ENTITY_OUS_AND_CHILDREN_NS,
480
+ ENTITY_OUS_SUSP,
481
+ ENTITY_OUS_AND_CHILDREN_SUSP,
482
+ ENTITY_OUS_NA_NS,
483
+ ENTITY_OUS_AND_CHILDREN_NA_NS,
484
+ }
485
+ OU_DIRECT_ENTITY_TYPES = {
486
+ ENTITY_OU,
487
+ ENTITY_OUS,
488
+ ENTITY_OU_NA,
489
+ ENTITY_OUS_NA,
490
+ ENTITY_OU_ARCH,
491
+ ENTITY_OUS_ARCH,
492
+ ENTITY_OU_NS,
493
+ ENTITY_OUS_NS,
494
+ ENTITY_OU_SUSP,
495
+ ENTITY_OUS_SUSP,
496
+ ENTITY_OU_NA_NS,
497
+ ENTITY_OUS_NA_NS,
498
+ }
499
+ CROS_OU_ENTITY_TYPES = {
500
+ ENTITY_CROS_OU,
501
+ ENTITY_CROS_OU_AND_CHILDREN,
502
+ ENTITY_CROS_OU_QUERY,
503
+ ENTITY_CROS_OU_AND_CHILDREN_QUERY,
504
+ ENTITY_CROS_OU_QUERIES,
505
+ ENTITY_CROS_OU_AND_CHILDREN_QUERIES,
506
+ }
507
+ CROS_OUS_ENTITY_TYPES = {
508
+ ENTITY_CROS_OUS,
509
+ ENTITY_CROS_OUS_AND_CHILDREN,
510
+ ENTITY_CROS_OUS_QUERY,
511
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERY,
512
+ ENTITY_CROS_OUS_QUERIES,
513
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERIES,
514
+ }
515
+ CROS_OU_CHILDREN_ENTITY_TYPES = {
516
+ ENTITY_CROS_OU_AND_CHILDREN,
517
+ ENTITY_CROS_OU_AND_CHILDREN_QUERY,
518
+ ENTITY_CROS_OU_AND_CHILDREN_QUERIES,
519
+ ENTITY_CROS_OUS_AND_CHILDREN,
520
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERY,
521
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERIES,
522
+ }
523
+ CROS_OU_QUERY_ENTITY_TYPES = {
524
+ ENTITY_CROS_OU_QUERY,
525
+ ENTITY_CROS_OU_AND_CHILDREN_QUERY,
526
+ ENTITY_CROS_OUS_QUERY,
527
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERY,
528
+ }
529
+ CROS_OU_QUERIES_ENTITY_TYPES = {
530
+ ENTITY_CROS_OU_QUERIES,
531
+ ENTITY_CROS_OU_AND_CHILDREN_QUERIES,
532
+ ENTITY_CROS_OUS_QUERIES,
533
+ ENTITY_CROS_OUS_AND_CHILDREN_QUERIES,
534
+ }
328
535
  #
329
536
  ALL_USERS_QUERY_MAP = {
330
537
  ENTITY_ALL_USERS: 'isSuspended=False',
538
+ ENTITY_ALL_USERS_NA: 'isArchived=False',
539
+ ENTITY_ALL_USERS_ARCH: 'isArchived=True',
331
540
  ENTITY_ALL_USERS_NS: 'isSuspended=False',
332
- ENTITY_ALL_USERS_NS_SUSP: None,
333
541
  ENTITY_ALL_USERS_SUSP: 'isSuspended=True',
542
+ ENTITY_ALL_USERS_NA_NS: 'isArchived=False isSuspended=False',
543
+ ENTITY_ALL_USERS_NS_SUSP: None,
544
+ }
545
+ DOMAINS_QUERY_MAP = {
546
+ ENTITY_DOMAINS: None,
547
+ ENTITY_DOMAINS_NA: 'isArchived=False',
548
+ ENTITY_DOMAINS_ARCH: 'isArchived=True',
549
+ ENTITY_DOMAINS_NS: 'isSuspended=False',
550
+ ENTITY_DOMAINS_SUSP: 'isSuspended=True',
551
+ ENTITY_DOMAINS_NA_NS: 'isArchived=False isSuspended=False',
552
+ }
553
+ GROUPS_QUERY_MAP = { #(isArchived, isSuspended)
554
+ ENTITY_GROUP_NA: (False, None),
555
+ ENTITY_GROUPS_NA: (False, None),
556
+ ENTITY_GROUP_ARCH: (True, None),
557
+ ENTITY_GROUPS_ARCH: (True, None),
558
+ ENTITY_GROUP_NS: (None, False),
559
+ ENTITY_GROUPS_NS: (None, False),
560
+ ENTITY_GROUP_SUSP: (None, True),
561
+ ENTITY_GROUPS_SUSP: (None, True),
562
+ ENTITY_GROUP_NA_NS: (False, False),
563
+ ENTITY_GROUPS_NA_NS: (False, False),
564
+ }
565
+ GROUP_USERS_QUERY_MAP = { #(isArchived, isSuspended)
566
+ ENTITY_GROUP_USERS_NA: (False, None),
567
+ ENTITY_GROUP_USERS_ARCH: (True, None),
568
+ ENTITY_GROUP_USERS_NS: (None, False),
569
+ ENTITY_GROUP_USERS_SUSP: (None, True),
570
+ ENTITY_GROUP_USERS_NA_NS: (False, False),
571
+ }
572
+ OU_QUERY_MAP = { #(isArchived, isSuspended)
573
+ ENTITY_OU_NA: (False, None),
574
+ ENTITY_OUS_NA: (False, None),
575
+ ENTITY_OU_AND_CHILDREN_NA: (False, None),
576
+ ENTITY_OUS_AND_CHILDREN_NA: (False, None),
577
+ ENTITY_OU_ARCH: (True, None),
578
+ ENTITY_OUS_ARCH: (True, None),
579
+ ENTITY_OU_AND_CHILDREN_ARCH: (True, None),
580
+ ENTITY_OUS_AND_CHILDREN_ARCH: (True, None),
581
+ ENTITY_OU_NS: (None, False),
582
+ ENTITY_OUS_NS: (None, False),
583
+ ENTITY_OU_AND_CHILDREN_NS: (None, False),
584
+ ENTITY_OUS_AND_CHILDREN_NS: (None, False),
585
+ ENTITY_OU_SUSP: (None, True),
586
+ ENTITY_OUS_SUSP: (None, True),
587
+ ENTITY_OU_AND_CHILDREN_SUSP: (None, True),
588
+ ENTITY_OUS_AND_CHILDREN_SUSP: (None, True),
589
+ ENTITY_OU_NA_NS: (False, False),
590
+ ENTITY_OUS_NA_NS: (False, False),
591
+ ENTITY_OU_AND_CHILDREN_NA_NS: (False, False),
592
+ ENTITY_OUS_AND_CHILDREN_NA_NS: (False, False),
334
593
  }
335
594
  #
336
595
  ENTITY_SELECTOR_ALL_SUBTYPES_MAP = {
337
596
  ENTITY_CROS: ENTITY_ALL_CROS,
338
597
  ENTITY_USERS: ENTITY_ALL_USERS,
598
+ ENTITY_USERS_NA: ENTITY_ALL_USERS_NA,
599
+ ENTITY_USERS_ARCH: ENTITY_ALL_USERS_ARCH,
339
600
  ENTITY_USERS_NS: ENTITY_ALL_USERS_NS,
340
- ENTITY_USERS_NS_SUSP: ENTITY_ALL_USERS_NS_SUSP,
341
601
  ENTITY_USERS_SUSP: ENTITY_ALL_USERS_SUSP,
602
+ ENTITY_USERS_NA_NS: ENTITY_ALL_USERS_NA_NS,
603
+ ENTITY_USERS_ARCH_OR_SUSP: ENTITY_ALL_USERS_ARCH_OR_SUSP,
604
+ ENTITY_USERS_NS_SUSP: ENTITY_ALL_USERS_NS_SUSP,
342
605
  }
343
606
  # Allowed values for CL source selector datafile, csvkmd
344
607
  CROS_ENTITY_SELECTOR_DATAFILE_CSVKMD_SUBTYPES = [
@@ -352,22 +615,37 @@ class GamCLArgs():
352
615
  ENTITY_CIGROUPS,
353
616
  ENTITY_CIGROUP_USERS,
354
617
  ENTITY_DOMAINS,
618
+ ENTITY_DOMAINS_NA,
619
+ ENTITY_DOMAINS_ARCH,
355
620
  ENTITY_DOMAINS_NS,
356
621
  ENTITY_DOMAINS_SUSP,
622
+ ENTITY_DOMAINS_NA_NS,
357
623
  ENTITY_GROUPS,
358
624
  ENTITY_GROUPS_INDE,
625
+ ENTITY_GROUPS_NA,
626
+ ENTITY_GROUPS_ARCH,
359
627
  ENTITY_GROUPS_NS,
360
628
  ENTITY_GROUPS_SUSP,
629
+ ENTITY_GROUPS_NA_NS,
361
630
  ENTITY_GROUP_USERS,
631
+ ENTITY_GROUP_USERS_NA,
632
+ ENTITY_GROUP_USERS_ARCH,
362
633
  ENTITY_GROUP_USERS_NS,
363
634
  ENTITY_GROUP_USERS_SUSP,
635
+ ENTITY_GROUP_USERS_NA_NS,
364
636
  ENTITY_GROUP_USERS_SELECT,
365
637
  ENTITY_OUS,
638
+ ENTITY_OUS_NA,
639
+ ENTITY_OUS_ARCH,
366
640
  ENTITY_OUS_NS,
367
641
  ENTITY_OUS_SUSP,
642
+ ENTITY_OUS_NA_NS,
368
643
  ENTITY_OUS_AND_CHILDREN,
644
+ ENTITY_OUS_AND_CHILDREN_NA,
645
+ ENTITY_OUS_AND_CHILDREN_ARCH,
369
646
  ENTITY_OUS_AND_CHILDREN_NS,
370
647
  ENTITY_OUS_AND_CHILDREN_SUSP,
648
+ ENTITY_OUS_AND_CHILDREN_NA_NS,
371
649
  ENTITY_COURSEPARTICIPANTS,
372
650
  ENTITY_STUDENTS,
373
651
  ENTITY_TEACHERS,
@@ -377,6 +655,7 @@ class GamCLArgs():
377
655
  GAM_CMD = 'gam'
378
656
  COMMIT_BATCH_CMD = 'commit-batch'
379
657
  PRINT_CMD = 'print'
658
+ DATETIME_CMD = 'datetime'
380
659
  SET_CMD = 'set'
381
660
  CLEAR_CMD = 'clear'
382
661
  SLEEP_CMD = 'sleep'
@@ -475,6 +754,7 @@ class GamCLArgs():
475
754
  ARG_CHATSPACE = 'chatspace'
476
755
  ARG_CHATSPACES = 'chatspaces'
477
756
  ARG_CHATSPACEDM = 'chatspacedm'
757
+ ARG_CHROMEDEVICECOUNTS = 'chromedevicecounts'
478
758
  ARG_CHROMEAPP = 'chromeapp'
479
759
  ARG_CHROMEAPPS = 'chromeapps'
480
760
  ARG_CHROMEAPPDEVICES = 'chromeappdevices'
@@ -528,6 +808,9 @@ class GamCLArgs():
528
808
  ARG_COURSEANNOUNCEMENTS = 'courseannouncements'
529
809
  ARG_COURSEMATERIALS = 'coursematerials'
530
810
  ARG_COURSEPARTICIPANTS = 'courseparticipants'
811
+ ARG_COURSESTUDENTGROUP = 'coursestudentgroup'
812
+ ARG_COURSESTUDENTGROUPS = 'coursestudentgroups'
813
+ ARG_COURSESTUDENTGROUPMEMBERS = 'coursestudentgroupmembers'
531
814
  ARG_COURSESUBMISSIONS = 'coursesubmissions'
532
815
  ARG_COURSETOPICS = 'coursetopics'
533
816
  ARG_COURSEWORK = 'coursework'
@@ -856,6 +1139,7 @@ class GamCLArgs():
856
1139
  OB_ARGUMENT = 'argument'
857
1140
  OB_ASP_ID_LIST = 'ASPIDList'
858
1141
  OB_ASSET_ID = 'AssetID'
1142
+ OB_ADMIN_ASSIGNEE_TYPE_LIST = 'AdminAssigneeTypeList'
859
1143
  OB_BROWSER_ENROLLEMNT_TOKEN_ID = 'BrowserEnrollmentTokenID'
860
1144
  OB_BROWSER_ENTITY = 'BrowserEntity'
861
1145
  OB_BUILDING_ID = 'BuildingID'
@@ -921,6 +1205,7 @@ class GamCLArgs():
921
1205
  OB_CSE_KEYPAIR_ID = 'CSEKeyPairID'
922
1206
  OB_CUSTOMER_ID = 'CustomerID'
923
1207
  OB_CUSTOMER_AUTH_TOKEN = 'CustomerAuthToken'
1208
+ OB_DATETIME_FORMAT = 'DateTimeFormat'
924
1209
  OB_DEVICE_FILE_ENTITY = 'DeviceFileEntity'
925
1210
  OB_DEVICE_ENTITY = 'DeviceEntity'
926
1211
  OB_DEVICE_ID = 'DeviceID'
@@ -933,6 +1218,7 @@ class GamCLArgs():
933
1218
  OB_DOMAIN_NAME_LIST = 'DomainNameList'
934
1219
  OB_DRIVE_FILE_ENTITY = 'DriveFileEntity'
935
1220
  OB_DRIVE_FILE_ID = 'DriveFileID'
1221
+ OB_DRIVE_FILE_ID_LIST = 'DriveFileIDList'
936
1222
  OB_DRIVE_FILE_NAME = 'DriveFileName'
937
1223
  OB_DRIVE_FILE_PERMISSION_ENTITY = 'DriveFilePermissionEntity'
938
1224
  OB_DRIVE_FILE_PERMISSION_ID = 'DriveFilePermissionID'
@@ -1054,7 +1340,10 @@ class GamCLArgs():
1054
1340
  OB_SPREADSHEET_RANGE_LIST = 'SpreadsheetRangeList'
1055
1341
  OB_STATE_NAME_LIST = "StateNameList"
1056
1342
  OB_STRING = 'String'
1343
+ OB_STRING_ENTITY = 'StringEntity'
1057
1344
  OB_STRING_LIST = 'StringList'
1345
+ OB_STUDENTGROUP_ID = 'StudentGroupID'
1346
+ OB_STUDENTGROUP_ID_ENTITY = 'StudentGroupIDEntity'
1058
1347
  OB_STUDENT_ITEM = 'StudentItem'
1059
1348
  OB_TAG = 'Tag'
1060
1349
  OB_TAGMANAGER_PATH_LIST = 'TagManagerPathList'
gam/gamlib/glentity.py CHANGED
@@ -96,6 +96,7 @@ class GamEntity():
96
96
  CHAT_MEMBER_USER = 'chmu'
97
97
  CHAT_MESSAGE = 'chms'
98
98
  CHAT_MESSAGE_ID = 'chmi'
99
+ CHAT_OWNER_USER = 'chou'
99
100
  CHAT_SPACE = 'chsp'
100
101
  CHAT_THREAD = 'chth'
101
102
  CHILD_ORGANIZATIONAL_UNIT = 'corg'
@@ -105,6 +106,7 @@ class GamEntity():
105
106
  CHROME_BROWSER_ENROLLMENT_TOKEN = 'cbet'
106
107
  CHROME_CHANNEL = 'chan'
107
108
  CHROME_DEVICE = 'chdv'
109
+ CHROME_DEVICE_COUNT = 'chdc'
108
110
  CHROME_MODEL = 'chmo'
109
111
  CHROME_NETWORK_ID = 'chni'
110
112
  CHROME_NETWORK_NAME = 'chnn'
@@ -155,6 +157,8 @@ class GamEntity():
155
157
  COURSE_MATERIAL_STATE = 'cmst'
156
158
  COURSE_NAME = 'cona'
157
159
  COURSE_STATE = 'cost'
160
+ COURSE_STUDENTGROUP = 'cosg'
161
+ COURSE_STUDENTGROUP_MEMBER = 'csgm'
158
162
  COURSE_SUBMISSION_ID = 'csid'
159
163
  COURSE_SUBMISSION_STATE = 'csst'
160
164
  COURSE_TOPIC = 'ctop'
@@ -382,11 +386,13 @@ class GamEntity():
382
386
  URL = 'url '
383
387
  USER = 'user'
384
388
  USER_ALIAS = 'uali'
389
+ USER_NOT_ARCHIVED = 'usna'
390
+ USER_ARCHIVED = 'usar'
385
391
  USER_EMAIL = 'uema'
386
392
  USER_INVITATION = 'uinv'
387
- USER_NOT_SUSPENDED = 'uns'
388
- USER_SCHEMA = 'usch'
393
+ USER_NOT_SUSPENDED = 'usns'
389
394
  USER_SUSPENDED = 'usup'
395
+ USER_SCHEMA = 'usch'
390
396
  VACATION = 'vaca'
391
397
  VACATION_ENABLED = 'vace'
392
398
  VALUE = 'val'
@@ -458,6 +464,7 @@ class GamEntity():
458
464
  CHAT_MEMBER: ['Chat Members', 'Chat Member'],
459
465
  CHAT_MEMBER_GROUP: ['Chat Group Members', 'Chat Group Member'],
460
466
  CHAT_MEMBER_USER: ['Chat User Members', 'Chat User Member'],
467
+ CHAT_OWNER_USER: ['Chat User Owners', 'Chat User Owner'],
461
468
  CHAT_SPACE: ['Chat Spaces', 'Chat Space'],
462
469
  CHAT_THREAD: ['Chat Threads', 'Chat Thread'],
463
470
  CHILD_ORGANIZATIONAL_UNIT: ['Child Organizational Units', 'Child Organizational Unit'],
@@ -467,6 +474,7 @@ class GamEntity():
467
474
  CHROME_BROWSER_ENROLLMENT_TOKEN: ['Chrome Browser Enrollment Tokens', 'Chrome Browser Enrollment Token'],
468
475
  CHROME_CHANNEL: ['Chrome Channels', 'Chrome Channel'],
469
476
  CHROME_DEVICE: ['Chrome Devices', 'Chrome Device'],
477
+ CHROME_DEVICE_COUNT: ['Chrome Device Counts', 'Chrome Device Count'],
470
478
  CHROME_MODEL: ['Chrome Models', 'Chrome Model'],
471
479
  CHROME_NETWORK_ID: ['Chrome Network IDs', 'Chrome Network ID'],
472
480
  CHROME_NETWORK_NAME: ['Chrome Network Names', 'Chrome Network Name'],
@@ -517,6 +525,8 @@ class GamEntity():
517
525
  COURSE_MATERIAL_STATE: ['Course Material States', 'Course Material State'],
518
526
  COURSE_NAME: ['Course Names', 'Course Name'],
519
527
  COURSE_STATE: ['Course States', 'Course State'],
528
+ COURSE_STUDENTGROUP: ['Course Student Groups', 'Course Student Group'],
529
+ COURSE_STUDENTGROUP_MEMBER: ['Course Student Group Members', 'Course Student Group Member'],
520
530
  COURSE_SUBMISSION_ID: ['Course Submission IDs', 'Course Submission ID'],
521
531
  COURSE_SUBMISSION_STATE: ['Course Submission States', 'Course Submission State'],
522
532
  COURSE_TOPIC: ['Course Topics', 'Course Topic'],
@@ -744,11 +754,13 @@ class GamEntity():
744
754
  URL: ['URLs', 'URL'],
745
755
  USER: ['Users', 'User'],
746
756
  USER_ALIAS: ['User Aliases', 'User Alias'],
757
+ USER_NOT_ARCHIVED: ['Users (Not archived)', 'User (Not archived)'],
758
+ USER_ARCHIVED: ['Users (Archived)', 'User (Archived)'],
747
759
  USER_EMAIL: ['User Emails', 'User Email'],
748
760
  USER_INVITATION: ['User Invitations', 'User Invitation'],
749
761
  USER_NOT_SUSPENDED: ['Users (Not suspended)', 'User (Not suspended)'],
750
- USER_SCHEMA: ['Schemas', 'Schema'],
751
762
  USER_SUSPENDED: ['Users (Suspended)', 'User (Suspended)'],
763
+ USER_SCHEMA: ['Schemas', 'Schema'],
752
764
  VACATION: ['Vacation', 'Vacation'],
753
765
  VACATION_ENABLED: ['Vacation Enabled', 'Vacation Enabled'],
754
766
  VALUE: ['Values', 'Value'],
gam/gamlib/glglobals.py CHANGED
@@ -31,6 +31,8 @@ API_CALLS_RETRY_DATA = 'rtry'
31
31
  CACHE_DIR = 'gacd'
32
32
  # Reset GAM cache directory after discovery
33
33
  CACHE_DISCOVERY_ONLY = 'gcdo'
34
+ # Classroom owner service object
35
+ CLASSROOM_OWNER_SA = 'cosa'
34
36
  # Classroom service not available
35
37
  CLASSROOM_SERVICE_NOT_AVAILABLE = 'csna'
36
38
  # Command logging
@@ -105,6 +107,8 @@ CURRENT_SVCACCT_USER = 'csa'
105
107
  DATETIME_NOW = 'dtno'
106
108
  # If debug_level > 0: extra_args['prettyPrint'] = True, httplib2.debuglevel = gam_debug_level, appsObj.debug = True
107
109
  DEBUG_LEVEL = 'dbgl'
110
+ # Whether debug output should redact sensitive credentials
111
+ DEBUG_REDACTION = 'dbrd'
108
112
  # Decoded ID token
109
113
  DECODED_ID_TOKEN = 'didt'
110
114
  # Index of start of <UserTypeEntity> in command line
@@ -221,6 +225,7 @@ Globals = {
221
225
  API_CALLS_RETRY_DATA: {},
222
226
  CACHE_DIR: None,
223
227
  CACHE_DISCOVERY_ONLY: True,
228
+ CLASSROOM_OWNER_SA: {},
224
229
  CLASSROOM_SERVICE_NOT_AVAILABLE: False,
225
230
  CMDLOG_HANDLER: None,
226
231
  CMDLOG_LOGGER: None,
@@ -260,6 +265,7 @@ Globals = {
260
265
  CURRENT_SVCACCT_USER: None,
261
266
  DATETIME_NOW: None,
262
267
  DEBUG_LEVEL: 0,
268
+ DEBUG_REDACTION: True,
263
269
  DECODED_ID_TOKEN: None,
264
270
  ENTITY_CL_DELAY_START: 1,
265
271
  ENTITY_CL_START: 1,
gam/gamlib/glmsgs.py CHANGED
@@ -53,7 +53,7 @@ Please go to:
53
53
  5. Click "NEXT"
54
54
  6. Under "Audience", choose INTERNAL
55
55
  7. Click "NEXT"
56
- 8. Under, "Contact Information", enter an email address in "Email addresses *"
56
+ 8. Under, "Contact Information", enter {2} or another value in "Email addresses *"
57
57
  9. Click "NEXT"
58
58
  10. Under "Finish", click "I agree to the Google API Services: User Data Policy."
59
59
  11. Click "CONTINUE"
@@ -224,6 +224,8 @@ COUNT_N_EXCEEDS_MAX_TO_PROCESS_M = 'Count {0} exceeds maximum to {1} {2}'
224
224
  CORRUPT_FILE = 'Corrupt file'
225
225
  COULD_NOT_FIND_ANY_YUBIKEY = 'Could not find any YubiKey\n'
226
226
  COULD_NOT_FIND_YUBIKEY_WITH_SERIAL = 'Could not find YubiKey with serial number {0}\n'
227
+ CREATE_DELEGATE_NOTIFY_MESSAGE = '#user# has granted you #delegate# access to read, delete and send mail on their behalf.'
228
+ CREATE_DELEGATE_NOTIFY_SUBJECT = '#user# mail delegation to #delegate#'
227
229
  CREATE_USER_NOTIFY_MESSAGE = 'Hello #givenname# #familyname#,\n\nYou have a new account at #domain#\nAccount details:\nUsername: #user#\nPassword: #password#\nStart using your new account by signing in at\nhttps://www.google.com/accounts/AccountChooser?Email=#user#&continue=https://workspace.google.com/dashboard\n'
228
230
  CREATE_USER_NOTIFY_SUBJECT = 'Welcome to #domain#'
229
231
  CSV_DATA_ALREADY_SAVED = 'CSV data already saved'
@@ -499,6 +501,7 @@ STATISTICS_MOVE_FILE = 'Total: {0}, Moved: {1}, Shortcut created {2}, Shortcut e
499
501
  STATISTICS_MOVE_FOLDER = 'Total: {0}, Moved: {1}, Shortcut created {2}, Shortcut exists {3}, Duplicate: {4}, Merged: {5}, Move Failed: {6}, Not writable: {7}'
500
502
  STATISTICS_USER_NOT_ORGANIZER = 'User not organizer: {0}'
501
503
  STRING_LENGTH = 'string length'
504
+ STUDENT_NOT_IN_COURSE = 'Student not in course'
502
505
  SUBKEY_FIELD_MISMATCH = 'subkeyfield {0} does not match saved subkeyfield {1}'
503
506
  SUBSCRIPTION_NOT_FOUND = 'Could not find subscription'
504
507
  SUFFIX_NOT_ALLOWED_WITH_CUSTOMLANGUAGE = 'Suffix {0} not allowed with customLanguage {1}'
@@ -515,7 +518,7 @@ To set up Google Chat for your current project, please go to:
515
518
 
516
519
  and follow the instructions at:
517
520
 
518
- https://github.com/GAM-team/GAM/wiki/Chat-Bot#set-up-a-chat-bot
521
+ https://github.com/GAM-team/GAM/wiki/Chat-Bot-Setup-Use#set-up-a-chat-bot
519
522
 
520
523
  You'll use projects/{1}/topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
521
524
  """
gam/gamlib/glskus.py CHANGED
@@ -100,7 +100,7 @@ _SKUS = {
100
100
  '1010470003': {
101
101
  'product': '101047', 'aliases': ['geminibiz'], 'displayName': 'Gemini Business'},
102
102
  '1010470004': {
103
- 'product': '101047', 'aliases': ['geminiedu'], 'displayName': 'Gemini Education'},
103
+ 'product': '101047', 'aliases': ['gaiproedu', 'geminiedu'], 'displayName': 'Google AI Pro for Education'},
104
104
  '1010470005': {
105
105
  'product': '101047', 'aliases': ['geminiedupremium'], 'displayName': 'Gemini Education Premium'},
106
106
  '1010470006': {
gam/gamlib/glverlibs.py CHANGED
@@ -21,6 +21,7 @@
21
21
  """
22
22
 
23
23
  GAM_VER_LIBS = [
24
+ 'arrow',
24
25
  'chardet',
25
26
  'cryptography',
26
27
  'filelock',
@@ -33,6 +34,5 @@ GAM_VER_LIBS = [
33
34
  'passlib',
34
35
  'pathvalidate',
35
36
  'pyscard',
36
- 'python-dateutil',
37
37
  'yubikey-manager',
38
38
  ]