looker-sdk 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +52 -0
  3. data/.ruby-gemset +1 -0
  4. data/.travis.yml +16 -0
  5. data/Gemfile +22 -0
  6. data/LICENSE +21 -0
  7. data/Rakefile +37 -0
  8. data/authentication.md +104 -0
  9. data/examples/add_delete_users.rb +94 -0
  10. data/examples/change_credentials_email_address_for_users.rb +23 -0
  11. data/examples/create_credentials_email_for_users.rb +19 -0
  12. data/examples/delete_all_user_sessions.rb +15 -0
  13. data/examples/delete_credentials_google_for_users.rb +19 -0
  14. data/examples/generate_password_reset_tokens_for_users.rb +19 -0
  15. data/examples/ldap_roles_test.rb +50 -0
  16. data/examples/me.rb +3 -0
  17. data/examples/refresh_user_notification_addresses.rb +10 -0
  18. data/examples/roles_and_users_with_permission.rb +22 -0
  19. data/examples/sdk_setup.rb +21 -0
  20. data/examples/streaming_downloads.rb +20 -0
  21. data/examples/users_with_credentials_email.rb +6 -0
  22. data/examples/users_with_credentials_google.rb +8 -0
  23. data/examples/users_with_credentials_google_without_credentials_email.rb +6 -0
  24. data/lib/looker-sdk.rb +32 -0
  25. data/lib/looker-sdk/authentication.rb +104 -0
  26. data/lib/looker-sdk/client.rb +445 -0
  27. data/lib/looker-sdk/client/dynamic.rb +107 -0
  28. data/lib/looker-sdk/configurable.rb +116 -0
  29. data/lib/looker-sdk/default.rb +148 -0
  30. data/lib/looker-sdk/error.rb +235 -0
  31. data/lib/looker-sdk/rate_limit.rb +33 -0
  32. data/lib/looker-sdk/response/raise_error.rb +20 -0
  33. data/lib/looker-sdk/sawyer_patch.rb +33 -0
  34. data/lib/looker-sdk/version.rb +7 -0
  35. data/looker-sdk.gemspec +27 -0
  36. data/readme.md +117 -0
  37. data/shell/.gitignore +41 -0
  38. data/shell/Gemfile +6 -0
  39. data/shell/readme.md +18 -0
  40. data/shell/shell.rb +37 -0
  41. data/streaming.md +59 -0
  42. data/test/helper.rb +46 -0
  43. data/test/looker/swagger.json +1998 -0
  44. data/test/looker/test_client.rb +258 -0
  45. data/test/looker/test_dynamic_client.rb +158 -0
  46. data/test/looker/test_dynamic_client_agent.rb +131 -0
  47. data/test/looker/user.json +1 -0
  48. metadata +107 -0
@@ -0,0 +1,1998 @@
1
+ {
2
+ "swagger": "2.0",
3
+ "info": {
4
+ "version": "3.0.0",
5
+ "title": "Looker API",
6
+ "description": "This document describes the Looker API.",
7
+ "contact": {
8
+ "name": "Looker Team <support@looker.com>"
9
+ },
10
+ "license": {
11
+ "name": "EULA",
12
+ "url": "https://localhost:9999/eula"
13
+ }
14
+ },
15
+ "basePath": "/api/3.0",
16
+ "schemes": [
17
+ "https"
18
+ ],
19
+ "consumes": [
20
+ "application/json"
21
+ ],
22
+ "produces": [
23
+ "application/json"
24
+ ],
25
+ "host": "localhost:19999",
26
+ "tags": [
27
+ {
28
+ "name": "User",
29
+ "description": "Manage Users"
30
+ }
31
+ ],
32
+ "paths": {
33
+ "/user": {
34
+ "get": {
35
+ "tags": [
36
+ "User"
37
+ ],
38
+ "operationId": "me",
39
+ "summary": "Get current user",
40
+ "description": "Get information about the current user; i.e. the user account currently calling the API.\n",
41
+ "responses": {
42
+ "404": {
43
+ "description": "Not Found",
44
+ "schema": {
45
+ "$ref": "Error"
46
+ }
47
+ },
48
+ "200": {
49
+ "description": "Current user.",
50
+ "schema": {
51
+ "$ref": "User"
52
+ }
53
+ }
54
+ }
55
+ }
56
+ },
57
+ "/users/{id}": {
58
+ "get": {
59
+ "tags": [
60
+ "User"
61
+ ],
62
+ "operationId": "user",
63
+ "summary": "Get a user",
64
+ "description": "Get information about the user with a specific id.\n\nIf the caller is an admin or the caller is the user being specified, then full user information will\nbe returned. Otherwise, a minimal 'public' variant of the user information will be returned. This contains\nThe user name and avatar url, but no sensitive information.\n",
65
+ "parameters": [
66
+ {
67
+ "name": "id",
68
+ "in": "path",
69
+ "description": "id of user",
70
+ "required": true,
71
+ "type": "integer",
72
+ "format": "int64"
73
+ }
74
+ ],
75
+ "responses": {
76
+ "400": {
77
+ "description": "Bad Request",
78
+ "schema": {
79
+ "$ref": "Error"
80
+ }
81
+ },
82
+ "404": {
83
+ "description": "Not Found",
84
+ "schema": {
85
+ "$ref": "Error"
86
+ }
87
+ },
88
+ "200": {
89
+ "description": "Specified user.",
90
+ "schema": {
91
+ "$ref": "User"
92
+ }
93
+ }
94
+ }
95
+ },
96
+ "delete": {
97
+ "tags": [
98
+ "User"
99
+ ],
100
+ "operationId": "delete_user",
101
+ "summary": "delete a user",
102
+ "description": "Delete the user with a specific id.\n**DANGER** this will delete the user and all looks and other information owned by the user.\n",
103
+ "parameters": [
104
+ {
105
+ "name": "id",
106
+ "in": "path",
107
+ "description": "id of user",
108
+ "required": true,
109
+ "type": "integer",
110
+ "format": "int64"
111
+ }
112
+ ],
113
+ "responses": {
114
+ "400": {
115
+ "description": "Bad Request",
116
+ "schema": {
117
+ "$ref": "Error"
118
+ }
119
+ },
120
+ "404": {
121
+ "description": "Not Found",
122
+ "schema": {
123
+ "$ref": "Error"
124
+ }
125
+ },
126
+ "204": {
127
+ "description": "User successfully deleted.",
128
+ "schema": {
129
+ "type": "boolean"
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "patch": {
135
+ "tags": [
136
+ "User"
137
+ ],
138
+ "operationId": "update_user",
139
+ "summary": "update a user",
140
+ "description": "Update information about the user with a specific id.\n",
141
+ "parameters": [
142
+ {
143
+ "name": "id",
144
+ "in": "path",
145
+ "description": "id of user",
146
+ "required": true,
147
+ "type": "integer",
148
+ "format": "int64"
149
+ },
150
+ {
151
+ "name": "user",
152
+ "in": "body",
153
+ "description": "User",
154
+ "required": true,
155
+ "schema": {
156
+ "$ref": "User"
157
+ }
158
+ }
159
+ ],
160
+ "responses": {
161
+ "400": {
162
+ "description": "Bad Request",
163
+ "schema": {
164
+ "$ref": "Error"
165
+ }
166
+ },
167
+ "404": {
168
+ "description": "Not Found",
169
+ "schema": {
170
+ "$ref": "Error"
171
+ }
172
+ },
173
+ "200": {
174
+ "description": "New state for specified user.",
175
+ "schema": {
176
+ "$ref": "User"
177
+ }
178
+ }
179
+ }
180
+ }
181
+ },
182
+ "/users": {
183
+ "get": {
184
+ "tags": [
185
+ "User"
186
+ ],
187
+ "operationId": "all_users",
188
+ "summary": "get all users",
189
+ "description": "Get information about all users.\n",
190
+ "responses": {
191
+ "404": {
192
+ "description": "Not Found",
193
+ "schema": {
194
+ "$ref": "Error"
195
+ }
196
+ },
197
+ "200": {
198
+ "description": "All users.",
199
+ "schema": {
200
+ "type": "array",
201
+ "items": {
202
+ "$ref": "User"
203
+ }
204
+ }
205
+ }
206
+ }
207
+ },
208
+ "post": {
209
+ "tags": [
210
+ "User"
211
+ ],
212
+ "operationId": "create_user",
213
+ "summary": "create a user",
214
+ "description": "Create a user with the specified information.\n",
215
+ "parameters": [
216
+ {
217
+ "name": "user",
218
+ "in": "body",
219
+ "description": "User",
220
+ "required": false,
221
+ "schema": {
222
+ "$ref": "User"
223
+ }
224
+ }
225
+ ],
226
+ "responses": {
227
+ "400": {
228
+ "description": "Bad Request",
229
+ "schema": {
230
+ "$ref": "Error"
231
+ }
232
+ },
233
+ "404": {
234
+ "description": "Not Found",
235
+ "schema": {
236
+ "$ref": "Error"
237
+ }
238
+ },
239
+ "409": {
240
+ "description": "Resource Already Exists",
241
+ "schema": {
242
+ "$ref": "Error"
243
+ }
244
+ },
245
+ "422": {
246
+ "description": "Validation Error",
247
+ "schema": {
248
+ "$ref": "ValidationError"
249
+ }
250
+ },
251
+ "500": {
252
+ "description": "Server Error",
253
+ "schema": {
254
+ "$ref": "Error"
255
+ }
256
+ },
257
+ "200": {
258
+ "description": "Created User",
259
+ "schema": {
260
+ "$ref": "User"
261
+ }
262
+ }
263
+ }
264
+ }
265
+ },
266
+ "/users/{user_id}/credentials_email": {
267
+ "get": {
268
+ "tags": [
269
+ "User"
270
+ ],
271
+ "operationId": "user_credentials_email",
272
+ "summary": "get email/password credential",
273
+ "description": "Email/password login information for the specified user.",
274
+ "parameters": [
275
+ {
276
+ "name": "user_id",
277
+ "in": "path",
278
+ "description": "id of user",
279
+ "required": true,
280
+ "type": "integer",
281
+ "format": "int64"
282
+ }
283
+ ],
284
+ "responses": {
285
+ "404": {
286
+ "description": "Not Found",
287
+ "schema": {
288
+ "$ref": "Error"
289
+ }
290
+ },
291
+ "200": {
292
+ "description": "email/password credential",
293
+ "schema": {
294
+ "$ref": "CredentialsEmail"
295
+ }
296
+ }
297
+ }
298
+ },
299
+ "post": {
300
+ "tags": [
301
+ "User"
302
+ ],
303
+ "operationId": "create_user_credentials_email",
304
+ "summary": "create email/password credential",
305
+ "description": "Email/password login information for the specified user.",
306
+ "parameters": [
307
+ {
308
+ "name": "user_id",
309
+ "in": "path",
310
+ "description": "id of user",
311
+ "required": true,
312
+ "type": "integer",
313
+ "format": "int64"
314
+ },
315
+ {
316
+ "name": "user_credentials_email",
317
+ "in": "body",
318
+ "description": "email/password credential",
319
+ "required": false,
320
+ "schema": {
321
+ "$ref": "CredentialsEmail"
322
+ }
323
+ }
324
+ ],
325
+ "responses": {
326
+ "400": {
327
+ "description": "Bad Request",
328
+ "schema": {
329
+ "$ref": "Error"
330
+ }
331
+ },
332
+ "404": {
333
+ "description": "Not Found",
334
+ "schema": {
335
+ "$ref": "Error"
336
+ }
337
+ },
338
+ "200": {
339
+ "description": "email/password credential",
340
+ "schema": {
341
+ "$ref": "CredentialsEmail"
342
+ }
343
+ }
344
+ }
345
+ },
346
+ "patch": {
347
+ "tags": [
348
+ "User"
349
+ ],
350
+ "operationId": "update_user_credentials_email",
351
+ "summary": "update email/password credential",
352
+ "description": "Email/password login information for the specified user.",
353
+ "parameters": [
354
+ {
355
+ "name": "user_id",
356
+ "in": "path",
357
+ "description": "id of user",
358
+ "required": true,
359
+ "type": "integer",
360
+ "format": "int64"
361
+ },
362
+ {
363
+ "name": "user_credentials_email",
364
+ "in": "body",
365
+ "description": "email/password credential",
366
+ "required": true,
367
+ "schema": {
368
+ "$ref": "CredentialsEmail"
369
+ }
370
+ }
371
+ ],
372
+ "responses": {
373
+ "400": {
374
+ "description": "Bad Request",
375
+ "schema": {
376
+ "$ref": "Error"
377
+ }
378
+ },
379
+ "404": {
380
+ "description": "Not Found",
381
+ "schema": {
382
+ "$ref": "Error"
383
+ }
384
+ },
385
+ "200": {
386
+ "description": "email/password credential",
387
+ "schema": {
388
+ "$ref": "CredentialsEmail"
389
+ }
390
+ }
391
+ }
392
+ },
393
+ "delete": {
394
+ "tags": [
395
+ "User"
396
+ ],
397
+ "operationId": "delete_user_credentials_email",
398
+ "summary": "delete email/password credential",
399
+ "description": "Email/password login information for the specified user.",
400
+ "parameters": [
401
+ {
402
+ "name": "user_id",
403
+ "in": "path",
404
+ "description": "id of user",
405
+ "required": true,
406
+ "type": "integer",
407
+ "format": "int64"
408
+ }
409
+ ],
410
+ "responses": {
411
+ "404": {
412
+ "description": "Not Found",
413
+ "schema": {
414
+ "$ref": "Error"
415
+ }
416
+ },
417
+ "204": {
418
+ "description": "Successfully deleted.",
419
+ "schema": {
420
+ "type": "boolean"
421
+ }
422
+ }
423
+ }
424
+ }
425
+ },
426
+ "/users/{user_id}/credentials_totp": {
427
+ "get": {
428
+ "tags": [
429
+ "User"
430
+ ],
431
+ "operationId": "user_credentials_totp",
432
+ "summary": "get Two-factor credential",
433
+ "description": "Two-factor login information for the specified user.",
434
+ "parameters": [
435
+ {
436
+ "name": "user_id",
437
+ "in": "path",
438
+ "description": "id of user",
439
+ "required": true,
440
+ "type": "integer",
441
+ "format": "int64"
442
+ }
443
+ ],
444
+ "responses": {
445
+ "404": {
446
+ "description": "Not Found",
447
+ "schema": {
448
+ "$ref": "Error"
449
+ }
450
+ },
451
+ "200": {
452
+ "description": "Two-factor credential",
453
+ "schema": {
454
+ "$ref": "CredentialsTotp"
455
+ }
456
+ }
457
+ }
458
+ },
459
+ "post": {
460
+ "tags": [
461
+ "User"
462
+ ],
463
+ "operationId": "create_user_credentials_totp",
464
+ "summary": "create Two-factor credential",
465
+ "description": "Two-factor login information for the specified user.",
466
+ "parameters": [
467
+ {
468
+ "name": "user_id",
469
+ "in": "path",
470
+ "description": "id of user",
471
+ "required": true,
472
+ "type": "integer",
473
+ "format": "int64"
474
+ },
475
+ {
476
+ "name": "user_credentials_totp",
477
+ "in": "body",
478
+ "description": "Two-factor credential",
479
+ "required": false,
480
+ "schema": {
481
+ "$ref": "CredentialsTotp"
482
+ }
483
+ }
484
+ ],
485
+ "responses": {
486
+ "400": {
487
+ "description": "Bad Request",
488
+ "schema": {
489
+ "$ref": "Error"
490
+ }
491
+ },
492
+ "404": {
493
+ "description": "Not Found",
494
+ "schema": {
495
+ "$ref": "Error"
496
+ }
497
+ },
498
+ "200": {
499
+ "description": "Two-factor credential",
500
+ "schema": {
501
+ "$ref": "CredentialsTotp"
502
+ }
503
+ }
504
+ }
505
+ },
506
+ "delete": {
507
+ "tags": [
508
+ "User"
509
+ ],
510
+ "operationId": "delete_user_credentials_totp",
511
+ "summary": "delete Two-factor credential",
512
+ "description": "Two-factor login information for the specified user.",
513
+ "parameters": [
514
+ {
515
+ "name": "user_id",
516
+ "in": "path",
517
+ "description": "id of user",
518
+ "required": true,
519
+ "type": "integer",
520
+ "format": "int64"
521
+ }
522
+ ],
523
+ "responses": {
524
+ "404": {
525
+ "description": "Not Found",
526
+ "schema": {
527
+ "$ref": "Error"
528
+ }
529
+ },
530
+ "204": {
531
+ "description": "Successfully deleted.",
532
+ "schema": {
533
+ "type": "boolean"
534
+ }
535
+ }
536
+ }
537
+ }
538
+ },
539
+ "/users/{user_id}/credentials_api": {
540
+ "get": {
541
+ "tags": [
542
+ "User"
543
+ ],
544
+ "operationId": "user_credentials_api",
545
+ "summary": "get API credential",
546
+ "description": "API login information for the specified user. This is for 'API Users' used for the 'old' query API.",
547
+ "parameters": [
548
+ {
549
+ "name": "user_id",
550
+ "in": "path",
551
+ "description": "id of user",
552
+ "required": true,
553
+ "type": "integer",
554
+ "format": "int64"
555
+ }
556
+ ],
557
+ "responses": {
558
+ "404": {
559
+ "description": "Not Found",
560
+ "schema": {
561
+ "$ref": "Error"
562
+ }
563
+ },
564
+ "200": {
565
+ "description": "API credential",
566
+ "schema": {
567
+ "$ref": "CredentialsApi"
568
+ }
569
+ }
570
+ }
571
+ },
572
+ "post": {
573
+ "tags": [
574
+ "User"
575
+ ],
576
+ "operationId": "create_user_credentials_api",
577
+ "summary": "create API credential",
578
+ "description": "API login information for the specified user. This is for 'API Users' used for the 'old' query API.",
579
+ "parameters": [
580
+ {
581
+ "name": "user_id",
582
+ "in": "path",
583
+ "description": "id of user",
584
+ "required": true,
585
+ "type": "integer",
586
+ "format": "int64"
587
+ },
588
+ {
589
+ "name": "user_credentials_api",
590
+ "in": "body",
591
+ "description": "API credential",
592
+ "required": false,
593
+ "schema": {
594
+ "$ref": "CredentialsApi"
595
+ }
596
+ }
597
+ ],
598
+ "responses": {
599
+ "400": {
600
+ "description": "Bad Request",
601
+ "schema": {
602
+ "$ref": "Error"
603
+ }
604
+ },
605
+ "404": {
606
+ "description": "Not Found",
607
+ "schema": {
608
+ "$ref": "Error"
609
+ }
610
+ },
611
+ "200": {
612
+ "description": "API credential",
613
+ "schema": {
614
+ "$ref": "CredentialsApi"
615
+ }
616
+ }
617
+ }
618
+ },
619
+ "delete": {
620
+ "tags": [
621
+ "User"
622
+ ],
623
+ "operationId": "delete_user_credentials_api",
624
+ "summary": "delete API credential",
625
+ "description": "API login information for the specified user. This is for 'API Users' used for the 'old' query API.",
626
+ "parameters": [
627
+ {
628
+ "name": "user_id",
629
+ "in": "path",
630
+ "description": "id of user",
631
+ "required": true,
632
+ "type": "integer",
633
+ "format": "int64"
634
+ }
635
+ ],
636
+ "responses": {
637
+ "404": {
638
+ "description": "Not Found",
639
+ "schema": {
640
+ "$ref": "Error"
641
+ }
642
+ },
643
+ "204": {
644
+ "description": "Successfully deleted.",
645
+ "schema": {
646
+ "type": "boolean"
647
+ }
648
+ }
649
+ }
650
+ }
651
+ },
652
+ "/users/{user_id}/credentials_ldap": {
653
+ "get": {
654
+ "tags": [
655
+ "User"
656
+ ],
657
+ "operationId": "user_credentials_ldap",
658
+ "summary": "get LDAP credential",
659
+ "description": "LDAP login information for the specified user.",
660
+ "parameters": [
661
+ {
662
+ "name": "user_id",
663
+ "in": "path",
664
+ "description": "id of user",
665
+ "required": true,
666
+ "type": "integer",
667
+ "format": "int64"
668
+ }
669
+ ],
670
+ "responses": {
671
+ "404": {
672
+ "description": "Not Found",
673
+ "schema": {
674
+ "$ref": "Error"
675
+ }
676
+ },
677
+ "200": {
678
+ "description": "LDAP credential",
679
+ "schema": {
680
+ "$ref": "CredentialsLDAP"
681
+ }
682
+ }
683
+ }
684
+ },
685
+ "delete": {
686
+ "tags": [
687
+ "User"
688
+ ],
689
+ "operationId": "delete_user_credentials_ldap",
690
+ "summary": "delete LDAP credential",
691
+ "description": "LDAP login information for the specified user.",
692
+ "parameters": [
693
+ {
694
+ "name": "user_id",
695
+ "in": "path",
696
+ "description": "id of user",
697
+ "required": true,
698
+ "type": "integer",
699
+ "format": "int64"
700
+ }
701
+ ],
702
+ "responses": {
703
+ "404": {
704
+ "description": "Not Found",
705
+ "schema": {
706
+ "$ref": "Error"
707
+ }
708
+ },
709
+ "204": {
710
+ "description": "Successfully deleted.",
711
+ "schema": {
712
+ "type": "boolean"
713
+ }
714
+ }
715
+ }
716
+ }
717
+ },
718
+ "/users/{user_id}/credentials_google": {
719
+ "get": {
720
+ "tags": [
721
+ "User"
722
+ ],
723
+ "operationId": "user_credentials_google",
724
+ "summary": "get Google auth credential",
725
+ "description": "Google authentication login information for the specified user.",
726
+ "parameters": [
727
+ {
728
+ "name": "user_id",
729
+ "in": "path",
730
+ "description": "id of user",
731
+ "required": true,
732
+ "type": "integer",
733
+ "format": "int64"
734
+ }
735
+ ],
736
+ "responses": {
737
+ "404": {
738
+ "description": "Not Found",
739
+ "schema": {
740
+ "$ref": "Error"
741
+ }
742
+ },
743
+ "200": {
744
+ "description": "Google auth credential",
745
+ "schema": {
746
+ "$ref": "CredentialsGoogle"
747
+ }
748
+ }
749
+ }
750
+ },
751
+ "delete": {
752
+ "tags": [
753
+ "User"
754
+ ],
755
+ "operationId": "delete_user_credentials_google",
756
+ "summary": "delete Google auth credential",
757
+ "description": "Google authentication login information for the specified user.",
758
+ "parameters": [
759
+ {
760
+ "name": "user_id",
761
+ "in": "path",
762
+ "description": "id of user",
763
+ "required": true,
764
+ "type": "integer",
765
+ "format": "int64"
766
+ }
767
+ ],
768
+ "responses": {
769
+ "404": {
770
+ "description": "Not Found",
771
+ "schema": {
772
+ "$ref": "Error"
773
+ }
774
+ },
775
+ "204": {
776
+ "description": "Successfully deleted.",
777
+ "schema": {
778
+ "type": "boolean"
779
+ }
780
+ }
781
+ }
782
+ }
783
+ },
784
+ "/users/{user_id}/credentials_api3s": {
785
+ "get": {
786
+ "tags": [
787
+ "User"
788
+ ],
789
+ "operationId": "all_user_credentials_api3s",
790
+ "summary": "get all API 3 credentials",
791
+ "description": "API 3 login information for the specified user. This is for the newer API keys that can be added for any user.",
792
+ "parameters": [
793
+ {
794
+ "name": "user_id",
795
+ "in": "path",
796
+ "description": "id of user",
797
+ "required": true,
798
+ "type": "integer",
799
+ "format": "int64"
800
+ }
801
+ ],
802
+ "responses": {
803
+ "404": {
804
+ "description": "Not Found",
805
+ "schema": {
806
+ "$ref": "Error"
807
+ }
808
+ },
809
+ "200": {
810
+ "description": "API 3 credential",
811
+ "schema": {
812
+ "type": "array",
813
+ "items": {
814
+ "$ref": "CredentialsApi3"
815
+ }
816
+ }
817
+ }
818
+ }
819
+ }
820
+ },
821
+ "/users/{user_id}/credentials_api3/{credentials_api3_id}": {
822
+ "get": {
823
+ "tags": [
824
+ "User"
825
+ ],
826
+ "operationId": "user_credentials_api3",
827
+ "summary": "get API 3 credential",
828
+ "description": "API 3 login information for the specified user. This is for the newer API keys that can be added for any user.",
829
+ "parameters": [
830
+ {
831
+ "name": "user_id",
832
+ "in": "path",
833
+ "description": "id of user",
834
+ "required": true,
835
+ "type": "integer",
836
+ "format": "int64"
837
+ },
838
+ {
839
+ "name": "credentials_api3_id",
840
+ "in": "path",
841
+ "description": "id of API 3 credential",
842
+ "required": true,
843
+ "type": "integer",
844
+ "format": "int64"
845
+ }
846
+ ],
847
+ "responses": {
848
+ "404": {
849
+ "description": "Not Found",
850
+ "schema": {
851
+ "$ref": "Error"
852
+ }
853
+ },
854
+ "200": {
855
+ "description": "API 3 credential",
856
+ "schema": {
857
+ "$ref": "CredentialsApi3"
858
+ }
859
+ }
860
+ }
861
+ },
862
+ "delete": {
863
+ "tags": [
864
+ "User"
865
+ ],
866
+ "operationId": "delete_user_credentials_api3",
867
+ "summary": "delete API 3 credential",
868
+ "description": "API 3 login information for the specified user. This is for the newer API keys that can be added for any user.",
869
+ "parameters": [
870
+ {
871
+ "name": "user_id",
872
+ "in": "path",
873
+ "description": "id of user",
874
+ "required": true,
875
+ "type": "integer",
876
+ "format": "int64"
877
+ },
878
+ {
879
+ "name": "credentials_api3_id",
880
+ "in": "path",
881
+ "description": "id of API 3 credential",
882
+ "required": true,
883
+ "type": "integer",
884
+ "format": "int64"
885
+ }
886
+ ],
887
+ "responses": {
888
+ "404": {
889
+ "description": "Not Found",
890
+ "schema": {
891
+ "$ref": "Error"
892
+ }
893
+ },
894
+ "204": {
895
+ "description": "Successfully deleted.",
896
+ "schema": {
897
+ "type": "boolean"
898
+ }
899
+ }
900
+ }
901
+ }
902
+ },
903
+ "/users/{user_id}/credentials_api3": {
904
+ "post": {
905
+ "tags": [
906
+ "User"
907
+ ],
908
+ "operationId": "create_user_credentials_api3",
909
+ "summary": "create API 3 credential",
910
+ "description": "API 3 login information for the specified user. This is for the newer API keys that can be added for any user.",
911
+ "parameters": [
912
+ {
913
+ "name": "user_id",
914
+ "in": "path",
915
+ "description": "id of user",
916
+ "required": true,
917
+ "type": "integer",
918
+ "format": "int64"
919
+ },
920
+ {
921
+ "name": "user_credentials_api3",
922
+ "in": "body",
923
+ "description": "API 3 credential",
924
+ "required": false,
925
+ "schema": {
926
+ "$ref": "CredentialsApi3"
927
+ }
928
+ }
929
+ ],
930
+ "responses": {
931
+ "400": {
932
+ "description": "Bad Request",
933
+ "schema": {
934
+ "$ref": "Error"
935
+ }
936
+ },
937
+ "404": {
938
+ "description": "Not Found",
939
+ "schema": {
940
+ "$ref": "Error"
941
+ }
942
+ },
943
+ "200": {
944
+ "description": "API 3 credential",
945
+ "schema": {
946
+ "$ref": "CredentialsApi3"
947
+ }
948
+ }
949
+ }
950
+ }
951
+ },
952
+ "/users/{user_id}/credentials_embeds": {
953
+ "get": {
954
+ "tags": [
955
+ "User"
956
+ ],
957
+ "operationId": "all_user_credentials_embeds",
958
+ "summary": "get all Embedding credentials",
959
+ "description": "Embed login information for the specified user.",
960
+ "parameters": [
961
+ {
962
+ "name": "user_id",
963
+ "in": "path",
964
+ "description": "id of user",
965
+ "required": true,
966
+ "type": "integer",
967
+ "format": "int64"
968
+ }
969
+ ],
970
+ "responses": {
971
+ "404": {
972
+ "description": "Not Found",
973
+ "schema": {
974
+ "$ref": "Error"
975
+ }
976
+ },
977
+ "200": {
978
+ "description": "Embedding credential",
979
+ "schema": {
980
+ "type": "array",
981
+ "items": {
982
+ "$ref": "CredentialsEmbed"
983
+ }
984
+ }
985
+ }
986
+ }
987
+ }
988
+ },
989
+ "/users/{user_id}/credentials_embed/{credentials_embed_id}": {
990
+ "get": {
991
+ "tags": [
992
+ "User"
993
+ ],
994
+ "operationId": "user_credentials_embed",
995
+ "summary": "get Embedding credential",
996
+ "description": "Embed login information for the specified user.",
997
+ "parameters": [
998
+ {
999
+ "name": "user_id",
1000
+ "in": "path",
1001
+ "description": "id of user",
1002
+ "required": true,
1003
+ "type": "integer",
1004
+ "format": "int64"
1005
+ },
1006
+ {
1007
+ "name": "credentials_embed_id",
1008
+ "in": "path",
1009
+ "description": "id of Embedding credential",
1010
+ "required": true,
1011
+ "type": "integer",
1012
+ "format": "int64"
1013
+ }
1014
+ ],
1015
+ "responses": {
1016
+ "404": {
1017
+ "description": "Not Found",
1018
+ "schema": {
1019
+ "$ref": "Error"
1020
+ }
1021
+ },
1022
+ "200": {
1023
+ "description": "Embedding credential",
1024
+ "schema": {
1025
+ "$ref": "CredentialsEmbed"
1026
+ }
1027
+ }
1028
+ }
1029
+ },
1030
+ "delete": {
1031
+ "tags": [
1032
+ "User"
1033
+ ],
1034
+ "operationId": "delete_user_credentials_embed",
1035
+ "summary": "delete Embedding credential",
1036
+ "description": "Embed login information for the specified user.",
1037
+ "parameters": [
1038
+ {
1039
+ "name": "user_id",
1040
+ "in": "path",
1041
+ "description": "id of user",
1042
+ "required": true,
1043
+ "type": "integer",
1044
+ "format": "int64"
1045
+ },
1046
+ {
1047
+ "name": "credentials_embed_id",
1048
+ "in": "path",
1049
+ "description": "id of Embedding credential",
1050
+ "required": true,
1051
+ "type": "integer",
1052
+ "format": "int64"
1053
+ }
1054
+ ],
1055
+ "responses": {
1056
+ "404": {
1057
+ "description": "Not Found",
1058
+ "schema": {
1059
+ "$ref": "Error"
1060
+ }
1061
+ },
1062
+ "204": {
1063
+ "description": "Successfully deleted.",
1064
+ "schema": {
1065
+ "type": "boolean"
1066
+ }
1067
+ }
1068
+ }
1069
+ }
1070
+ },
1071
+ "/users/{user_id}/credentials_looker_openid": {
1072
+ "get": {
1073
+ "tags": [
1074
+ "User"
1075
+ ],
1076
+ "operationId": "user_credentials_looker_openid",
1077
+ "summary": "get Looker Openid credential",
1078
+ "description": "Looker Openid login information for the specified user. Used by Looker Analysts.",
1079
+ "parameters": [
1080
+ {
1081
+ "name": "user_id",
1082
+ "in": "path",
1083
+ "description": "id of user",
1084
+ "required": true,
1085
+ "type": "integer",
1086
+ "format": "int64"
1087
+ }
1088
+ ],
1089
+ "responses": {
1090
+ "404": {
1091
+ "description": "Not Found",
1092
+ "schema": {
1093
+ "$ref": "Error"
1094
+ }
1095
+ },
1096
+ "200": {
1097
+ "description": "Looker Openid credential",
1098
+ "schema": {
1099
+ "$ref": "CredentialsLookerOpenid"
1100
+ }
1101
+ }
1102
+ }
1103
+ },
1104
+ "delete": {
1105
+ "tags": [
1106
+ "User"
1107
+ ],
1108
+ "operationId": "delete_user_credentials_looker_openid",
1109
+ "summary": "delete Looker Openid credential",
1110
+ "description": "Looker Openid login information for the specified user. Used by Looker Analysts.",
1111
+ "parameters": [
1112
+ {
1113
+ "name": "user_id",
1114
+ "in": "path",
1115
+ "description": "id of user",
1116
+ "required": true,
1117
+ "type": "integer",
1118
+ "format": "int64"
1119
+ }
1120
+ ],
1121
+ "responses": {
1122
+ "404": {
1123
+ "description": "Not Found",
1124
+ "schema": {
1125
+ "$ref": "Error"
1126
+ }
1127
+ },
1128
+ "204": {
1129
+ "description": "Successfully deleted.",
1130
+ "schema": {
1131
+ "type": "boolean"
1132
+ }
1133
+ }
1134
+ }
1135
+ }
1136
+ },
1137
+ "/users/{user_id}/sessions": {
1138
+ "get": {
1139
+ "tags": [
1140
+ "User"
1141
+ ],
1142
+ "operationId": "all_user_sessions",
1143
+ "summary": "get all Web login sessions",
1144
+ "description": "Web login session for the specified user.",
1145
+ "parameters": [
1146
+ {
1147
+ "name": "user_id",
1148
+ "in": "path",
1149
+ "description": "id of user",
1150
+ "required": true,
1151
+ "type": "integer",
1152
+ "format": "int64"
1153
+ }
1154
+ ],
1155
+ "responses": {
1156
+ "404": {
1157
+ "description": "Not Found",
1158
+ "schema": {
1159
+ "$ref": "Error"
1160
+ }
1161
+ },
1162
+ "200": {
1163
+ "description": "Web login session",
1164
+ "schema": {
1165
+ "type": "array",
1166
+ "items": {
1167
+ "$ref": "Session"
1168
+ }
1169
+ }
1170
+ }
1171
+ }
1172
+ }
1173
+ },
1174
+ "/users/{user_id}/session/{session_id}": {
1175
+ "get": {
1176
+ "tags": [
1177
+ "User"
1178
+ ],
1179
+ "operationId": "user_session",
1180
+ "summary": "get Web login session",
1181
+ "description": "Web login session for the specified user.",
1182
+ "parameters": [
1183
+ {
1184
+ "name": "user_id",
1185
+ "in": "path",
1186
+ "description": "id of user",
1187
+ "required": true,
1188
+ "type": "integer",
1189
+ "format": "int64"
1190
+ },
1191
+ {
1192
+ "name": "session_id",
1193
+ "in": "path",
1194
+ "description": "id of Web login session",
1195
+ "required": true,
1196
+ "type": "integer",
1197
+ "format": "int64"
1198
+ }
1199
+ ],
1200
+ "responses": {
1201
+ "404": {
1202
+ "description": "Not Found",
1203
+ "schema": {
1204
+ "$ref": "Error"
1205
+ }
1206
+ },
1207
+ "200": {
1208
+ "description": "Web login session",
1209
+ "schema": {
1210
+ "$ref": "Session"
1211
+ }
1212
+ }
1213
+ }
1214
+ },
1215
+ "delete": {
1216
+ "tags": [
1217
+ "User"
1218
+ ],
1219
+ "operationId": "delete_user_session",
1220
+ "summary": "delete Web login session",
1221
+ "description": "Web login session for the specified user.",
1222
+ "parameters": [
1223
+ {
1224
+ "name": "user_id",
1225
+ "in": "path",
1226
+ "description": "id of user",
1227
+ "required": true,
1228
+ "type": "integer",
1229
+ "format": "int64"
1230
+ },
1231
+ {
1232
+ "name": "session_id",
1233
+ "in": "path",
1234
+ "description": "id of Web login session",
1235
+ "required": true,
1236
+ "type": "integer",
1237
+ "format": "int64"
1238
+ }
1239
+ ],
1240
+ "responses": {
1241
+ "404": {
1242
+ "description": "Not Found",
1243
+ "schema": {
1244
+ "$ref": "Error"
1245
+ }
1246
+ },
1247
+ "204": {
1248
+ "description": "Successfully deleted.",
1249
+ "schema": {
1250
+ "type": "boolean"
1251
+ }
1252
+ }
1253
+ }
1254
+ }
1255
+ },
1256
+ "/users/{user_id}/roles": {
1257
+ "get": {
1258
+ "tags": [
1259
+ "User"
1260
+ ],
1261
+ "operationId": "user_roles",
1262
+ "summary": "Get roles for a user",
1263
+ "description": "Get information about roles of the user with a specific id.\n",
1264
+ "parameters": [
1265
+ {
1266
+ "name": "user_id",
1267
+ "in": "path",
1268
+ "description": "id of user",
1269
+ "required": true,
1270
+ "type": "integer",
1271
+ "format": "int64"
1272
+ }
1273
+ ],
1274
+ "responses": {
1275
+ "400": {
1276
+ "description": "Bad Request",
1277
+ "schema": {
1278
+ "$ref": "Error"
1279
+ }
1280
+ },
1281
+ "404": {
1282
+ "description": "Not Found",
1283
+ "schema": {
1284
+ "$ref": "Error"
1285
+ }
1286
+ },
1287
+ "200": {
1288
+ "description": "Roles of user.",
1289
+ "schema": {
1290
+ "type": "array",
1291
+ "items": {
1292
+ "$ref": "Role"
1293
+ }
1294
+ }
1295
+ }
1296
+ }
1297
+ },
1298
+ "put": {
1299
+ "tags": [
1300
+ "User"
1301
+ ],
1302
+ "operationId": "set_user_roles",
1303
+ "summary": "Set roles for a user",
1304
+ "description": "Set roles of the user with a specific id.\n",
1305
+ "parameters": [
1306
+ {
1307
+ "name": "user_id",
1308
+ "in": "path",
1309
+ "description": "id of user",
1310
+ "required": true,
1311
+ "type": "integer",
1312
+ "format": "int64"
1313
+ },
1314
+ {
1315
+ "name": "roles",
1316
+ "in": "body",
1317
+ "description": "array of roles ids for user",
1318
+ "required": true,
1319
+ "schema": {
1320
+ "type": "array",
1321
+ "items": {
1322
+ "type": "integer",
1323
+ "format": "int64"
1324
+ }
1325
+ }
1326
+ }
1327
+ ],
1328
+ "responses": {
1329
+ "400": {
1330
+ "description": "Bad Request",
1331
+ "schema": {
1332
+ "$ref": "Error"
1333
+ }
1334
+ },
1335
+ "404": {
1336
+ "description": "Not Found",
1337
+ "schema": {
1338
+ "$ref": "Error"
1339
+ }
1340
+ },
1341
+ "200": {
1342
+ "description": "Roles of user.",
1343
+ "schema": {
1344
+ "type": "array",
1345
+ "items": {
1346
+ "$ref": "Role"
1347
+ }
1348
+ }
1349
+ }
1350
+ }
1351
+ }
1352
+ }
1353
+ },
1354
+ "definitions": {
1355
+ "Error": {
1356
+ "properties": {
1357
+ "message": {
1358
+ "type": "string",
1359
+ "readOnly": true,
1360
+ "description": "Error details"
1361
+ },
1362
+ "documentation_url": {
1363
+ "type": "string",
1364
+ "format": "uri",
1365
+ "readOnly": true,
1366
+ "description": "Documentation link"
1367
+ }
1368
+ },
1369
+ "required": [
1370
+ "message",
1371
+ "documentation_url"
1372
+ ]
1373
+ },
1374
+ "BackupConfiguration": {
1375
+ "properties": {
1376
+ "type": {
1377
+ "type": "string",
1378
+ "description": "Type of backup: looker-s3 or custom-s3"
1379
+ },
1380
+ "custom_s3_bucket": {
1381
+ "type": "string",
1382
+ "description": "Name of bucket for custom-s3 backups"
1383
+ },
1384
+ "custom_s3_key": {
1385
+ "type": "string",
1386
+ "description": "AWS S3 key used for custom-s3 backups"
1387
+ },
1388
+ "custom_s3_secret": {
1389
+ "type": "string",
1390
+ "description": "AWS S3 secret used for custom-s3 backups"
1391
+ },
1392
+ "url": {
1393
+ "type": "string",
1394
+ "format": "uri",
1395
+ "readOnly": true,
1396
+ "description": "Link to get this item"
1397
+ }
1398
+ }
1399
+ },
1400
+ "CredentialsApi3": {
1401
+ "properties": {
1402
+ "id": {
1403
+ "type": "integer",
1404
+ "format": "int64",
1405
+ "readOnly": true,
1406
+ "description": "Unique Id"
1407
+ },
1408
+ "client_id": {
1409
+ "type": "string",
1410
+ "readOnly": true,
1411
+ "description": "API key client_id"
1412
+ },
1413
+ "created_at": {
1414
+ "type": "string",
1415
+ "readOnly": true,
1416
+ "description": "Timestamp for the creation of this credential"
1417
+ },
1418
+ "is_disabled": {
1419
+ "type": "boolean",
1420
+ "readOnly": true,
1421
+ "description": "Has this credential been disabled?"
1422
+ },
1423
+ "type": {
1424
+ "type": "string",
1425
+ "readOnly": true,
1426
+ "description": "Short name for the type of this kind of credential"
1427
+ },
1428
+ "url": {
1429
+ "type": "string",
1430
+ "format": "uri",
1431
+ "readOnly": true,
1432
+ "description": "Link to get this item"
1433
+ }
1434
+ }
1435
+ },
1436
+ "CredentialsApi": {
1437
+ "properties": {
1438
+ "token": {
1439
+ "type": "string",
1440
+ "readOnly": true,
1441
+ "description": "API key token"
1442
+ },
1443
+ "created_at": {
1444
+ "type": "string",
1445
+ "readOnly": true,
1446
+ "description": "Timestamp for the creation of this credential"
1447
+ },
1448
+ "is_disabled": {
1449
+ "type": "boolean",
1450
+ "readOnly": true,
1451
+ "description": "Has this credential been disabled?"
1452
+ },
1453
+ "type": {
1454
+ "type": "string",
1455
+ "readOnly": true,
1456
+ "description": "Short name for the type of this kind of credential"
1457
+ },
1458
+ "url": {
1459
+ "type": "string",
1460
+ "format": "uri",
1461
+ "readOnly": true,
1462
+ "description": "Link to get this item"
1463
+ }
1464
+ }
1465
+ },
1466
+ "CredentialsEmail": {
1467
+ "properties": {
1468
+ "email": {
1469
+ "type": "string",
1470
+ "description": "EMail address used for user login"
1471
+ },
1472
+ "created_at": {
1473
+ "type": "string",
1474
+ "readOnly": true,
1475
+ "description": "Timestamp for the creation of this credential"
1476
+ },
1477
+ "logged_in_at": {
1478
+ "type": "string",
1479
+ "readOnly": true,
1480
+ "description": "Timestamp for most recent login using credential"
1481
+ },
1482
+ "is_disabled": {
1483
+ "type": "boolean",
1484
+ "readOnly": true,
1485
+ "description": "Has this credential been disabled?"
1486
+ },
1487
+ "type": {
1488
+ "type": "string",
1489
+ "readOnly": true,
1490
+ "description": "Short name for the type of this kind of credential"
1491
+ },
1492
+ "url": {
1493
+ "type": "string",
1494
+ "format": "uri",
1495
+ "readOnly": true,
1496
+ "description": "Link to get this item"
1497
+ },
1498
+ "user_url": {
1499
+ "type": "string",
1500
+ "format": "uri",
1501
+ "readOnly": true,
1502
+ "description": "Link to get this user"
1503
+ }
1504
+ }
1505
+ },
1506
+ "CredentialsEmbed": {
1507
+ "properties": {
1508
+ "id": {
1509
+ "type": "integer",
1510
+ "format": "int64",
1511
+ "readOnly": true,
1512
+ "description": "Unique Id"
1513
+ },
1514
+ "external_user_id": {
1515
+ "type": "string",
1516
+ "readOnly": true,
1517
+ "description": "Embedder's unique id for the user"
1518
+ },
1519
+ "created_at": {
1520
+ "type": "string",
1521
+ "readOnly": true,
1522
+ "description": "Timestamp for the creation of this credential"
1523
+ },
1524
+ "logged_in_at": {
1525
+ "type": "string",
1526
+ "readOnly": true,
1527
+ "description": "Timestamp for most recent login using credential"
1528
+ },
1529
+ "is_disabled": {
1530
+ "type": "boolean",
1531
+ "readOnly": true,
1532
+ "description": "Has this credential been disabled?"
1533
+ },
1534
+ "type": {
1535
+ "type": "string",
1536
+ "readOnly": true,
1537
+ "description": "Short name for the type of this kind of credential"
1538
+ },
1539
+ "url": {
1540
+ "type": "string",
1541
+ "format": "uri",
1542
+ "readOnly": true,
1543
+ "description": "Link to get this item"
1544
+ }
1545
+ }
1546
+ },
1547
+ "CredentialsGoogle": {
1548
+ "properties": {
1549
+ "email": {
1550
+ "type": "string",
1551
+ "readOnly": true,
1552
+ "description": "EMail address"
1553
+ },
1554
+ "google_user_id": {
1555
+ "type": "string",
1556
+ "readOnly": true,
1557
+ "description": "Google's Unique ID for this user"
1558
+ },
1559
+ "domain": {
1560
+ "type": "string",
1561
+ "readOnly": true,
1562
+ "description": "Google domain"
1563
+ },
1564
+ "created_at": {
1565
+ "type": "string",
1566
+ "readOnly": true,
1567
+ "description": "Timestamp for the creation of this credential"
1568
+ },
1569
+ "logged_in_at": {
1570
+ "type": "string",
1571
+ "readOnly": true,
1572
+ "description": "Timestamp for most recent login using credential"
1573
+ },
1574
+ "is_disabled": {
1575
+ "type": "boolean",
1576
+ "readOnly": true,
1577
+ "description": "Has this credential been disabled?"
1578
+ },
1579
+ "type": {
1580
+ "type": "string",
1581
+ "readOnly": true,
1582
+ "description": "Short name for the type of this kind of credential"
1583
+ },
1584
+ "url": {
1585
+ "type": "string",
1586
+ "format": "uri",
1587
+ "readOnly": true,
1588
+ "description": "Link to get this item"
1589
+ }
1590
+ }
1591
+ },
1592
+ "CredentialsLDAP": {
1593
+ "properties": {
1594
+ "email": {
1595
+ "type": "string",
1596
+ "readOnly": true,
1597
+ "description": "EMail address"
1598
+ },
1599
+ "ldap_id": {
1600
+ "type": "string",
1601
+ "readOnly": true,
1602
+ "description": "LDAP Unique ID for this user"
1603
+ },
1604
+ "ldap_dn": {
1605
+ "type": "string",
1606
+ "readOnly": true,
1607
+ "description": "LDAP Distinguished name for this user (as-of the last login)"
1608
+ },
1609
+ "created_at": {
1610
+ "type": "string",
1611
+ "readOnly": true,
1612
+ "description": "Timestamp for the creation of this credential"
1613
+ },
1614
+ "logged_in_at": {
1615
+ "type": "string",
1616
+ "readOnly": true,
1617
+ "description": "Timestamp for most recent login using credential"
1618
+ },
1619
+ "is_disabled": {
1620
+ "type": "boolean",
1621
+ "readOnly": true,
1622
+ "description": "Has this credential been disabled?"
1623
+ },
1624
+ "type": {
1625
+ "type": "string",
1626
+ "readOnly": true,
1627
+ "description": "Short name for the type of this kind of credential"
1628
+ },
1629
+ "url": {
1630
+ "type": "string",
1631
+ "format": "uri",
1632
+ "readOnly": true,
1633
+ "description": "Link to get this item"
1634
+ }
1635
+ }
1636
+ },
1637
+ "CredentialsLookerOpenid": {
1638
+ "properties": {
1639
+ "email": {
1640
+ "type": "string",
1641
+ "readOnly": true,
1642
+ "description": "EMail address used for user login"
1643
+ },
1644
+ "created_at": {
1645
+ "type": "string",
1646
+ "readOnly": true,
1647
+ "description": "Timestamp for the creation of this credential"
1648
+ },
1649
+ "logged_in_at": {
1650
+ "type": "string",
1651
+ "readOnly": true,
1652
+ "description": "Timestamp for most recent login using credential"
1653
+ },
1654
+ "logged_in_ip": {
1655
+ "type": "string",
1656
+ "readOnly": true,
1657
+ "description": "IP address of client for most recent login using credential"
1658
+ },
1659
+ "is_disabled": {
1660
+ "type": "boolean",
1661
+ "readOnly": true,
1662
+ "description": "Has this credential been disabled?"
1663
+ },
1664
+ "type": {
1665
+ "type": "string",
1666
+ "readOnly": true,
1667
+ "description": "Short name for the type of this kind of credential"
1668
+ },
1669
+ "url": {
1670
+ "type": "string",
1671
+ "format": "uri",
1672
+ "readOnly": true,
1673
+ "description": "Link to get this item"
1674
+ },
1675
+ "user_url": {
1676
+ "type": "string",
1677
+ "format": "uri",
1678
+ "readOnly": true,
1679
+ "description": "Link to get this user"
1680
+ }
1681
+ }
1682
+ },
1683
+ "CredentialsTotp": {
1684
+ "properties": {
1685
+ "verified": {
1686
+ "type": "boolean",
1687
+ "readOnly": true,
1688
+ "description": "User has verified"
1689
+ },
1690
+ "created_at": {
1691
+ "type": "string",
1692
+ "readOnly": true,
1693
+ "description": "Timestamp for the creation of this credential"
1694
+ },
1695
+ "is_disabled": {
1696
+ "type": "boolean",
1697
+ "readOnly": true,
1698
+ "description": "Has this credential been disabled?"
1699
+ },
1700
+ "type": {
1701
+ "type": "string",
1702
+ "readOnly": true,
1703
+ "description": "Short name for the type of this kind of credential"
1704
+ },
1705
+ "url": {
1706
+ "type": "string",
1707
+ "format": "uri",
1708
+ "readOnly": true,
1709
+ "description": "Link to get this item"
1710
+ }
1711
+ }
1712
+ },
1713
+ "ValidationError": {
1714
+ "properties": {
1715
+ "message": {
1716
+ "type": "string",
1717
+ "readOnly": true
1718
+ },
1719
+ "errors": {
1720
+ "type": "string",
1721
+ "readOnly": true
1722
+ },
1723
+ "documentation_url": {
1724
+ "type": "string",
1725
+ "format": "uri",
1726
+ "readOnly": true,
1727
+ "description": "Documentation link"
1728
+ }
1729
+ },
1730
+ "required": [
1731
+ "message",
1732
+ "documentation_url"
1733
+ ]
1734
+ },
1735
+ "Role": {
1736
+ "properties": {
1737
+ "id": {
1738
+ "type": "integer",
1739
+ "format": "int64",
1740
+ "readOnly": true,
1741
+ "description": "Unique Id"
1742
+ },
1743
+ "name": {
1744
+ "type": "string",
1745
+ "description": "Name of Role"
1746
+ },
1747
+ "permission_set": {
1748
+ "$ref": "PermissionSet"
1749
+ },
1750
+ "model_set": {
1751
+ "$ref": "ModelSet"
1752
+ },
1753
+ "url": {
1754
+ "type": "string",
1755
+ "format": "uri",
1756
+ "readOnly": true,
1757
+ "description": "Link to get this item"
1758
+ },
1759
+ "users_url": {
1760
+ "type": "string",
1761
+ "format": "uri",
1762
+ "readOnly": true,
1763
+ "description": "Link to get list of users with this role"
1764
+ }
1765
+ }
1766
+ },
1767
+ "Session": {
1768
+ "properties": {
1769
+ "id": {
1770
+ "type": "integer",
1771
+ "format": "int64",
1772
+ "readOnly": true,
1773
+ "description": "Unique Id"
1774
+ },
1775
+ "ip_address": {
1776
+ "type": "string",
1777
+ "readOnly": true,
1778
+ "description": "IP address of user when this session was initiated"
1779
+ },
1780
+ "browser": {
1781
+ "type": "string",
1782
+ "readOnly": true,
1783
+ "description": "User's browser type"
1784
+ },
1785
+ "operating_system": {
1786
+ "type": "string",
1787
+ "readOnly": true,
1788
+ "description": "User's Operating System"
1789
+ },
1790
+ "city": {
1791
+ "type": "string",
1792
+ "readOnly": true,
1793
+ "description": "City component of user location (derived from IP address)"
1794
+ },
1795
+ "state": {
1796
+ "type": "string",
1797
+ "readOnly": true,
1798
+ "description": "State component of user location (derived from IP address)"
1799
+ },
1800
+ "country": {
1801
+ "type": "string",
1802
+ "readOnly": true,
1803
+ "description": "Country component of user location (derived from IP address)"
1804
+ },
1805
+ "credentials_type": {
1806
+ "type": "string",
1807
+ "readOnly": true,
1808
+ "description": "Type of credentials used for logging in this session"
1809
+ },
1810
+ "extended_at": {
1811
+ "type": "string",
1812
+ "readOnly": true,
1813
+ "description": "Time when this session was last extended by the user"
1814
+ },
1815
+ "extended_count": {
1816
+ "type": "integer",
1817
+ "format": "int64",
1818
+ "readOnly": true,
1819
+ "description": "Number of times this session was extended"
1820
+ },
1821
+ "sudo_user_id": {
1822
+ "type": "integer",
1823
+ "format": "int64",
1824
+ "readOnly": true,
1825
+ "description": "Actual user in the case when this session represents one user sudo'ing as another"
1826
+ },
1827
+ "created_at": {
1828
+ "type": "string",
1829
+ "readOnly": true,
1830
+ "description": "Time when this session was initiated"
1831
+ },
1832
+ "expires_at": {
1833
+ "type": "string",
1834
+ "readOnly": true,
1835
+ "description": "Time when this session will expire"
1836
+ },
1837
+ "url": {
1838
+ "type": "string",
1839
+ "format": "uri",
1840
+ "readOnly": true,
1841
+ "description": "Link to get this item"
1842
+ }
1843
+ }
1844
+ },
1845
+ "User": {
1846
+ "properties": {
1847
+ "id": {
1848
+ "type": "integer",
1849
+ "format": "int64",
1850
+ "readOnly": true,
1851
+ "description": "Unique Id"
1852
+ },
1853
+ "first_name": {
1854
+ "type": "string",
1855
+ "description": "First name"
1856
+ },
1857
+ "last_name": {
1858
+ "type": "string",
1859
+ "description": "Last name"
1860
+ },
1861
+ "display_name": {
1862
+ "type": "string",
1863
+ "readOnly": true,
1864
+ "description": "Full name for display (available only if both first_name and last_name are set)"
1865
+ },
1866
+ "email": {
1867
+ "type": "string",
1868
+ "readOnly": true,
1869
+ "description": "EMail address"
1870
+ },
1871
+ "is_disabled": {
1872
+ "type": "boolean",
1873
+ "description": "Account has been disabled"
1874
+ },
1875
+ "avatar_url": {
1876
+ "type": "string",
1877
+ "format": "uri",
1878
+ "readOnly": true,
1879
+ "description": "URL for the avatar image (may be generic)"
1880
+ },
1881
+ "home_space_id": {
1882
+ "type": "string",
1883
+ "description": "ID string for user's home space"
1884
+ },
1885
+ "access_filters": {
1886
+ "type": "string",
1887
+ "description": "Model access filters. Of the form: '{model => {key => value}, model2 => {key1 => value1, key2 => value2}}'"
1888
+ },
1889
+ "credentials_email": {
1890
+ "$ref": "CredentialsEmail",
1891
+ "readOnly": true,
1892
+ "description": "Email/Password login credentials"
1893
+ },
1894
+ "credentials_totp": {
1895
+ "$ref": "CredentialsTotp",
1896
+ "readOnly": true,
1897
+ "description": "Two-factor credentials"
1898
+ },
1899
+ "credentials_ldap": {
1900
+ "$ref": "CredentialsLDAP",
1901
+ "readOnly": true,
1902
+ "description": "LDAP credentials"
1903
+ },
1904
+ "credentials_google": {
1905
+ "$ref": "CredentialsGoogle",
1906
+ "readOnly": true,
1907
+ "description": "Google auth credentials"
1908
+ },
1909
+ "credentials_api": {
1910
+ "$ref": "CredentialsApi",
1911
+ "readOnly": true,
1912
+ "description": "API user credentials"
1913
+ },
1914
+ "credentials_api3": {
1915
+ "type": "array",
1916
+ "items": {
1917
+ "$ref": "CredentialsApi3"
1918
+ },
1919
+ "readOnly": true,
1920
+ "description": "API 3 credentials"
1921
+ },
1922
+ "credentials_embed": {
1923
+ "type": "array",
1924
+ "items": {
1925
+ "$ref": "CredentialsEmbed"
1926
+ },
1927
+ "readOnly": true,
1928
+ "description": "Embed credentials"
1929
+ },
1930
+ "credentials_looker_openid": {
1931
+ "$ref": "CredentialsLookerOpenid",
1932
+ "readOnly": true,
1933
+ "description": "LookerOpenID credentials. Used for login by Looker Analysts"
1934
+ },
1935
+ "sessions": {
1936
+ "type": "array",
1937
+ "items": {
1938
+ "$ref": "Session"
1939
+ },
1940
+ "readOnly": true,
1941
+ "description": "Active sessions"
1942
+ },
1943
+ "role_ids": {
1944
+ "type": "array",
1945
+ "items": {
1946
+ "type": "integer",
1947
+ "format": "int64"
1948
+ },
1949
+ "readOnly": true,
1950
+ "description": "Array of ids of the roles for this user"
1951
+ },
1952
+ "is_looker_employee": {
1953
+ "type": "boolean",
1954
+ "readOnly": true,
1955
+ "description": "User is identified as an emplpoyee of Looker"
1956
+ },
1957
+ "url": {
1958
+ "type": "string",
1959
+ "format": "uri",
1960
+ "readOnly": true,
1961
+ "description": "Link to get this item"
1962
+ }
1963
+ }
1964
+ },
1965
+ "UserPublic": {
1966
+ "properties": {
1967
+ "id": {
1968
+ "type": "integer",
1969
+ "format": "int64",
1970
+ "readOnly": true,
1971
+ "description": "Unique Id"
1972
+ },
1973
+ "first_name": {
1974
+ "type": "string",
1975
+ "readOnly": true,
1976
+ "description": "First Name"
1977
+ },
1978
+ "last_name": {
1979
+ "type": "string",
1980
+ "readOnly": true,
1981
+ "description": "Last Name"
1982
+ },
1983
+ "avatar_url": {
1984
+ "type": "string",
1985
+ "format": "uri",
1986
+ "readOnly": true,
1987
+ "description": "URL for the avatar image (may be generic)"
1988
+ },
1989
+ "url": {
1990
+ "type": "string",
1991
+ "format": "uri",
1992
+ "readOnly": true,
1993
+ "description": "Link to get this item"
1994
+ }
1995
+ }
1996
+ }
1997
+ }
1998
+ }