@snokam/mcp-api 0.194.1 → 0.196.0

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.
@@ -0,0 +1,4630 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "Employees API",
5
+ "description": "Employee management service",
6
+ "version": "v1.0.0"
7
+ },
8
+ "servers": [
9
+ {
10
+ "url": "https://employees.api.snokam.no"
11
+ }
12
+ ],
13
+ "paths": {
14
+ "/v1.0/cvs": {
15
+ "get": {
16
+ "tags": [
17
+ "CV"
18
+ ],
19
+ "summary": "Gets CV data for all consultants",
20
+ "description": "Retrieves CV data for all consultants from CvPartner, including technologies, roles, about, and CV text.",
21
+ "operationId": "GetEmployeesCv",
22
+ "responses": {
23
+ "200": {
24
+ "description": "List of consultant CV profiles retrieved successfully",
25
+ "content": {
26
+ "application/json": {
27
+ "schema": {
28
+ "type": "array",
29
+ "items": {
30
+ "$ref": "#/components/schemas/consultantCv"
31
+ }
32
+ }
33
+ }
34
+ },
35
+ "x-ms-summary": "Success"
36
+ },
37
+ "401": {
38
+ "description": "User is not authorized",
39
+ "x-ms-summary": "Unauthorized"
40
+ }
41
+ },
42
+ "security": [
43
+ {
44
+ "Implicit": [
45
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
46
+ ]
47
+ },
48
+ {
49
+ "ApiKey": []
50
+ }
51
+ ]
52
+ }
53
+ },
54
+ "/v1.0/presentations": {
55
+ "get": {
56
+ "tags": [
57
+ "CV"
58
+ ],
59
+ "summary": "Gets all presentations held by consultants",
60
+ "description": "Aggregates the presentations listed across all consultant CVs in CvPartner, including the speaker for each presentation. Public endpoint used by the snokam.no/presentasjoner page.",
61
+ "operationId": "GetPresentations",
62
+ "responses": {
63
+ "200": {
64
+ "description": "List of presentations retrieved successfully",
65
+ "content": {
66
+ "application/json": {
67
+ "schema": {
68
+ "type": "array",
69
+ "items": {
70
+ "$ref": "#/components/schemas/consultantPresentation"
71
+ }
72
+ }
73
+ }
74
+ },
75
+ "x-ms-summary": "Success"
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "/v1.0/cvs/my-cv": {
81
+ "get": {
82
+ "tags": [
83
+ "CV"
84
+ ],
85
+ "summary": "Gets CV data for the authenticated user",
86
+ "description": "Retrieves CV data for the currently authenticated consultant from CvPartner.",
87
+ "operationId": "GetMyCv",
88
+ "responses": {
89
+ "200": {
90
+ "description": "Authenticated user's CV profile retrieved successfully",
91
+ "content": {
92
+ "application/json": {
93
+ "schema": {
94
+ "$ref": "#/components/schemas/consultantCv"
95
+ }
96
+ }
97
+ },
98
+ "x-ms-summary": "Success"
99
+ },
100
+ "401": {
101
+ "description": "User is not authorized",
102
+ "x-ms-summary": "Unauthorized"
103
+ },
104
+ "404": {
105
+ "description": "Employee not found in CvPartner",
106
+ "x-ms-summary": "Not Found"
107
+ }
108
+ },
109
+ "security": [
110
+ {
111
+ "Implicit": [
112
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
113
+ ]
114
+ },
115
+ {
116
+ "ApiKey": []
117
+ }
118
+ ]
119
+ }
120
+ },
121
+ "/v1.0/cvs/{slug}": {
122
+ "get": {
123
+ "tags": [
124
+ "CV"
125
+ ],
126
+ "summary": "Gets CV data for a specific employee by slug",
127
+ "description": "Retrieves CV data for a specific consultant from CvPartner by their Sanity slug (e.g. 'hakon-grotte').",
128
+ "operationId": "GetEmployeeCvBySlug",
129
+ "parameters": [
130
+ {
131
+ "name": "slug",
132
+ "in": "path",
133
+ "required": true,
134
+ "schema": {
135
+ "type": "string"
136
+ }
137
+ }
138
+ ],
139
+ "responses": {
140
+ "200": {
141
+ "description": "Payload of ConsultantCv",
142
+ "content": {
143
+ "application/json": {
144
+ "schema": {
145
+ "$ref": "#/components/schemas/consultantCv"
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "404": {
151
+ "description": "No description"
152
+ }
153
+ },
154
+ "security": [
155
+ {
156
+ "Implicit": [
157
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
158
+ ]
159
+ },
160
+ {
161
+ "ApiKey": []
162
+ }
163
+ ]
164
+ }
165
+ },
166
+ "/v1.0/me/cv/pdf": {
167
+ "get": {
168
+ "tags": [
169
+ "CV"
170
+ ],
171
+ "summary": "Downloads the authenticated user's CV as PDF",
172
+ "operationId": "GetMyCvPdf",
173
+ "responses": {
174
+ "200": {
175
+ "description": "Payload of Array of Byte",
176
+ "content": {
177
+ "application/pdf": {
178
+ "schema": {
179
+ "type": "string",
180
+ "format": "binary"
181
+ }
182
+ }
183
+ }
184
+ },
185
+ "401": {
186
+ "description": "No description"
187
+ },
188
+ "404": {
189
+ "description": "No description"
190
+ }
191
+ },
192
+ "security": [
193
+ {
194
+ "Implicit": [
195
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
196
+ ]
197
+ },
198
+ {
199
+ "ApiKey": []
200
+ }
201
+ ]
202
+ }
203
+ },
204
+ "/v1.0/cvs/{slug}/pdf": {
205
+ "get": {
206
+ "tags": [
207
+ "CV"
208
+ ],
209
+ "summary": "Downloads a specific consultant's CV as PDF by slug",
210
+ "operationId": "GetEmployeeCvPdfBySlug",
211
+ "parameters": [
212
+ {
213
+ "name": "slug",
214
+ "in": "path",
215
+ "required": true,
216
+ "schema": {
217
+ "type": "string"
218
+ }
219
+ }
220
+ ],
221
+ "responses": {
222
+ "200": {
223
+ "description": "Payload of Array of Byte",
224
+ "content": {
225
+ "application/pdf": {
226
+ "schema": {
227
+ "type": "string",
228
+ "format": "binary"
229
+ }
230
+ }
231
+ }
232
+ },
233
+ "401": {
234
+ "description": "No description"
235
+ },
236
+ "404": {
237
+ "description": "No description"
238
+ }
239
+ },
240
+ "security": [
241
+ {
242
+ "Implicit": [
243
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
244
+ ]
245
+ },
246
+ {
247
+ "ApiKey": []
248
+ }
249
+ ]
250
+ }
251
+ },
252
+ "/v1.0/proposals": {
253
+ "post": {
254
+ "tags": [
255
+ "Proposals"
256
+ ],
257
+ "summary": "Create a Flowcase proposal",
258
+ "operationId": "CreateProposal",
259
+ "requestBody": {
260
+ "content": {
261
+ "application/json": {
262
+ "schema": {
263
+ "$ref": "#/components/schemas/createProposalRequest"
264
+ }
265
+ }
266
+ },
267
+ "required": true
268
+ },
269
+ "responses": {
270
+ "201": {
271
+ "description": "Payload of FlowcaseProposal",
272
+ "content": {
273
+ "application/json": {
274
+ "schema": {
275
+ "$ref": "#/components/schemas/flowcaseProposal"
276
+ }
277
+ }
278
+ }
279
+ }
280
+ },
281
+ "security": [
282
+ {
283
+ "Implicit": [
284
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
285
+ ]
286
+ },
287
+ {
288
+ "ApiKey": []
289
+ }
290
+ ]
291
+ }
292
+ },
293
+ "/v1.0/proposals/{proposalId}": {
294
+ "get": {
295
+ "tags": [
296
+ "Proposals"
297
+ ],
298
+ "summary": "Get a Flowcase proposal by id",
299
+ "operationId": "GetProposal",
300
+ "parameters": [
301
+ {
302
+ "name": "proposalId",
303
+ "in": "path",
304
+ "required": true,
305
+ "schema": {
306
+ "type": "string"
307
+ }
308
+ }
309
+ ],
310
+ "responses": {
311
+ "200": {
312
+ "description": "Payload of FlowcaseProposal",
313
+ "content": {
314
+ "application/json": {
315
+ "schema": {
316
+ "$ref": "#/components/schemas/flowcaseProposal"
317
+ }
318
+ }
319
+ }
320
+ },
321
+ "404": {
322
+ "description": "No description"
323
+ }
324
+ },
325
+ "security": [
326
+ {
327
+ "Implicit": [
328
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
329
+ ]
330
+ },
331
+ {
332
+ "ApiKey": []
333
+ }
334
+ ]
335
+ },
336
+ "patch": {
337
+ "tags": [
338
+ "Proposals"
339
+ ],
340
+ "summary": "Update / patch a Flowcase proposal",
341
+ "operationId": "UpdateProposal",
342
+ "parameters": [
343
+ {
344
+ "name": "proposalId",
345
+ "in": "path",
346
+ "required": true,
347
+ "schema": {
348
+ "type": "string"
349
+ }
350
+ }
351
+ ],
352
+ "requestBody": {
353
+ "content": {
354
+ "application/json": {
355
+ "schema": {
356
+ "$ref": "#/components/schemas/updateProposalRequest"
357
+ }
358
+ }
359
+ },
360
+ "required": true
361
+ },
362
+ "responses": {
363
+ "200": {
364
+ "description": "Payload of FlowcaseProposal",
365
+ "content": {
366
+ "application/json": {
367
+ "schema": {
368
+ "$ref": "#/components/schemas/flowcaseProposal"
369
+ }
370
+ }
371
+ }
372
+ }
373
+ },
374
+ "security": [
375
+ {
376
+ "Implicit": [
377
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
378
+ ]
379
+ },
380
+ {
381
+ "ApiKey": []
382
+ }
383
+ ]
384
+ },
385
+ "delete": {
386
+ "tags": [
387
+ "Proposals"
388
+ ],
389
+ "summary": "Archive a proposal — Flowcase has no hard-delete; we PUT archived=true.",
390
+ "operationId": "ArchiveProposal",
391
+ "parameters": [
392
+ {
393
+ "name": "proposalId",
394
+ "in": "path",
395
+ "required": true,
396
+ "schema": {
397
+ "type": "string"
398
+ }
399
+ }
400
+ ],
401
+ "responses": {
402
+ "200": {
403
+ "description": "Payload of FlowcaseProposal",
404
+ "content": {
405
+ "application/json": {
406
+ "schema": {
407
+ "$ref": "#/components/schemas/flowcaseProposal"
408
+ }
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "security": [
414
+ {
415
+ "Implicit": [
416
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
417
+ ]
418
+ },
419
+ {
420
+ "ApiKey": []
421
+ }
422
+ ]
423
+ }
424
+ },
425
+ "/v1.0/proposals/{proposalId}/cvs": {
426
+ "post": {
427
+ "tags": [
428
+ "Proposals"
429
+ ],
430
+ "summary": "Attach a consultant's CV to a proposal; Flowcase copies the default CV into an editable tailored CV.",
431
+ "operationId": "AttachCvToProposal",
432
+ "parameters": [
433
+ {
434
+ "name": "proposalId",
435
+ "in": "path",
436
+ "required": true,
437
+ "schema": {
438
+ "type": "string"
439
+ }
440
+ }
441
+ ],
442
+ "requestBody": {
443
+ "content": {
444
+ "application/json": {
445
+ "schema": {
446
+ "$ref": "#/components/schemas/addCvToProposalRequest"
447
+ }
448
+ }
449
+ },
450
+ "required": true
451
+ },
452
+ "responses": {
453
+ "201": {
454
+ "description": "Payload of FlowcaseTailoredCv",
455
+ "content": {
456
+ "application/json": {
457
+ "schema": {
458
+ "$ref": "#/components/schemas/flowcaseTailoredCv"
459
+ }
460
+ }
461
+ }
462
+ }
463
+ },
464
+ "security": [
465
+ {
466
+ "Implicit": [
467
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
468
+ ]
469
+ },
470
+ {
471
+ "ApiKey": []
472
+ }
473
+ ]
474
+ }
475
+ },
476
+ "/v1.0/proposals/{proposalId}/cvs/{tailoredCvId}": {
477
+ "delete": {
478
+ "tags": [
479
+ "Proposals"
480
+ ],
481
+ "summary": "Remove a tailored CV from a proposal.",
482
+ "operationId": "DetachCvFromProposal",
483
+ "parameters": [
484
+ {
485
+ "name": "proposalId",
486
+ "in": "path",
487
+ "required": true,
488
+ "schema": {
489
+ "type": "string"
490
+ }
491
+ },
492
+ {
493
+ "name": "tailoredCvId",
494
+ "in": "path",
495
+ "required": true,
496
+ "schema": {
497
+ "type": "string"
498
+ }
499
+ }
500
+ ],
501
+ "responses": {
502
+ "204": {
503
+ "description": "No description"
504
+ }
505
+ },
506
+ "security": [
507
+ {
508
+ "Implicit": [
509
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
510
+ ]
511
+ },
512
+ {
513
+ "ApiKey": []
514
+ }
515
+ ]
516
+ }
517
+ },
518
+ "/v1.0/cvs/users/{userId}/{cvId}/pdf": {
519
+ "get": {
520
+ "tags": [
521
+ "Proposals"
522
+ ],
523
+ "summary": "Download any CV (including tailored CVs) as PDF by user_id + cv_id.",
524
+ "operationId": "DownloadTailoredCvPdf",
525
+ "parameters": [
526
+ {
527
+ "name": "userId",
528
+ "in": "path",
529
+ "required": true,
530
+ "schema": {
531
+ "type": "string"
532
+ }
533
+ },
534
+ {
535
+ "name": "cvId",
536
+ "in": "path",
537
+ "required": true,
538
+ "schema": {
539
+ "type": "string"
540
+ }
541
+ }
542
+ ],
543
+ "responses": {
544
+ "200": {
545
+ "description": "Payload of Array of Byte",
546
+ "content": {
547
+ "application/pdf": {
548
+ "schema": {
549
+ "type": "string",
550
+ "format": "binary"
551
+ }
552
+ }
553
+ }
554
+ },
555
+ "404": {
556
+ "description": "No description"
557
+ }
558
+ },
559
+ "security": [
560
+ {
561
+ "Implicit": [
562
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
563
+ ]
564
+ },
565
+ {
566
+ "ApiKey": []
567
+ }
568
+ ]
569
+ }
570
+ },
571
+ "/v1.0/cvs/users/{userId}/{cvId}": {
572
+ "get": {
573
+ "tags": [
574
+ "Proposals"
575
+ ],
576
+ "summary": "Get any CV (including tailored CVs) as raw Flowcase JSON by user_id + cv_id.",
577
+ "operationId": "GetRawCv",
578
+ "parameters": [
579
+ {
580
+ "name": "userId",
581
+ "in": "path",
582
+ "required": true,
583
+ "schema": {
584
+ "type": "string"
585
+ }
586
+ },
587
+ {
588
+ "name": "cvId",
589
+ "in": "path",
590
+ "required": true,
591
+ "schema": {
592
+ "type": "string"
593
+ }
594
+ }
595
+ ],
596
+ "responses": {
597
+ "200": {
598
+ "description": "Payload of Object",
599
+ "content": {
600
+ "application/json": {
601
+ "schema": {
602
+ "type": "object"
603
+ }
604
+ }
605
+ }
606
+ },
607
+ "404": {
608
+ "description": "No description"
609
+ }
610
+ },
611
+ "security": [
612
+ {
613
+ "Implicit": [
614
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
615
+ ]
616
+ },
617
+ {
618
+ "ApiKey": []
619
+ }
620
+ ]
621
+ }
622
+ },
623
+ "/v1.0/cvs/users/{userId}/{cvId}/sections/{sectionType}/{sectionId}": {
624
+ "put": {
625
+ "tags": [
626
+ "CV"
627
+ ],
628
+ "summary": "Edit a single CV section (PUT /v3/cvs/{user}/{cv}/{section_type}/{section_id}).",
629
+ "operationId": "UpdateCvSection",
630
+ "parameters": [
631
+ {
632
+ "name": "userId",
633
+ "in": "path",
634
+ "required": true,
635
+ "schema": {
636
+ "type": "string"
637
+ }
638
+ },
639
+ {
640
+ "name": "cvId",
641
+ "in": "path",
642
+ "required": true,
643
+ "schema": {
644
+ "type": "string"
645
+ }
646
+ },
647
+ {
648
+ "name": "sectionType",
649
+ "in": "path",
650
+ "required": true,
651
+ "schema": {
652
+ "type": "string"
653
+ }
654
+ },
655
+ {
656
+ "name": "sectionId",
657
+ "in": "path",
658
+ "required": true,
659
+ "schema": {
660
+ "type": "string"
661
+ }
662
+ }
663
+ ],
664
+ "requestBody": {
665
+ "description": "Section body — shape depends on section_type (see Flowcase CV API).",
666
+ "content": {
667
+ "application/json": {
668
+ "schema": {
669
+ "type": "object"
670
+ }
671
+ }
672
+ },
673
+ "required": true
674
+ },
675
+ "responses": {
676
+ "204": {
677
+ "description": "No description"
678
+ }
679
+ },
680
+ "security": [
681
+ {
682
+ "Implicit": [
683
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
684
+ ]
685
+ },
686
+ {
687
+ "ApiKey": []
688
+ }
689
+ ]
690
+ }
691
+ },
692
+ "/v1.0/public/{slugOrId}/cv": {
693
+ "get": {
694
+ "tags": [
695
+ "Public"
696
+ ],
697
+ "summary": "Gets the full CV for a public employee by slug or id",
698
+ "description": "Resolves the employee by Sanity slug or id and returns the verbatim CvPartner (Flowcase) CV payload, including project experiences, recommendations and presentations.",
699
+ "operationId": "GetPublicEmployeeCv",
700
+ "parameters": [
701
+ {
702
+ "name": "slugOrId",
703
+ "in": "path",
704
+ "description": "The slug or id of the public employee whose CV to retrieve",
705
+ "required": true,
706
+ "schema": {
707
+ "type": "string"
708
+ },
709
+ "x-ms-summary": "The slug or id of the employee"
710
+ }
711
+ ],
712
+ "responses": {
713
+ "200": {
714
+ "description": "Raw CvPartner CV payload retrieved successfully",
715
+ "content": {
716
+ "application/json": {
717
+ "schema": {
718
+ "type": "object"
719
+ }
720
+ }
721
+ },
722
+ "x-ms-summary": "Success"
723
+ },
724
+ "404": {
725
+ "description": "Employee or CV not found",
726
+ "x-ms-summary": "Not Found"
727
+ }
728
+ }
729
+ }
730
+ },
731
+ "/v1.0/protected": {
732
+ "get": {
733
+ "tags": [
734
+ "Protected"
735
+ ],
736
+ "summary": "Gets all protected employees",
737
+ "description": "Retrieves a list of all protected employees.",
738
+ "operationId": "GetEmployeesProtected",
739
+ "parameters": [
740
+ {
741
+ "name": "includeBots",
742
+ "in": "query",
743
+ "description": "Include AI / bot employees (Olaf et al.). Defaults to false.",
744
+ "schema": {
745
+ "type": "boolean"
746
+ },
747
+ "x-ms-summary": "Include bots"
748
+ },
749
+ {
750
+ "name": "includeExternals",
751
+ "in": "query",
752
+ "description": "Include external employees (contractors). Defaults to false.",
753
+ "schema": {
754
+ "type": "boolean"
755
+ },
756
+ "x-ms-summary": "Include externals"
757
+ }
758
+ ],
759
+ "responses": {
760
+ "200": {
761
+ "description": "List of protected employees retrieved successfully",
762
+ "content": {
763
+ "application/json": {
764
+ "schema": {
765
+ "type": "array",
766
+ "items": {
767
+ "$ref": "#/components/schemas/protectedEmployee"
768
+ }
769
+ }
770
+ }
771
+ },
772
+ "x-ms-summary": "Success"
773
+ },
774
+ "401": {
775
+ "description": "User is not authorized",
776
+ "x-ms-summary": "Unauthorized"
777
+ }
778
+ },
779
+ "security": [
780
+ {
781
+ "Implicit": [
782
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
783
+ ]
784
+ },
785
+ {
786
+ "ApiKey": []
787
+ }
788
+ ]
789
+ }
790
+ },
791
+ "/v1.0/protected/me": {
792
+ "get": {
793
+ "tags": [
794
+ "Protected"
795
+ ],
796
+ "summary": "Gets the authenticated user's protected employee data",
797
+ "description": "Retrieves the protected employee data for the authenticated user.",
798
+ "operationId": "GetMeProtected",
799
+ "responses": {
800
+ "200": {
801
+ "description": "Authenticated user's protected employee data retrieved successfully",
802
+ "content": {
803
+ "application/json": {
804
+ "schema": {
805
+ "$ref": "#/components/schemas/protectedEmployee"
806
+ }
807
+ }
808
+ },
809
+ "x-ms-summary": "Success"
810
+ },
811
+ "401": {
812
+ "description": "User is not authorized",
813
+ "x-ms-summary": "Unauthorized"
814
+ },
815
+ "404": {
816
+ "description": "Employee not found",
817
+ "x-ms-summary": "Not Found"
818
+ }
819
+ },
820
+ "security": [
821
+ {
822
+ "Implicit": [
823
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
824
+ ]
825
+ },
826
+ {
827
+ "ApiKey": []
828
+ }
829
+ ]
830
+ },
831
+ "put": {
832
+ "tags": [
833
+ "Protected"
834
+ ],
835
+ "summary": "Updates the authenticated user's protected employee data",
836
+ "description": "Updates the protected employee data for the authenticated user.",
837
+ "operationId": "PatchMeProtected",
838
+ "requestBody": {
839
+ "description": "Employee data to update",
840
+ "content": {
841
+ "application/json": {
842
+ "schema": {
843
+ "$ref": "#/components/schemas/patchEmployee"
844
+ }
845
+ }
846
+ },
847
+ "required": true
848
+ },
849
+ "responses": {
850
+ "200": {
851
+ "description": "Authenticated user's protected employee data updated successfully",
852
+ "content": {
853
+ "application/json": {
854
+ "schema": {
855
+ "$ref": "#/components/schemas/protectedEmployee"
856
+ }
857
+ }
858
+ },
859
+ "x-ms-summary": "Success"
860
+ },
861
+ "401": {
862
+ "description": "User is not authorized",
863
+ "x-ms-summary": "Unauthorized"
864
+ }
865
+ },
866
+ "security": [
867
+ {
868
+ "Implicit": [
869
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
870
+ ]
871
+ },
872
+ {
873
+ "ApiKey": []
874
+ }
875
+ ]
876
+ }
877
+ },
878
+ "/v1.0/protected/me/photo": {
879
+ "post": {
880
+ "tags": [
881
+ "Protected"
882
+ ],
883
+ "summary": "Uploads the authenticated user's profile photo",
884
+ "description": "Stores the photo and a blurred variant on the employee. Body is the raw image bytes.",
885
+ "operationId": "SetMyPhoto",
886
+ "requestBody": {
887
+ "description": "Raw image bytes",
888
+ "content": {
889
+ "application/octet-stream": {
890
+ "schema": {
891
+ "type": "string",
892
+ "format": "binary"
893
+ }
894
+ }
895
+ },
896
+ "required": true
897
+ },
898
+ "responses": {
899
+ "200": {
900
+ "description": "Photo updated successfully",
901
+ "content": {
902
+ "application/json": {
903
+ "schema": {
904
+ "$ref": "#/components/schemas/protectedEmployee"
905
+ }
906
+ }
907
+ },
908
+ "x-ms-summary": "Success"
909
+ },
910
+ "401": {
911
+ "description": "User is not authorized",
912
+ "x-ms-summary": "Unauthorized"
913
+ }
914
+ },
915
+ "security": [
916
+ {
917
+ "Implicit": [
918
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
919
+ ]
920
+ },
921
+ {
922
+ "ApiKey": []
923
+ }
924
+ ]
925
+ }
926
+ },
927
+ "/v1.0/protected/{id}": {
928
+ "put": {
929
+ "tags": [
930
+ "Protected"
931
+ ],
932
+ "summary": "Updates protected employee data by id or email",
933
+ "description": "Updates protected employee data for a specified employee id or email.",
934
+ "operationId": "PatchEmployeeProtected",
935
+ "parameters": [
936
+ {
937
+ "name": "id",
938
+ "in": "path",
939
+ "description": "Sanity id or employee email",
940
+ "required": true,
941
+ "schema": {
942
+ "type": "string"
943
+ },
944
+ "x-ms-summary": "The employee id or email"
945
+ }
946
+ ],
947
+ "requestBody": {
948
+ "description": "Employee data to update",
949
+ "content": {
950
+ "application/json": {
951
+ "schema": {
952
+ "$ref": "#/components/schemas/patchEmployee"
953
+ }
954
+ }
955
+ },
956
+ "required": true
957
+ },
958
+ "responses": {
959
+ "200": {
960
+ "description": "Protected employee data updated successfully",
961
+ "content": {
962
+ "application/json": {
963
+ "schema": {
964
+ "$ref": "#/components/schemas/protectedEmployee"
965
+ }
966
+ }
967
+ },
968
+ "x-ms-summary": "Success"
969
+ },
970
+ "401": {
971
+ "description": "User is not authorized",
972
+ "x-ms-summary": "Unauthorized"
973
+ }
974
+ },
975
+ "security": [
976
+ {
977
+ "Implicit": [
978
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
979
+ ]
980
+ },
981
+ {
982
+ "ApiKey": []
983
+ }
984
+ ]
985
+ },
986
+ "get": {
987
+ "tags": [
988
+ "Protected"
989
+ ],
990
+ "summary": "Gets a protected employee by ID",
991
+ "description": "Retrieves a protected employee by their ID.",
992
+ "operationId": "GetEmployeeProtected",
993
+ "parameters": [
994
+ {
995
+ "name": "id",
996
+ "in": "path",
997
+ "description": "The ID of the protected employee to retrieve",
998
+ "required": true,
999
+ "schema": {
1000
+ "type": "string"
1001
+ },
1002
+ "x-ms-summary": "The ID of the employee"
1003
+ }
1004
+ ],
1005
+ "responses": {
1006
+ "200": {
1007
+ "description": "Protected employee retrieved successfully",
1008
+ "content": {
1009
+ "application/json": {
1010
+ "schema": {
1011
+ "$ref": "#/components/schemas/protectedEmployee"
1012
+ }
1013
+ }
1014
+ },
1015
+ "x-ms-summary": "Success"
1016
+ },
1017
+ "401": {
1018
+ "description": "User is not authorized",
1019
+ "x-ms-summary": "Unauthorized"
1020
+ },
1021
+ "404": {
1022
+ "description": "Employee not found",
1023
+ "x-ms-summary": "Not Found"
1024
+ }
1025
+ },
1026
+ "security": [
1027
+ {
1028
+ "Implicit": [
1029
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1030
+ ]
1031
+ },
1032
+ {
1033
+ "ApiKey": []
1034
+ }
1035
+ ]
1036
+ }
1037
+ },
1038
+ "/v1.0/protected/{id}/photo": {
1039
+ "post": {
1040
+ "tags": [
1041
+ "Protected"
1042
+ ],
1043
+ "summary": "Uploads a profile photo for an employee (admin)",
1044
+ "description": "Stores the photo and a blurred variant on the given employee. Body is the raw image bytes.",
1045
+ "operationId": "SetEmployeePhoto",
1046
+ "parameters": [
1047
+ {
1048
+ "name": "id",
1049
+ "in": "path",
1050
+ "required": true,
1051
+ "schema": {
1052
+ "type": "string"
1053
+ },
1054
+ "x-ms-summary": "The employee Sanity id"
1055
+ }
1056
+ ],
1057
+ "requestBody": {
1058
+ "description": "Raw image bytes",
1059
+ "content": {
1060
+ "application/octet-stream": {
1061
+ "schema": {
1062
+ "type": "string",
1063
+ "format": "binary"
1064
+ }
1065
+ }
1066
+ },
1067
+ "required": true
1068
+ },
1069
+ "responses": {
1070
+ "200": {
1071
+ "description": "Photo updated successfully",
1072
+ "content": {
1073
+ "application/json": {
1074
+ "schema": {
1075
+ "$ref": "#/components/schemas/protectedEmployee"
1076
+ }
1077
+ }
1078
+ },
1079
+ "x-ms-summary": "Success"
1080
+ },
1081
+ "401": {
1082
+ "description": "User is not authorized",
1083
+ "x-ms-summary": "Unauthorized"
1084
+ }
1085
+ },
1086
+ "security": [
1087
+ {
1088
+ "Implicit": [
1089
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1090
+ ]
1091
+ },
1092
+ {
1093
+ "ApiKey": []
1094
+ }
1095
+ ]
1096
+ }
1097
+ },
1098
+ "/v1.0/protected/me/gadgetbudget": {
1099
+ "get": {
1100
+ "tags": [
1101
+ "Protected"
1102
+ ],
1103
+ "summary": "Gets the authenticated user's gadget budget",
1104
+ "description": "Retrieves the gadget budget for the authenticated user.",
1105
+ "operationId": "GetMyGadgetBudget",
1106
+ "responses": {
1107
+ "200": {
1108
+ "description": "Authenticated user's gadget budget retrieved successfully",
1109
+ "content": {
1110
+ "application/json": {
1111
+ "schema": {
1112
+ "$ref": "#/components/schemas/gadgetBudget"
1113
+ }
1114
+ }
1115
+ },
1116
+ "x-ms-summary": "Success"
1117
+ },
1118
+ "401": {
1119
+ "description": "User is not authorized",
1120
+ "x-ms-summary": "Unauthorized"
1121
+ }
1122
+ },
1123
+ "security": [
1124
+ {
1125
+ "Implicit": [
1126
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1127
+ ]
1128
+ },
1129
+ {
1130
+ "ApiKey": []
1131
+ }
1132
+ ]
1133
+ }
1134
+ },
1135
+ "/v1.0/public/{slugOrId}": {
1136
+ "get": {
1137
+ "tags": [
1138
+ "Public"
1139
+ ],
1140
+ "summary": "Gets a public employee by slug or id",
1141
+ "description": "Retrieves a public employee by their slug or id.",
1142
+ "operationId": "GetEmployeePublic",
1143
+ "parameters": [
1144
+ {
1145
+ "name": "slugOrId",
1146
+ "in": "path",
1147
+ "description": "The slug or id of the public employee to retrieve",
1148
+ "required": true,
1149
+ "schema": {
1150
+ "type": "string"
1151
+ },
1152
+ "x-ms-summary": "The slug or id of the employee"
1153
+ }
1154
+ ],
1155
+ "responses": {
1156
+ "200": {
1157
+ "description": "Public employee retrieved successfully",
1158
+ "content": {
1159
+ "application/json": {
1160
+ "schema": {
1161
+ "$ref": "#/components/schemas/publicEmployee"
1162
+ }
1163
+ }
1164
+ },
1165
+ "x-ms-summary": "Success"
1166
+ },
1167
+ "404": {
1168
+ "description": "Employee not found",
1169
+ "x-ms-summary": "Not Found"
1170
+ }
1171
+ }
1172
+ }
1173
+ },
1174
+ "/v1.0/public": {
1175
+ "get": {
1176
+ "tags": [
1177
+ "Public"
1178
+ ],
1179
+ "summary": "Gets all public employees",
1180
+ "description": "Retrieves a list of all public employees.",
1181
+ "operationId": "GetEmployeesPublic",
1182
+ "responses": {
1183
+ "200": {
1184
+ "description": "List of public employees retrieved successfully",
1185
+ "content": {
1186
+ "application/json": {
1187
+ "schema": {
1188
+ "type": "array",
1189
+ "items": {
1190
+ "$ref": "#/components/schemas/publicEmployee"
1191
+ }
1192
+ }
1193
+ }
1194
+ },
1195
+ "x-ms-summary": "Success"
1196
+ }
1197
+ }
1198
+ }
1199
+ },
1200
+ "/v1.0/feedback": {
1201
+ "post": {
1202
+ "tags": [
1203
+ "Public"
1204
+ ],
1205
+ "summary": "Submit anonymous feedback",
1206
+ "description": "Allows anyone to send anonymous text feedback.",
1207
+ "operationId": "PostAnonymousFeedback",
1208
+ "requestBody": {
1209
+ "description": "Feedback payload",
1210
+ "content": {
1211
+ "application/json": {
1212
+ "schema": {
1213
+ "$ref": "#/components/schemas/feedback"
1214
+ }
1215
+ }
1216
+ },
1217
+ "required": true
1218
+ },
1219
+ "responses": {
1220
+ "200": {
1221
+ "description": "Feedback received",
1222
+ "x-ms-summary": "Success"
1223
+ },
1224
+ "400": {
1225
+ "description": "Invalid input",
1226
+ "x-ms-summary": "Bad Request"
1227
+ }
1228
+ }
1229
+ }
1230
+ },
1231
+ "/v1.0/protected/directory/users/{objectId}/groups/{groupId}": {
1232
+ "post": {
1233
+ "tags": [
1234
+ "Directory"
1235
+ ],
1236
+ "summary": "Add the directory user to a security group",
1237
+ "description": "Returns changed: false when the user already was a member.",
1238
+ "operationId": "AddDirectoryUserToGroup",
1239
+ "parameters": [
1240
+ {
1241
+ "name": "objectId",
1242
+ "in": "path",
1243
+ "required": true,
1244
+ "schema": {
1245
+ "type": "string"
1246
+ }
1247
+ },
1248
+ {
1249
+ "name": "groupId",
1250
+ "in": "path",
1251
+ "required": true,
1252
+ "schema": {
1253
+ "type": "string"
1254
+ }
1255
+ }
1256
+ ],
1257
+ "responses": {
1258
+ "200": {
1259
+ "description": "Payload of DirectoryOperationResult",
1260
+ "content": {
1261
+ "application/json": {
1262
+ "schema": {
1263
+ "$ref": "#/components/schemas/directoryOperationResult"
1264
+ }
1265
+ }
1266
+ },
1267
+ "x-ms-summary": "Success"
1268
+ },
1269
+ "401": {
1270
+ "description": "No description",
1271
+ "x-ms-summary": "Unauthorized"
1272
+ }
1273
+ },
1274
+ "security": [
1275
+ {
1276
+ "Implicit": [
1277
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "ApiKey": []
1282
+ }
1283
+ ]
1284
+ },
1285
+ "delete": {
1286
+ "tags": [
1287
+ "Directory"
1288
+ ],
1289
+ "summary": "Remove the directory user from a security group",
1290
+ "description": "Returns changed: false when the user was not a member.",
1291
+ "operationId": "RemoveDirectoryUserFromGroup",
1292
+ "parameters": [
1293
+ {
1294
+ "name": "objectId",
1295
+ "in": "path",
1296
+ "required": true,
1297
+ "schema": {
1298
+ "type": "string"
1299
+ }
1300
+ },
1301
+ {
1302
+ "name": "groupId",
1303
+ "in": "path",
1304
+ "required": true,
1305
+ "schema": {
1306
+ "type": "string"
1307
+ }
1308
+ }
1309
+ ],
1310
+ "responses": {
1311
+ "200": {
1312
+ "description": "Payload of DirectoryOperationResult",
1313
+ "content": {
1314
+ "application/json": {
1315
+ "schema": {
1316
+ "$ref": "#/components/schemas/directoryOperationResult"
1317
+ }
1318
+ }
1319
+ },
1320
+ "x-ms-summary": "Success"
1321
+ },
1322
+ "401": {
1323
+ "description": "No description",
1324
+ "x-ms-summary": "Unauthorized"
1325
+ }
1326
+ },
1327
+ "security": [
1328
+ {
1329
+ "Implicit": [
1330
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1331
+ ]
1332
+ },
1333
+ {
1334
+ "ApiKey": []
1335
+ }
1336
+ ]
1337
+ }
1338
+ },
1339
+ "/v1.0/protected/directory/users/{objectId}/app-roles": {
1340
+ "post": {
1341
+ "tags": [
1342
+ "Directory"
1343
+ ],
1344
+ "summary": "Assign an app-role on a service principal to the directory user",
1345
+ "description": "Returns changed: false when the assignment already existed.",
1346
+ "operationId": "AssignDirectoryAppRole",
1347
+ "parameters": [
1348
+ {
1349
+ "name": "objectId",
1350
+ "in": "path",
1351
+ "required": true,
1352
+ "schema": {
1353
+ "type": "string"
1354
+ }
1355
+ }
1356
+ ],
1357
+ "requestBody": {
1358
+ "content": {
1359
+ "application/json": {
1360
+ "schema": {
1361
+ "$ref": "#/components/schemas/appRoleAssignmentRequest"
1362
+ }
1363
+ }
1364
+ },
1365
+ "required": true
1366
+ },
1367
+ "responses": {
1368
+ "200": {
1369
+ "description": "Payload of DirectoryOperationResult",
1370
+ "content": {
1371
+ "application/json": {
1372
+ "schema": {
1373
+ "$ref": "#/components/schemas/directoryOperationResult"
1374
+ }
1375
+ }
1376
+ },
1377
+ "x-ms-summary": "Success"
1378
+ },
1379
+ "401": {
1380
+ "description": "No description",
1381
+ "x-ms-summary": "Unauthorized"
1382
+ }
1383
+ },
1384
+ "security": [
1385
+ {
1386
+ "Implicit": [
1387
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1388
+ ]
1389
+ },
1390
+ {
1391
+ "ApiKey": []
1392
+ }
1393
+ ]
1394
+ },
1395
+ "get": {
1396
+ "tags": [
1397
+ "Directory"
1398
+ ],
1399
+ "summary": "Map the directory user's app-role assignments by service principal",
1400
+ "description": "Returns { servicePrincipalObjectId: appRoleId } for every Enterprise App the user is assigned to.",
1401
+ "operationId": "ListDirectoryUserAppRoles",
1402
+ "parameters": [
1403
+ {
1404
+ "name": "objectId",
1405
+ "in": "path",
1406
+ "required": true,
1407
+ "schema": {
1408
+ "type": "string"
1409
+ }
1410
+ }
1411
+ ],
1412
+ "responses": {
1413
+ "200": {
1414
+ "description": "Payload of Dictionary of String",
1415
+ "content": {
1416
+ "application/json": {
1417
+ "schema": {
1418
+ "type": "object",
1419
+ "additionalProperties": {
1420
+ "type": "string"
1421
+ }
1422
+ }
1423
+ }
1424
+ },
1425
+ "x-ms-summary": "Success"
1426
+ },
1427
+ "401": {
1428
+ "description": "No description",
1429
+ "x-ms-summary": "Unauthorized"
1430
+ }
1431
+ },
1432
+ "security": [
1433
+ {
1434
+ "Implicit": [
1435
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1436
+ ]
1437
+ },
1438
+ {
1439
+ "ApiKey": []
1440
+ }
1441
+ ]
1442
+ }
1443
+ },
1444
+ "/v1.0/protected/directory/users/{objectId}/app-roles/{servicePrincipalObjectId}": {
1445
+ "delete": {
1446
+ "tags": [
1447
+ "Directory"
1448
+ ],
1449
+ "summary": "Remove the directory user's app-role assignment(s) on a service principal",
1450
+ "operationId": "RemoveDirectoryAppRole",
1451
+ "parameters": [
1452
+ {
1453
+ "name": "objectId",
1454
+ "in": "path",
1455
+ "required": true,
1456
+ "schema": {
1457
+ "type": "string"
1458
+ }
1459
+ },
1460
+ {
1461
+ "name": "servicePrincipalObjectId",
1462
+ "in": "path",
1463
+ "required": true,
1464
+ "schema": {
1465
+ "type": "string"
1466
+ }
1467
+ }
1468
+ ],
1469
+ "responses": {
1470
+ "200": {
1471
+ "description": "Payload of DirectoryOperationResult",
1472
+ "content": {
1473
+ "application/json": {
1474
+ "schema": {
1475
+ "$ref": "#/components/schemas/directoryOperationResult"
1476
+ }
1477
+ }
1478
+ },
1479
+ "x-ms-summary": "Success"
1480
+ },
1481
+ "401": {
1482
+ "description": "No description",
1483
+ "x-ms-summary": "Unauthorized"
1484
+ }
1485
+ },
1486
+ "security": [
1487
+ {
1488
+ "Implicit": [
1489
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1490
+ ]
1491
+ },
1492
+ {
1493
+ "ApiKey": []
1494
+ }
1495
+ ]
1496
+ }
1497
+ },
1498
+ "/v1.0/protected/directory/service-principals/{servicePrincipalObjectId}/app-roles": {
1499
+ "get": {
1500
+ "tags": [
1501
+ "Directory"
1502
+ ],
1503
+ "summary": "List a service principal's enabled app-roles",
1504
+ "operationId": "ListDirectoryAppRoles",
1505
+ "parameters": [
1506
+ {
1507
+ "name": "servicePrincipalObjectId",
1508
+ "in": "path",
1509
+ "required": true,
1510
+ "schema": {
1511
+ "type": "string"
1512
+ }
1513
+ }
1514
+ ],
1515
+ "responses": {
1516
+ "200": {
1517
+ "description": "Payload of Array of SystemRoleOption",
1518
+ "content": {
1519
+ "application/json": {
1520
+ "schema": {
1521
+ "type": "array",
1522
+ "items": {
1523
+ "$ref": "#/components/schemas/systemRoleOption"
1524
+ }
1525
+ }
1526
+ }
1527
+ },
1528
+ "x-ms-summary": "Success"
1529
+ },
1530
+ "401": {
1531
+ "description": "No description",
1532
+ "x-ms-summary": "Unauthorized"
1533
+ }
1534
+ },
1535
+ "security": [
1536
+ {
1537
+ "Implicit": [
1538
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1539
+ ]
1540
+ },
1541
+ {
1542
+ "ApiKey": []
1543
+ }
1544
+ ]
1545
+ }
1546
+ },
1547
+ "/v1.0/protected/directory/users/{objectId}/licenses/{skuId}": {
1548
+ "post": {
1549
+ "tags": [
1550
+ "Directory"
1551
+ ],
1552
+ "summary": "Assign a license SKU to the directory user",
1553
+ "operationId": "AssignDirectoryLicense",
1554
+ "parameters": [
1555
+ {
1556
+ "name": "objectId",
1557
+ "in": "path",
1558
+ "required": true,
1559
+ "schema": {
1560
+ "type": "string"
1561
+ }
1562
+ },
1563
+ {
1564
+ "name": "skuId",
1565
+ "in": "path",
1566
+ "required": true,
1567
+ "schema": {
1568
+ "type": "string"
1569
+ }
1570
+ }
1571
+ ],
1572
+ "responses": {
1573
+ "204": {
1574
+ "description": "No description",
1575
+ "x-ms-summary": "Assigned"
1576
+ },
1577
+ "401": {
1578
+ "description": "No description",
1579
+ "x-ms-summary": "Unauthorized"
1580
+ }
1581
+ },
1582
+ "security": [
1583
+ {
1584
+ "Implicit": [
1585
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1586
+ ]
1587
+ },
1588
+ {
1589
+ "ApiKey": []
1590
+ }
1591
+ ]
1592
+ },
1593
+ "delete": {
1594
+ "tags": [
1595
+ "Directory"
1596
+ ],
1597
+ "summary": "Revoke a license SKU from the directory user",
1598
+ "operationId": "RevokeDirectoryLicense",
1599
+ "parameters": [
1600
+ {
1601
+ "name": "objectId",
1602
+ "in": "path",
1603
+ "required": true,
1604
+ "schema": {
1605
+ "type": "string"
1606
+ }
1607
+ },
1608
+ {
1609
+ "name": "skuId",
1610
+ "in": "path",
1611
+ "required": true,
1612
+ "schema": {
1613
+ "type": "string"
1614
+ }
1615
+ }
1616
+ ],
1617
+ "responses": {
1618
+ "204": {
1619
+ "description": "No description",
1620
+ "x-ms-summary": "Revoked"
1621
+ },
1622
+ "401": {
1623
+ "description": "No description",
1624
+ "x-ms-summary": "Unauthorized"
1625
+ }
1626
+ },
1627
+ "security": [
1628
+ {
1629
+ "Implicit": [
1630
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1631
+ ]
1632
+ },
1633
+ {
1634
+ "ApiKey": []
1635
+ }
1636
+ ]
1637
+ }
1638
+ },
1639
+ "/v1.0/protected/directory/licenses/{skuId}": {
1640
+ "get": {
1641
+ "tags": [
1642
+ "Directory"
1643
+ ],
1644
+ "summary": "Get seat availability for a license SKU",
1645
+ "operationId": "GetDirectoryLicenseAvailability",
1646
+ "parameters": [
1647
+ {
1648
+ "name": "skuId",
1649
+ "in": "path",
1650
+ "required": true,
1651
+ "schema": {
1652
+ "type": "string"
1653
+ }
1654
+ }
1655
+ ],
1656
+ "responses": {
1657
+ "200": {
1658
+ "description": "Payload of LicenseAvailability",
1659
+ "content": {
1660
+ "application/json": {
1661
+ "schema": {
1662
+ "$ref": "#/components/schemas/licenseAvailability"
1663
+ }
1664
+ }
1665
+ },
1666
+ "x-ms-summary": "Success"
1667
+ },
1668
+ "401": {
1669
+ "description": "No description",
1670
+ "x-ms-summary": "Unauthorized"
1671
+ },
1672
+ "404": {
1673
+ "description": "No description",
1674
+ "x-ms-summary": "SKU unknown"
1675
+ }
1676
+ },
1677
+ "security": [
1678
+ {
1679
+ "Implicit": [
1680
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1681
+ ]
1682
+ },
1683
+ {
1684
+ "ApiKey": []
1685
+ }
1686
+ ]
1687
+ }
1688
+ },
1689
+ "/v1.0/protected/directory/licenses/primary": {
1690
+ "get": {
1691
+ "tags": [
1692
+ "Directory"
1693
+ ],
1694
+ "summary": "Auto-select the tenant's primary productivity license SKU",
1695
+ "description": "Returns skuId: null when no productivity SKU has a free seat.",
1696
+ "operationId": "ResolvePrimaryDirectoryLicense",
1697
+ "responses": {
1698
+ "200": {
1699
+ "description": "Payload of LicenseSkuRef",
1700
+ "content": {
1701
+ "application/json": {
1702
+ "schema": {
1703
+ "$ref": "#/components/schemas/licenseSkuRef"
1704
+ }
1705
+ }
1706
+ },
1707
+ "x-ms-summary": "Success"
1708
+ },
1709
+ "401": {
1710
+ "description": "No description",
1711
+ "x-ms-summary": "Unauthorized"
1712
+ }
1713
+ },
1714
+ "security": [
1715
+ {
1716
+ "Implicit": [
1717
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1718
+ ]
1719
+ },
1720
+ {
1721
+ "ApiKey": []
1722
+ }
1723
+ ]
1724
+ }
1725
+ },
1726
+ "/v1.0/protected/systems/batch": {
1727
+ "post": {
1728
+ "tags": [
1729
+ "EmployeeSystems"
1730
+ ],
1731
+ "summary": "Bulk list per-employee system access for a set of UPNs",
1732
+ "description": "Resolves every UPN's third-party system seats in one roundtrip — fans out the Graph calls server-side.",
1733
+ "operationId": "ListEmployeeSystemAccessBatch",
1734
+ "requestBody": {
1735
+ "content": {
1736
+ "application/json": {
1737
+ "schema": {
1738
+ "$ref": "#/components/schemas/listEmployeeSystemAccessBatchRequest"
1739
+ }
1740
+ }
1741
+ },
1742
+ "required": true
1743
+ },
1744
+ "responses": {
1745
+ "200": {
1746
+ "description": "Payload of Array of EmployeeSystemAccessRow",
1747
+ "content": {
1748
+ "application/json": {
1749
+ "schema": {
1750
+ "type": "array",
1751
+ "items": {
1752
+ "$ref": "#/components/schemas/employeeSystemAccessRow"
1753
+ }
1754
+ }
1755
+ }
1756
+ },
1757
+ "x-ms-summary": "Success"
1758
+ },
1759
+ "401": {
1760
+ "description": "No description",
1761
+ "x-ms-summary": "Unauthorized"
1762
+ }
1763
+ },
1764
+ "security": [
1765
+ {
1766
+ "Implicit": [
1767
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "ApiKey": []
1772
+ }
1773
+ ]
1774
+ }
1775
+ },
1776
+ "/v1.0/protected/systems/{upn}": {
1777
+ "get": {
1778
+ "tags": [
1779
+ "EmployeeSystems"
1780
+ ],
1781
+ "summary": "List an employee's third-party system access",
1782
+ "description": "Per registered system (e.g. Salesforce): whether the employee has a seat, which app-role backs it, and the selectable roles.",
1783
+ "operationId": "ListEmployeeSystemAccess",
1784
+ "parameters": [
1785
+ {
1786
+ "name": "upn",
1787
+ "in": "path",
1788
+ "required": true,
1789
+ "schema": {
1790
+ "type": "string"
1791
+ },
1792
+ "x-ms-summary": "Employee UPN (work email)"
1793
+ }
1794
+ ],
1795
+ "responses": {
1796
+ "200": {
1797
+ "description": "Payload of Array of EmployeeSystemAccess",
1798
+ "content": {
1799
+ "application/json": {
1800
+ "schema": {
1801
+ "type": "array",
1802
+ "items": {
1803
+ "$ref": "#/components/schemas/employeeSystemAccess"
1804
+ }
1805
+ }
1806
+ }
1807
+ },
1808
+ "x-ms-summary": "Success"
1809
+ },
1810
+ "401": {
1811
+ "description": "No description",
1812
+ "x-ms-summary": "Unauthorized"
1813
+ },
1814
+ "404": {
1815
+ "description": "No description",
1816
+ "x-ms-summary": "Employee not found in the directory"
1817
+ }
1818
+ },
1819
+ "security": [
1820
+ {
1821
+ "Implicit": [
1822
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1823
+ ]
1824
+ },
1825
+ {
1826
+ "ApiKey": []
1827
+ }
1828
+ ]
1829
+ }
1830
+ },
1831
+ "/v1.0/protected/systems/{upn}/{systemKey}": {
1832
+ "post": {
1833
+ "tags": [
1834
+ "EmployeeSystems"
1835
+ ],
1836
+ "summary": "Grant the employee a seat in a third-party system",
1837
+ "description": "Assigns the backing app-role on the system's Enterprise App. SCIM/provisioning then creates the account automatically.",
1838
+ "operationId": "AssignEmployeeSystem",
1839
+ "parameters": [
1840
+ {
1841
+ "name": "upn",
1842
+ "in": "path",
1843
+ "required": true,
1844
+ "schema": {
1845
+ "type": "string"
1846
+ }
1847
+ },
1848
+ {
1849
+ "name": "systemKey",
1850
+ "in": "path",
1851
+ "required": true,
1852
+ "schema": {
1853
+ "type": "string"
1854
+ },
1855
+ "x-ms-summary": "Stable system key (e.g. \"salesforce\")"
1856
+ },
1857
+ {
1858
+ "name": "roleId",
1859
+ "in": "query",
1860
+ "schema": {
1861
+ "type": "string"
1862
+ },
1863
+ "x-ms-summary": "App-role id to assign; falls back to the tenant's default role when omitted. Assigning a different role than the current one replaces the assignment."
1864
+ }
1865
+ ],
1866
+ "responses": {
1867
+ "200": {
1868
+ "description": "Payload of EmployeeSystemAccess",
1869
+ "content": {
1870
+ "application/json": {
1871
+ "schema": {
1872
+ "$ref": "#/components/schemas/employeeSystemAccess"
1873
+ }
1874
+ }
1875
+ },
1876
+ "x-ms-summary": "Success"
1877
+ },
1878
+ "401": {
1879
+ "description": "No description",
1880
+ "x-ms-summary": "Unauthorized"
1881
+ },
1882
+ "404": {
1883
+ "description": "No description",
1884
+ "x-ms-summary": "Unknown system or employee"
1885
+ },
1886
+ "501": {
1887
+ "description": "No description",
1888
+ "x-ms-summary": "System not configured in this environment"
1889
+ }
1890
+ },
1891
+ "security": [
1892
+ {
1893
+ "Implicit": [
1894
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1895
+ ]
1896
+ },
1897
+ {
1898
+ "ApiKey": []
1899
+ }
1900
+ ]
1901
+ },
1902
+ "delete": {
1903
+ "tags": [
1904
+ "EmployeeSystems"
1905
+ ],
1906
+ "summary": "Revoke the employee's seat in a third-party system",
1907
+ "description": "Removes the backing app-role assignment. SCIM/provisioning deactivates the account on the next sync.",
1908
+ "operationId": "RevokeEmployeeSystem",
1909
+ "parameters": [
1910
+ {
1911
+ "name": "upn",
1912
+ "in": "path",
1913
+ "required": true,
1914
+ "schema": {
1915
+ "type": "string"
1916
+ }
1917
+ },
1918
+ {
1919
+ "name": "systemKey",
1920
+ "in": "path",
1921
+ "required": true,
1922
+ "schema": {
1923
+ "type": "string"
1924
+ }
1925
+ }
1926
+ ],
1927
+ "responses": {
1928
+ "200": {
1929
+ "description": "Payload of EmployeeSystemAccess",
1930
+ "content": {
1931
+ "application/json": {
1932
+ "schema": {
1933
+ "$ref": "#/components/schemas/employeeSystemAccess"
1934
+ }
1935
+ }
1936
+ },
1937
+ "x-ms-summary": "Success"
1938
+ },
1939
+ "401": {
1940
+ "description": "No description",
1941
+ "x-ms-summary": "Unauthorized"
1942
+ },
1943
+ "404": {
1944
+ "description": "No description",
1945
+ "x-ms-summary": "Unknown system or employee"
1946
+ },
1947
+ "501": {
1948
+ "description": "No description",
1949
+ "x-ms-summary": "System not configured in this environment"
1950
+ }
1951
+ },
1952
+ "security": [
1953
+ {
1954
+ "Implicit": [
1955
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1956
+ ]
1957
+ },
1958
+ {
1959
+ "ApiKey": []
1960
+ }
1961
+ ]
1962
+ }
1963
+ },
1964
+ "/v1.0/protected/directory/users": {
1965
+ "post": {
1966
+ "tags": [
1967
+ "Directory"
1968
+ ],
1969
+ "summary": "Create (or adopt) a directory user",
1970
+ "description": "Creates the Entra user, or patches an existing one with the supplied fields. Returns the temporary password only on fresh creation.",
1971
+ "operationId": "CreateDirectoryUser",
1972
+ "requestBody": {
1973
+ "content": {
1974
+ "application/json": {
1975
+ "schema": {
1976
+ "$ref": "#/components/schemas/createUserInput"
1977
+ }
1978
+ }
1979
+ },
1980
+ "required": true
1981
+ },
1982
+ "responses": {
1983
+ "200": {
1984
+ "description": "Payload of CreateUserResult",
1985
+ "content": {
1986
+ "application/json": {
1987
+ "schema": {
1988
+ "$ref": "#/components/schemas/createUserResult"
1989
+ }
1990
+ }
1991
+ },
1992
+ "x-ms-summary": "Success"
1993
+ },
1994
+ "401": {
1995
+ "description": "No description",
1996
+ "x-ms-summary": "Unauthorized"
1997
+ }
1998
+ },
1999
+ "security": [
2000
+ {
2001
+ "Implicit": [
2002
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2003
+ ]
2004
+ },
2005
+ {
2006
+ "ApiKey": []
2007
+ }
2008
+ ]
2009
+ }
2010
+ },
2011
+ "/v1.0/protected/directory/users/{objectId}": {
2012
+ "patch": {
2013
+ "tags": [
2014
+ "Directory"
2015
+ ],
2016
+ "summary": "Patch a directory user from candidate fields",
2017
+ "operationId": "PatchDirectoryUser",
2018
+ "parameters": [
2019
+ {
2020
+ "name": "objectId",
2021
+ "in": "path",
2022
+ "required": true,
2023
+ "schema": {
2024
+ "type": "string"
2025
+ }
2026
+ }
2027
+ ],
2028
+ "requestBody": {
2029
+ "content": {
2030
+ "application/json": {
2031
+ "schema": {
2032
+ "$ref": "#/components/schemas/createUserInput"
2033
+ }
2034
+ }
2035
+ },
2036
+ "required": true
2037
+ },
2038
+ "responses": {
2039
+ "204": {
2040
+ "description": "No description",
2041
+ "x-ms-summary": "Patched"
2042
+ },
2043
+ "401": {
2044
+ "description": "No description",
2045
+ "x-ms-summary": "Unauthorized"
2046
+ }
2047
+ },
2048
+ "security": [
2049
+ {
2050
+ "Implicit": [
2051
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2052
+ ]
2053
+ },
2054
+ {
2055
+ "ApiKey": []
2056
+ }
2057
+ ]
2058
+ }
2059
+ },
2060
+ "/v1.0/protected/directory/users/{objectId}/photo": {
2061
+ "post": {
2062
+ "tags": [
2063
+ "Directory"
2064
+ ],
2065
+ "summary": "Upload a profile photo to the directory user",
2066
+ "description": "Fetches the image from the supplied URL and PUTs it as the user's Entra profile photo.",
2067
+ "operationId": "UploadDirectoryUserPhoto",
2068
+ "parameters": [
2069
+ {
2070
+ "name": "objectId",
2071
+ "in": "path",
2072
+ "required": true,
2073
+ "schema": {
2074
+ "type": "string"
2075
+ }
2076
+ }
2077
+ ],
2078
+ "requestBody": {
2079
+ "content": {
2080
+ "application/json": {
2081
+ "schema": {
2082
+ "$ref": "#/components/schemas/uploadPhotoRequest"
2083
+ }
2084
+ }
2085
+ },
2086
+ "required": true
2087
+ },
2088
+ "responses": {
2089
+ "200": {
2090
+ "description": "Payload of UploadPhotoResult",
2091
+ "content": {
2092
+ "application/json": {
2093
+ "schema": {
2094
+ "$ref": "#/components/schemas/uploadPhotoResult"
2095
+ }
2096
+ }
2097
+ },
2098
+ "x-ms-summary": "Success"
2099
+ },
2100
+ "401": {
2101
+ "description": "No description",
2102
+ "x-ms-summary": "Unauthorized"
2103
+ }
2104
+ },
2105
+ "security": [
2106
+ {
2107
+ "Implicit": [
2108
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2109
+ ]
2110
+ },
2111
+ {
2112
+ "ApiKey": []
2113
+ }
2114
+ ]
2115
+ }
2116
+ },
2117
+ "/v1.0/protected/directory/users/by-upn/{upn}": {
2118
+ "get": {
2119
+ "tags": [
2120
+ "Directory"
2121
+ ],
2122
+ "summary": "Resolve a UPN to the directory user's object id",
2123
+ "description": "Returns userObjectId: null when no directory user exists for the UPN.",
2124
+ "operationId": "GetDirectoryUserByUpn",
2125
+ "parameters": [
2126
+ {
2127
+ "name": "upn",
2128
+ "in": "path",
2129
+ "required": true,
2130
+ "schema": {
2131
+ "type": "string"
2132
+ }
2133
+ }
2134
+ ],
2135
+ "responses": {
2136
+ "200": {
2137
+ "description": "Payload of DirectoryUserRef",
2138
+ "content": {
2139
+ "application/json": {
2140
+ "schema": {
2141
+ "$ref": "#/components/schemas/directoryUserRef"
2142
+ }
2143
+ }
2144
+ },
2145
+ "x-ms-summary": "Success"
2146
+ },
2147
+ "401": {
2148
+ "description": "No description",
2149
+ "x-ms-summary": "Unauthorized"
2150
+ }
2151
+ },
2152
+ "security": [
2153
+ {
2154
+ "Implicit": [
2155
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2156
+ ]
2157
+ },
2158
+ {
2159
+ "ApiKey": []
2160
+ }
2161
+ ]
2162
+ }
2163
+ },
2164
+ "/v1.0/protected/directory/users/{upn}/disable": {
2165
+ "post": {
2166
+ "tags": [
2167
+ "Directory"
2168
+ ],
2169
+ "summary": "Disable the directory user (offboarding)",
2170
+ "operationId": "DisableDirectoryUser",
2171
+ "parameters": [
2172
+ {
2173
+ "name": "upn",
2174
+ "in": "path",
2175
+ "required": true,
2176
+ "schema": {
2177
+ "type": "string"
2178
+ }
2179
+ }
2180
+ ],
2181
+ "responses": {
2182
+ "200": {
2183
+ "description": "Payload of DisableUserResult",
2184
+ "content": {
2185
+ "application/json": {
2186
+ "schema": {
2187
+ "$ref": "#/components/schemas/disableUserResult"
2188
+ }
2189
+ }
2190
+ },
2191
+ "x-ms-summary": "Success"
2192
+ },
2193
+ "401": {
2194
+ "description": "No description",
2195
+ "x-ms-summary": "Unauthorized"
2196
+ }
2197
+ },
2198
+ "security": [
2199
+ {
2200
+ "Implicit": [
2201
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2202
+ ]
2203
+ },
2204
+ {
2205
+ "ApiKey": []
2206
+ }
2207
+ ]
2208
+ }
2209
+ },
2210
+ "/v1.0/protected/directory/users/{upn}": {
2211
+ "delete": {
2212
+ "tags": [
2213
+ "Directory"
2214
+ ],
2215
+ "summary": "Delete the directory user (recoverable in Entra for 30 days)",
2216
+ "operationId": "DeleteDirectoryUser",
2217
+ "parameters": [
2218
+ {
2219
+ "name": "upn",
2220
+ "in": "path",
2221
+ "required": true,
2222
+ "schema": {
2223
+ "type": "string"
2224
+ }
2225
+ }
2226
+ ],
2227
+ "responses": {
2228
+ "200": {
2229
+ "description": "Payload of DisableUserResult",
2230
+ "content": {
2231
+ "application/json": {
2232
+ "schema": {
2233
+ "$ref": "#/components/schemas/disableUserResult"
2234
+ }
2235
+ }
2236
+ },
2237
+ "x-ms-summary": "Success"
2238
+ },
2239
+ "401": {
2240
+ "description": "No description",
2241
+ "x-ms-summary": "Unauthorized"
2242
+ }
2243
+ },
2244
+ "security": [
2245
+ {
2246
+ "Implicit": [
2247
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
2248
+ ]
2249
+ },
2250
+ {
2251
+ "ApiKey": []
2252
+ }
2253
+ ]
2254
+ }
2255
+ }
2256
+ },
2257
+ "components": {
2258
+ "schemas": {
2259
+ "addCvToProposalRequest": {
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "user_id": {
2263
+ "type": "string",
2264
+ "nullable": true
2265
+ },
2266
+ "cv_id": {
2267
+ "type": "string",
2268
+ "nullable": true
2269
+ }
2270
+ }
2271
+ },
2272
+ "appRoleAssignmentRequest": {
2273
+ "type": "object",
2274
+ "properties": {
2275
+ "servicePrincipalObjectId": {
2276
+ "type": "string"
2277
+ },
2278
+ "appRoleId": {
2279
+ "type": "string"
2280
+ }
2281
+ }
2282
+ },
2283
+ "commissionTierReference": {
2284
+ "type": "object",
2285
+ "properties": {
2286
+ "sanityType": {
2287
+ "enum": [
2288
+ "reference"
2289
+ ],
2290
+ "type": "string",
2291
+ "default": "reference"
2292
+ },
2293
+ "sanityRef": {
2294
+ "type": "string"
2295
+ },
2296
+ "sanityWeak": {
2297
+ "type": "boolean"
2298
+ }
2299
+ }
2300
+ },
2301
+ "componentBlocksInnerOneOfChildrenInner": {
2302
+ "type": "object",
2303
+ "properties": {
2304
+ "sanityType": {
2305
+ "enum": [
2306
+ "span"
2307
+ ],
2308
+ "type": "string",
2309
+ "default": "span"
2310
+ },
2311
+ "marks": {
2312
+ "type": "array",
2313
+ "items": {
2314
+ "type": "string"
2315
+ }
2316
+ },
2317
+ "sanityKey": {
2318
+ "type": "string"
2319
+ },
2320
+ "text": {
2321
+ "type": "string"
2322
+ }
2323
+ }
2324
+ },
2325
+ "componentBlocksInnerOneOfMarkDefsInner": {
2326
+ "type": "object",
2327
+ "properties": {
2328
+ "sanityType": {
2329
+ "enum": [
2330
+ "link"
2331
+ ],
2332
+ "type": "string",
2333
+ "default": "link"
2334
+ },
2335
+ "href": {
2336
+ "type": "string"
2337
+ },
2338
+ "sanityKey": {
2339
+ "type": "string"
2340
+ }
2341
+ }
2342
+ },
2343
+ "componentGalleryMediaInner": {
2344
+ "type": "object",
2345
+ "properties": {
2346
+ "actualInstance": {
2347
+ "type": "object"
2348
+ },
2349
+ "isNullable": {
2350
+ "type": "boolean"
2351
+ },
2352
+ "schemaType": {
2353
+ "type": "string"
2354
+ }
2355
+ }
2356
+ },
2357
+ "consultantCv": {
2358
+ "type": "object",
2359
+ "properties": {
2360
+ "userId": {
2361
+ "type": "string",
2362
+ "nullable": true
2363
+ },
2364
+ "email": {
2365
+ "type": "string",
2366
+ "nullable": true
2367
+ },
2368
+ "name": {
2369
+ "type": "string",
2370
+ "nullable": true
2371
+ },
2372
+ "defaultCvId": {
2373
+ "type": "string",
2374
+ "nullable": true
2375
+ },
2376
+ "technologies": {
2377
+ "type": "array",
2378
+ "items": {
2379
+ "type": "string"
2380
+ },
2381
+ "nullable": true
2382
+ },
2383
+ "roles": {
2384
+ "type": "array",
2385
+ "items": {
2386
+ "type": "string"
2387
+ },
2388
+ "nullable": true
2389
+ },
2390
+ "yearsExperience": {
2391
+ "type": "integer",
2392
+ "format": "int32",
2393
+ "nullable": true
2394
+ },
2395
+ "about": {
2396
+ "type": "string",
2397
+ "nullable": true
2398
+ },
2399
+ "cvText": {
2400
+ "type": "string",
2401
+ "nullable": true
2402
+ },
2403
+ "projectExperiences": {
2404
+ "type": "array",
2405
+ "items": {
2406
+ "$ref": "#/components/schemas/consultantProjectExperience"
2407
+ },
2408
+ "nullable": true
2409
+ },
2410
+ "workExperiences": {
2411
+ "type": "array",
2412
+ "items": {
2413
+ "$ref": "#/components/schemas/consultantWorkExperience"
2414
+ },
2415
+ "nullable": true
2416
+ },
2417
+ "educations": {
2418
+ "type": "array",
2419
+ "items": {
2420
+ "$ref": "#/components/schemas/consultantEducation"
2421
+ },
2422
+ "nullable": true
2423
+ },
2424
+ "cvRoles": {
2425
+ "type": "array",
2426
+ "items": {
2427
+ "$ref": "#/components/schemas/consultantCvRole"
2428
+ },
2429
+ "nullable": true
2430
+ },
2431
+ "keyQualifications": {
2432
+ "type": "array",
2433
+ "items": {
2434
+ "$ref": "#/components/schemas/consultantKeyQualification"
2435
+ },
2436
+ "nullable": true
2437
+ }
2438
+ }
2439
+ },
2440
+ "consultantCvRole": {
2441
+ "type": "object",
2442
+ "properties": {
2443
+ "name": {
2444
+ "type": "string",
2445
+ "nullable": true
2446
+ },
2447
+ "longDescription": {
2448
+ "type": "string",
2449
+ "nullable": true
2450
+ },
2451
+ "tags": {
2452
+ "type": "array",
2453
+ "items": {
2454
+ "type": "string"
2455
+ },
2456
+ "nullable": true
2457
+ }
2458
+ }
2459
+ },
2460
+ "consultantEducation": {
2461
+ "type": "object",
2462
+ "properties": {
2463
+ "school": {
2464
+ "type": "string",
2465
+ "nullable": true
2466
+ },
2467
+ "degree": {
2468
+ "type": "string",
2469
+ "nullable": true
2470
+ },
2471
+ "description": {
2472
+ "type": "string",
2473
+ "nullable": true
2474
+ },
2475
+ "yearFrom": {
2476
+ "type": "integer",
2477
+ "format": "int32",
2478
+ "nullable": true
2479
+ },
2480
+ "yearTo": {
2481
+ "type": "integer",
2482
+ "format": "int32",
2483
+ "nullable": true
2484
+ }
2485
+ }
2486
+ },
2487
+ "consultantKeyQualification": {
2488
+ "type": "object",
2489
+ "properties": {
2490
+ "label": {
2491
+ "type": "string",
2492
+ "nullable": true
2493
+ },
2494
+ "description": {
2495
+ "type": "string",
2496
+ "nullable": true
2497
+ },
2498
+ "tags": {
2499
+ "type": "array",
2500
+ "items": {
2501
+ "type": "string"
2502
+ },
2503
+ "nullable": true
2504
+ }
2505
+ }
2506
+ },
2507
+ "consultantPresentation": {
2508
+ "type": "object",
2509
+ "properties": {
2510
+ "id": {
2511
+ "type": "string",
2512
+ "nullable": true
2513
+ },
2514
+ "title": {
2515
+ "type": "string",
2516
+ "nullable": true
2517
+ },
2518
+ "description": {
2519
+ "type": "string",
2520
+ "nullable": true
2521
+ },
2522
+ "longDescription": {
2523
+ "type": "string",
2524
+ "nullable": true
2525
+ },
2526
+ "year": {
2527
+ "type": "string",
2528
+ "nullable": true
2529
+ },
2530
+ "month": {
2531
+ "type": "string",
2532
+ "nullable": true
2533
+ },
2534
+ "speaker": {
2535
+ "$ref": "#/components/schemas/presentationSpeaker"
2536
+ }
2537
+ }
2538
+ },
2539
+ "consultantProjectExperience": {
2540
+ "type": "object",
2541
+ "properties": {
2542
+ "customer": {
2543
+ "type": "string",
2544
+ "nullable": true
2545
+ },
2546
+ "description": {
2547
+ "type": "string",
2548
+ "nullable": true
2549
+ },
2550
+ "longDescription": {
2551
+ "type": "string",
2552
+ "nullable": true
2553
+ },
2554
+ "industry": {
2555
+ "type": "string",
2556
+ "nullable": true
2557
+ },
2558
+ "yearFrom": {
2559
+ "type": "integer",
2560
+ "format": "int32",
2561
+ "nullable": true
2562
+ },
2563
+ "monthFrom": {
2564
+ "type": "integer",
2565
+ "format": "int32",
2566
+ "nullable": true
2567
+ },
2568
+ "yearTo": {
2569
+ "type": "integer",
2570
+ "format": "int32",
2571
+ "nullable": true
2572
+ },
2573
+ "monthTo": {
2574
+ "type": "integer",
2575
+ "format": "int32",
2576
+ "nullable": true
2577
+ },
2578
+ "roleTitle": {
2579
+ "type": "string",
2580
+ "nullable": true
2581
+ },
2582
+ "roleDescription": {
2583
+ "type": "string",
2584
+ "nullable": true
2585
+ },
2586
+ "technologies": {
2587
+ "type": "array",
2588
+ "items": {
2589
+ "type": "string"
2590
+ },
2591
+ "nullable": true
2592
+ }
2593
+ }
2594
+ },
2595
+ "consultantWorkExperience": {
2596
+ "type": "object",
2597
+ "properties": {
2598
+ "employer": {
2599
+ "type": "string",
2600
+ "nullable": true
2601
+ },
2602
+ "title": {
2603
+ "type": "string",
2604
+ "nullable": true
2605
+ },
2606
+ "description": {
2607
+ "type": "string",
2608
+ "nullable": true
2609
+ },
2610
+ "yearFrom": {
2611
+ "type": "integer",
2612
+ "format": "int32",
2613
+ "nullable": true
2614
+ },
2615
+ "monthFrom": {
2616
+ "type": "integer",
2617
+ "format": "int32",
2618
+ "nullable": true
2619
+ },
2620
+ "yearTo": {
2621
+ "type": "integer",
2622
+ "format": "int32",
2623
+ "nullable": true
2624
+ },
2625
+ "monthTo": {
2626
+ "type": "integer",
2627
+ "format": "int32",
2628
+ "nullable": true
2629
+ }
2630
+ }
2631
+ },
2632
+ "createProposalRequest": {
2633
+ "type": "object",
2634
+ "properties": {
2635
+ "name": {
2636
+ "type": "string",
2637
+ "nullable": true
2638
+ },
2639
+ "owner_id": {
2640
+ "type": "string",
2641
+ "nullable": true
2642
+ },
2643
+ "status": {
2644
+ "type": "string",
2645
+ "nullable": true
2646
+ }
2647
+ }
2648
+ },
2649
+ "createUserInput": {
2650
+ "type": "object",
2651
+ "properties": {
2652
+ "userPrincipalName": {
2653
+ "type": "string"
2654
+ },
2655
+ "displayName": {
2656
+ "type": "string"
2657
+ },
2658
+ "givenName": {
2659
+ "type": "string"
2660
+ },
2661
+ "surname": {
2662
+ "type": "string"
2663
+ },
2664
+ "jobTitle": {
2665
+ "type": "string"
2666
+ },
2667
+ "mobilePhone": {
2668
+ "type": "string"
2669
+ },
2670
+ "streetAddress": {
2671
+ "type": "string"
2672
+ },
2673
+ "city": {
2674
+ "type": "string"
2675
+ },
2676
+ "postalCode": {
2677
+ "type": "string"
2678
+ },
2679
+ "country": {
2680
+ "type": "string"
2681
+ },
2682
+ "sanityId": {
2683
+ "type": "string"
2684
+ }
2685
+ }
2686
+ },
2687
+ "createUserResult": {
2688
+ "type": "object",
2689
+ "properties": {
2690
+ "alreadyExisted": {
2691
+ "type": "boolean"
2692
+ },
2693
+ "userObjectId": {
2694
+ "type": "string"
2695
+ },
2696
+ "userPrincipalName": {
2697
+ "type": "string"
2698
+ },
2699
+ "temporaryPassword": {
2700
+ "type": "string"
2701
+ }
2702
+ }
2703
+ },
2704
+ "directoryOperationResult": {
2705
+ "type": "object",
2706
+ "properties": {
2707
+ "changed": {
2708
+ "type": "boolean"
2709
+ }
2710
+ }
2711
+ },
2712
+ "directoryUserRef": {
2713
+ "type": "object",
2714
+ "properties": {
2715
+ "userObjectId": {
2716
+ "type": "string"
2717
+ }
2718
+ }
2719
+ },
2720
+ "disableUserResult": {
2721
+ "type": "object",
2722
+ "properties": {
2723
+ "found": {
2724
+ "type": "boolean"
2725
+ },
2726
+ "wasAlreadyDisabled": {
2727
+ "type": "boolean"
2728
+ },
2729
+ "userObjectId": {
2730
+ "type": "string"
2731
+ },
2732
+ "userPrincipalName": {
2733
+ "type": "string"
2734
+ }
2735
+ }
2736
+ },
2737
+ "employeeReference": {
2738
+ "type": "object",
2739
+ "properties": {
2740
+ "sanityType": {
2741
+ "enum": [
2742
+ "reference"
2743
+ ],
2744
+ "type": "string",
2745
+ "default": "reference"
2746
+ },
2747
+ "sanityRef": {
2748
+ "type": "string"
2749
+ },
2750
+ "sanityWeak": {
2751
+ "type": "boolean"
2752
+ }
2753
+ }
2754
+ },
2755
+ "employeeSystemAccess": {
2756
+ "type": "object",
2757
+ "properties": {
2758
+ "key": {
2759
+ "type": "string"
2760
+ },
2761
+ "label": {
2762
+ "type": "string"
2763
+ },
2764
+ "assigned": {
2765
+ "type": "boolean"
2766
+ },
2767
+ "kind": {
2768
+ "type": "string"
2769
+ },
2770
+ "notImplemented": {
2771
+ "type": "boolean"
2772
+ },
2773
+ "assignedRoleId": {
2774
+ "type": "string"
2775
+ },
2776
+ "availableRoles": {
2777
+ "type": "array",
2778
+ "items": {
2779
+ "$ref": "#/components/schemas/systemRoleOption"
2780
+ }
2781
+ }
2782
+ }
2783
+ },
2784
+ "employeeSystemAccessRow": {
2785
+ "type": "object",
2786
+ "properties": {
2787
+ "upn": {
2788
+ "type": "string"
2789
+ },
2790
+ "systems": {
2791
+ "type": "array",
2792
+ "items": {
2793
+ "$ref": "#/components/schemas/employeeSystemAccess"
2794
+ }
2795
+ }
2796
+ }
2797
+ },
2798
+ "feedback": {
2799
+ "type": "object",
2800
+ "properties": {
2801
+ "message": {
2802
+ "type": "string"
2803
+ }
2804
+ }
2805
+ },
2806
+ "flowcaseProposal": {
2807
+ "type": "object",
2808
+ "properties": {
2809
+ "id": {
2810
+ "type": "string",
2811
+ "nullable": true
2812
+ },
2813
+ "name": {
2814
+ "type": "string",
2815
+ "nullable": true
2816
+ },
2817
+ "api_owner_id": {
2818
+ "type": "string",
2819
+ "nullable": true
2820
+ },
2821
+ "api_owner_name": {
2822
+ "type": "string",
2823
+ "nullable": true
2824
+ },
2825
+ "owner_id": {
2826
+ "type": "string",
2827
+ "nullable": true
2828
+ },
2829
+ "owner_name": {
2830
+ "type": "string",
2831
+ "nullable": true
2832
+ },
2833
+ "status": {
2834
+ "type": "string",
2835
+ "nullable": true
2836
+ },
2837
+ "archived": {
2838
+ "type": "boolean",
2839
+ "nullable": true
2840
+ },
2841
+ "created_at": {
2842
+ "type": "string",
2843
+ "format": "date-time",
2844
+ "nullable": true
2845
+ },
2846
+ "updated_at": {
2847
+ "type": "string",
2848
+ "format": "date-time",
2849
+ "nullable": true
2850
+ }
2851
+ }
2852
+ },
2853
+ "flowcaseTailoredCv": {
2854
+ "type": "object",
2855
+ "properties": {
2856
+ "id": {
2857
+ "type": "string",
2858
+ "nullable": true
2859
+ },
2860
+ "user_id": {
2861
+ "type": "string",
2862
+ "nullable": true
2863
+ },
2864
+ "proposal_id": {
2865
+ "type": "string",
2866
+ "nullable": true
2867
+ },
2868
+ "name": {
2869
+ "type": "string",
2870
+ "nullable": true
2871
+ },
2872
+ "email": {
2873
+ "type": "string",
2874
+ "nullable": true
2875
+ },
2876
+ "title": {
2877
+ "type": "string",
2878
+ "nullable": true
2879
+ },
2880
+ "status": {
2881
+ "type": "string",
2882
+ "nullable": true
2883
+ },
2884
+ "created_at": {
2885
+ "type": "string",
2886
+ "format": "date-time",
2887
+ "nullable": true
2888
+ },
2889
+ "updated_at": {
2890
+ "type": "string",
2891
+ "format": "date-time",
2892
+ "nullable": true
2893
+ }
2894
+ }
2895
+ },
2896
+ "gadgetBudget": {
2897
+ "type": "object",
2898
+ "properties": {
2899
+ "sanityType": {
2900
+ "enum": [
2901
+ "gadget"
2902
+ ],
2903
+ "type": "string",
2904
+ "default": "gadget"
2905
+ },
2906
+ "employee": {
2907
+ "$ref": "#/components/schemas/sanityOrderEmployee"
2908
+ },
2909
+ "sanityCreatedAt": {
2910
+ "type": "string"
2911
+ },
2912
+ "sanityId": {
2913
+ "type": "string"
2914
+ },
2915
+ "sanityRev": {
2916
+ "type": "string"
2917
+ },
2918
+ "sanityUpdatedAt": {
2919
+ "type": "string"
2920
+ },
2921
+ "yearlyBudgets": {
2922
+ "type": "array",
2923
+ "items": {
2924
+ "$ref": "#/components/schemas/sanityGadgetBudgetYearlyBudgetsInner"
2925
+ }
2926
+ }
2927
+ }
2928
+ },
2929
+ "geopoint": {
2930
+ "type": "object",
2931
+ "properties": {
2932
+ "sanityType": {
2933
+ "enum": [
2934
+ "geopoint"
2935
+ ],
2936
+ "type": "string",
2937
+ "default": "geopoint"
2938
+ },
2939
+ "alt": {
2940
+ "type": "number",
2941
+ "format": "double"
2942
+ },
2943
+ "lat": {
2944
+ "type": "number",
2945
+ "format": "double"
2946
+ },
2947
+ "lng": {
2948
+ "type": "number",
2949
+ "format": "double"
2950
+ }
2951
+ }
2952
+ },
2953
+ "licenseAvailability": {
2954
+ "type": "object",
2955
+ "properties": {
2956
+ "skuId": {
2957
+ "type": "string"
2958
+ },
2959
+ "skuPartNumber": {
2960
+ "type": "string"
2961
+ },
2962
+ "enabled": {
2963
+ "type": "integer",
2964
+ "format": "int32"
2965
+ },
2966
+ "consumed": {
2967
+ "type": "integer",
2968
+ "format": "int32"
2969
+ },
2970
+ "available": {
2971
+ "type": "integer",
2972
+ "format": "int32"
2973
+ },
2974
+ "isConfigured": {
2975
+ "type": "boolean"
2976
+ }
2977
+ }
2978
+ },
2979
+ "licenseSkuRef": {
2980
+ "type": "object",
2981
+ "properties": {
2982
+ "skuId": {
2983
+ "type": "string"
2984
+ }
2985
+ }
2986
+ },
2987
+ "listEmployeeSystemAccessBatchRequest": {
2988
+ "type": "object",
2989
+ "properties": {
2990
+ "upns": {
2991
+ "type": "array",
2992
+ "items": {
2993
+ "type": "string"
2994
+ }
2995
+ }
2996
+ }
2997
+ },
2998
+ "pageEmployeeOrderInner": {
2999
+ "type": "object",
3000
+ "properties": {
3001
+ "sanityType": {
3002
+ "enum": [
3003
+ "reference"
3004
+ ],
3005
+ "type": "string",
3006
+ "default": "reference"
3007
+ },
3008
+ "sanityKey": {
3009
+ "type": "string"
3010
+ },
3011
+ "sanityRef": {
3012
+ "type": "string"
3013
+ },
3014
+ "sanityWeak": {
3015
+ "type": "boolean"
3016
+ }
3017
+ }
3018
+ },
3019
+ "pageEquipmentInner": {
3020
+ "type": "object",
3021
+ "properties": {
3022
+ "sanityType": {
3023
+ "enum": [
3024
+ "reference"
3025
+ ],
3026
+ "type": "string",
3027
+ "default": "reference"
3028
+ },
3029
+ "sanityKey": {
3030
+ "type": "string"
3031
+ },
3032
+ "sanityRef": {
3033
+ "type": "string"
3034
+ },
3035
+ "sanityWeak": {
3036
+ "type": "boolean"
3037
+ }
3038
+ }
3039
+ },
3040
+ "patchEmployee": {
3041
+ "type": "object",
3042
+ "properties": {
3043
+ "gender": {
3044
+ "enum": [
3045
+ "male",
3046
+ "female",
3047
+ "These are not the genders you are looking for"
3048
+ ],
3049
+ "type": "string",
3050
+ "default": "male",
3051
+ "nullable": true
3052
+ },
3053
+ "maritalStatus": {
3054
+ "enum": [
3055
+ "single",
3056
+ "married",
3057
+ "cohabitant"
3058
+ ],
3059
+ "type": "string",
3060
+ "default": "single",
3061
+ "nullable": true
3062
+ },
3063
+ "parentalLeaveCoverage": {
3064
+ "enum": [
3065
+ "80",
3066
+ "100"
3067
+ ],
3068
+ "type": "string",
3069
+ "default": "80",
3070
+ "nullable": true
3071
+ },
3072
+ "sanityType": {
3073
+ "enum": [
3074
+ "employee"
3075
+ ],
3076
+ "type": "string",
3077
+ "default": "employee",
3078
+ "nullable": true
3079
+ },
3080
+ "about": {
3081
+ "type": "string"
3082
+ },
3083
+ "active": {
3084
+ "type": "boolean",
3085
+ "nullable": true
3086
+ },
3087
+ "address": {
3088
+ "type": "string"
3089
+ },
3090
+ "allergies": {
3091
+ "type": "array",
3092
+ "items": {
3093
+ "type": "string"
3094
+ }
3095
+ },
3096
+ "birth_date": {
3097
+ "type": "string"
3098
+ },
3099
+ "blurred_image": {
3100
+ "$ref": "#/components/schemas/sanityPatchPageMetaImage"
3101
+ },
3102
+ "boardMember": {
3103
+ "type": "boolean",
3104
+ "nullable": true
3105
+ },
3106
+ "cliftonStrengths": {
3107
+ "type": "array",
3108
+ "items": {
3109
+ "$ref": "#/components/schemas/sanityCreateEmployeeCliftonStrengthsInner"
3110
+ }
3111
+ },
3112
+ "coinbaseAccountEmail": {
3113
+ "type": "string"
3114
+ },
3115
+ "commissionTier": {
3116
+ "$ref": "#/components/schemas/commissionTierReference"
3117
+ },
3118
+ "education": {
3119
+ "type": "string"
3120
+ },
3121
+ "email": {
3122
+ "type": "string"
3123
+ },
3124
+ "equipment": {
3125
+ "type": "array",
3126
+ "items": {
3127
+ "$ref": "#/components/schemas/pageEquipmentInner"
3128
+ }
3129
+ },
3130
+ "externalId": {
3131
+ "type": "string"
3132
+ },
3133
+ "github": {
3134
+ "type": "string"
3135
+ },
3136
+ "graduationYear": {
3137
+ "type": "number",
3138
+ "format": "double",
3139
+ "nullable": true
3140
+ },
3141
+ "groups": {
3142
+ "type": "array",
3143
+ "items": {
3144
+ "$ref": "#/components/schemas/sanityCreateEmployeeGroupsInner"
3145
+ }
3146
+ },
3147
+ "image": {
3148
+ "$ref": "#/components/schemas/sanityPatchPageMetaImage"
3149
+ },
3150
+ "innovativeSalary": {
3151
+ "type": "boolean",
3152
+ "nullable": true
3153
+ },
3154
+ "innovativeSalaryPercentage": {
3155
+ "type": "number",
3156
+ "format": "double",
3157
+ "nullable": true
3158
+ },
3159
+ "isBot": {
3160
+ "type": "boolean",
3161
+ "nullable": true
3162
+ },
3163
+ "isExternal": {
3164
+ "type": "boolean",
3165
+ "nullable": true
3166
+ },
3167
+ "isPublic": {
3168
+ "type": "boolean",
3169
+ "nullable": true
3170
+ },
3171
+ "isSeekingProject": {
3172
+ "type": "boolean",
3173
+ "nullable": true
3174
+ },
3175
+ "linkedin": {
3176
+ "type": "string"
3177
+ },
3178
+ "manager": {
3179
+ "$ref": "#/components/schemas/employeeReference"
3180
+ },
3181
+ "media": {
3182
+ "type": "array",
3183
+ "items": {
3184
+ "$ref": "#/components/schemas/componentGalleryMediaInner"
3185
+ }
3186
+ },
3187
+ "name": {
3188
+ "type": "string"
3189
+ },
3190
+ "nextOfKin": {
3191
+ "type": "array",
3192
+ "items": {
3193
+ "$ref": "#/components/schemas/sanityEmployeeNextOfKinInner"
3194
+ }
3195
+ },
3196
+ "nrOfChildren": {
3197
+ "type": "number",
3198
+ "format": "double",
3199
+ "nullable": true
3200
+ },
3201
+ "parentalLeaveStartDate": {
3202
+ "type": "string"
3203
+ },
3204
+ "personalProjectRequirements": {
3205
+ "type": "string"
3206
+ },
3207
+ "position": {
3208
+ "type": "string"
3209
+ },
3210
+ "salaryConfig": {
3211
+ "$ref": "#/components/schemas/pickSanityPatchEmployeeExcludeKeyofSanityPatchEmployeeScopeGrantsSalaryConfig"
3212
+ },
3213
+ "settings": {
3214
+ "$ref": "#/components/schemas/pickSanityPatchEmployeeExcludeKeyofSanityPatchEmployeeScopeGrantsSettings"
3215
+ },
3216
+ "slug": {
3217
+ "$ref": "#/components/schemas/slug"
3218
+ },
3219
+ "start_date": {
3220
+ "type": "string"
3221
+ },
3222
+ "tags": {
3223
+ "type": "array",
3224
+ "items": {
3225
+ "$ref": "#/components/schemas/sanityCreateEmployeeTagsInner"
3226
+ }
3227
+ },
3228
+ "technologies": {
3229
+ "type": "array",
3230
+ "items": {
3231
+ "$ref": "#/components/schemas/sanityCreateEmployeeTechnologiesInner"
3232
+ }
3233
+ },
3234
+ "telephone": {
3235
+ "type": "string"
3236
+ },
3237
+ "additionalProperties": {
3238
+ "type": "object",
3239
+ "additionalProperties": {
3240
+ "type": "object"
3241
+ }
3242
+ }
3243
+ }
3244
+ },
3245
+ "pickSanityPatchEmployeeExcludeKeyofSanityPatchEmployeeScopeGrantsSalaryConfig": {
3246
+ "type": "object",
3247
+ "properties": {
3248
+ "model": {
3249
+ "enum": [
3250
+ "snokam.ceo",
3251
+ "snokam.employee"
3252
+ ],
3253
+ "type": "string",
3254
+ "default": "snokam.ceo",
3255
+ "nullable": true
3256
+ }
3257
+ }
3258
+ },
3259
+ "pickSanityPatchEmployeeExcludeKeyofSanityPatchEmployeeScopeGrantsSettings": {
3260
+ "type": "object",
3261
+ "properties": {
3262
+ "colorScheme": {
3263
+ "enum": [
3264
+ "dark",
3265
+ "light",
3266
+ "system"
3267
+ ],
3268
+ "type": "string",
3269
+ "default": "dark",
3270
+ "nullable": true
3271
+ }
3272
+ }
3273
+ },
3274
+ "presentationSpeaker": {
3275
+ "type": "object",
3276
+ "properties": {
3277
+ "name": {
3278
+ "type": "string",
3279
+ "nullable": true
3280
+ },
3281
+ "email": {
3282
+ "type": "string",
3283
+ "nullable": true
3284
+ },
3285
+ "flowcaseUserId": {
3286
+ "type": "string",
3287
+ "nullable": true
3288
+ }
3289
+ },
3290
+ "nullable": true
3291
+ },
3292
+ "protectedEmployee": {
3293
+ "type": "object",
3294
+ "properties": {
3295
+ "started": {
3296
+ "type": "boolean",
3297
+ "nullable": true
3298
+ },
3299
+ "gender": {
3300
+ "enum": [
3301
+ "female",
3302
+ "male",
3303
+ "These are not the genders you are looking for"
3304
+ ],
3305
+ "type": "string",
3306
+ "default": "female"
3307
+ },
3308
+ "maritalStatus": {
3309
+ "enum": [
3310
+ "cohabitant",
3311
+ "married",
3312
+ "single"
3313
+ ],
3314
+ "type": "string",
3315
+ "default": "cohabitant",
3316
+ "nullable": true
3317
+ },
3318
+ "parentalLeaveCoverage": {
3319
+ "enum": [
3320
+ "80",
3321
+ "100"
3322
+ ],
3323
+ "type": "string",
3324
+ "default": "80",
3325
+ "nullable": true
3326
+ },
3327
+ "sanityType": {
3328
+ "enum": [
3329
+ "employee"
3330
+ ],
3331
+ "type": "string",
3332
+ "default": "employee"
3333
+ },
3334
+ "about": {
3335
+ "type": "string"
3336
+ },
3337
+ "active": {
3338
+ "type": "boolean"
3339
+ },
3340
+ "address": {
3341
+ "type": "string"
3342
+ },
3343
+ "allergies": {
3344
+ "type": "array",
3345
+ "items": {
3346
+ "type": "string"
3347
+ }
3348
+ },
3349
+ "birth_date": {
3350
+ "type": "string"
3351
+ },
3352
+ "blurred_image": {
3353
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
3354
+ },
3355
+ "boardMember": {
3356
+ "type": "boolean"
3357
+ },
3358
+ "cliftonStrengths": {
3359
+ "type": "array",
3360
+ "items": {
3361
+ "$ref": "#/components/schemas/sanityEmployeeCliftonStrengthsInner"
3362
+ }
3363
+ },
3364
+ "coinbaseAccountEmail": {
3365
+ "type": "string"
3366
+ },
3367
+ "commissionTier": {
3368
+ "$ref": "#/components/schemas/sanityEmployeeCommissionTier"
3369
+ },
3370
+ "education": {
3371
+ "type": "string"
3372
+ },
3373
+ "email": {
3374
+ "type": "string"
3375
+ },
3376
+ "equipment": {
3377
+ "type": "array",
3378
+ "items": {
3379
+ "$ref": "#/components/schemas/sanityEmployeeEquipmentInner"
3380
+ }
3381
+ },
3382
+ "externalId": {
3383
+ "type": "string"
3384
+ },
3385
+ "github": {
3386
+ "type": "string"
3387
+ },
3388
+ "graduationYear": {
3389
+ "type": "number",
3390
+ "format": "double"
3391
+ },
3392
+ "groups": {
3393
+ "type": "array",
3394
+ "items": {
3395
+ "$ref": "#/components/schemas/sanityEmployeeGroupsInner"
3396
+ }
3397
+ },
3398
+ "image": {
3399
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
3400
+ },
3401
+ "innovativeSalary": {
3402
+ "type": "boolean"
3403
+ },
3404
+ "innovativeSalaryPercentage": {
3405
+ "type": "number",
3406
+ "format": "double"
3407
+ },
3408
+ "isBot": {
3409
+ "type": "boolean"
3410
+ },
3411
+ "isExternal": {
3412
+ "type": "boolean"
3413
+ },
3414
+ "isPublic": {
3415
+ "type": "boolean"
3416
+ },
3417
+ "isSeekingProject": {
3418
+ "type": "boolean"
3419
+ },
3420
+ "linkedin": {
3421
+ "type": "string"
3422
+ },
3423
+ "manager": {
3424
+ "$ref": "#/components/schemas/sanityEmployeeManager"
3425
+ },
3426
+ "media": {
3427
+ "type": "array",
3428
+ "items": {
3429
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner"
3430
+ }
3431
+ },
3432
+ "name": {
3433
+ "type": "string"
3434
+ },
3435
+ "nextOfKin": {
3436
+ "type": "array",
3437
+ "items": {
3438
+ "$ref": "#/components/schemas/sanityEmployeeNextOfKinInner"
3439
+ }
3440
+ },
3441
+ "nrOfChildren": {
3442
+ "type": "number",
3443
+ "format": "double"
3444
+ },
3445
+ "parentalLeaveStartDate": {
3446
+ "type": "string"
3447
+ },
3448
+ "personalProjectRequirements": {
3449
+ "type": "string"
3450
+ },
3451
+ "position": {
3452
+ "type": "string"
3453
+ },
3454
+ "salaryConfig": {
3455
+ "$ref": "#/components/schemas/sanityEmployeeSalaryConfig"
3456
+ },
3457
+ "sanityCreatedAt": {
3458
+ "type": "string"
3459
+ },
3460
+ "sanityId": {
3461
+ "type": "string"
3462
+ },
3463
+ "sanityRev": {
3464
+ "type": "string"
3465
+ },
3466
+ "sanityUpdatedAt": {
3467
+ "type": "string"
3468
+ },
3469
+ "scopeGrants": {
3470
+ "type": "array",
3471
+ "items": {
3472
+ "type": "string"
3473
+ }
3474
+ },
3475
+ "settings": {
3476
+ "$ref": "#/components/schemas/sanityEmployeeSettings"
3477
+ },
3478
+ "slug": {
3479
+ "$ref": "#/components/schemas/slug"
3480
+ },
3481
+ "start_date": {
3482
+ "type": "string"
3483
+ },
3484
+ "tags": {
3485
+ "type": "array",
3486
+ "items": {
3487
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
3488
+ }
3489
+ },
3490
+ "technologies": {
3491
+ "type": "array",
3492
+ "items": {
3493
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTechnologiesInner"
3494
+ }
3495
+ },
3496
+ "telephone": {
3497
+ "type": "string"
3498
+ }
3499
+ }
3500
+ },
3501
+ "publicEmployee": {
3502
+ "type": "object",
3503
+ "properties": {
3504
+ "sanityId": {
3505
+ "type": "string"
3506
+ },
3507
+ "sanityType": {
3508
+ "type": "string"
3509
+ },
3510
+ "active": {
3511
+ "type": "boolean",
3512
+ "nullable": true
3513
+ },
3514
+ "isPublic": {
3515
+ "type": "boolean",
3516
+ "nullable": true
3517
+ },
3518
+ "image": {
3519
+ "$ref": "#/components/schemas/sanityImage"
3520
+ },
3521
+ "tags": {
3522
+ "type": "array",
3523
+ "items": {
3524
+ "$ref": "#/components/schemas/tag"
3525
+ }
3526
+ },
3527
+ "technologies": {
3528
+ "type": "array",
3529
+ "items": {
3530
+ "$ref": "#/components/schemas/technology"
3531
+ }
3532
+ },
3533
+ "started": {
3534
+ "type": "boolean"
3535
+ },
3536
+ "media": {
3537
+ "type": "array",
3538
+ "items": {
3539
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner"
3540
+ }
3541
+ },
3542
+ "name": {
3543
+ "type": "string"
3544
+ },
3545
+ "slug": {
3546
+ "$ref": "#/components/schemas/slug"
3547
+ },
3548
+ "gender": {
3549
+ "type": "string"
3550
+ },
3551
+ "email": {
3552
+ "type": "string"
3553
+ },
3554
+ "telephone": {
3555
+ "type": "string"
3556
+ },
3557
+ "position": {
3558
+ "type": "string"
3559
+ },
3560
+ "education": {
3561
+ "type": "string"
3562
+ },
3563
+ "about": {
3564
+ "type": "string"
3565
+ },
3566
+ "linkedin": {
3567
+ "type": "string"
3568
+ },
3569
+ "github": {
3570
+ "type": "string"
3571
+ },
3572
+ "birthDate": {
3573
+ "type": "string",
3574
+ "format": "date-time",
3575
+ "nullable": true
3576
+ },
3577
+ "startDate": {
3578
+ "type": "string"
3579
+ }
3580
+ }
3581
+ },
3582
+ "sanityAssetSourceData": {
3583
+ "type": "object",
3584
+ "properties": {
3585
+ "sanityType": {
3586
+ "enum": [
3587
+ "sanity.assetSourceData"
3588
+ ],
3589
+ "type": "string",
3590
+ "default": "sanity.assetSourceData"
3591
+ },
3592
+ "id": {
3593
+ "type": "string"
3594
+ },
3595
+ "name": {
3596
+ "type": "string"
3597
+ },
3598
+ "url": {
3599
+ "type": "string"
3600
+ }
3601
+ }
3602
+ },
3603
+ "sanityCreateEmployeeCliftonStrengthsInner": {
3604
+ "type": "object",
3605
+ "properties": {
3606
+ "sanityType": {
3607
+ "enum": [
3608
+ "reference"
3609
+ ],
3610
+ "type": "string",
3611
+ "default": "reference"
3612
+ },
3613
+ "sanityKey": {
3614
+ "type": "string"
3615
+ },
3616
+ "sanityRef": {
3617
+ "type": "string"
3618
+ },
3619
+ "sanityWeak": {
3620
+ "type": "boolean"
3621
+ }
3622
+ }
3623
+ },
3624
+ "sanityCreateEmployeeGroupsInner": {
3625
+ "type": "object",
3626
+ "properties": {
3627
+ "sanityType": {
3628
+ "enum": [
3629
+ "reference"
3630
+ ],
3631
+ "type": "string",
3632
+ "default": "reference"
3633
+ },
3634
+ "sanityKey": {
3635
+ "type": "string"
3636
+ },
3637
+ "sanityRef": {
3638
+ "type": "string"
3639
+ },
3640
+ "sanityWeak": {
3641
+ "type": "boolean"
3642
+ }
3643
+ }
3644
+ },
3645
+ "sanityCreateEmployeeTagsInner": {
3646
+ "type": "object",
3647
+ "properties": {
3648
+ "sanityType": {
3649
+ "enum": [
3650
+ "reference"
3651
+ ],
3652
+ "type": "string",
3653
+ "default": "reference"
3654
+ },
3655
+ "sanityKey": {
3656
+ "type": "string"
3657
+ },
3658
+ "sanityRef": {
3659
+ "type": "string"
3660
+ },
3661
+ "sanityWeak": {
3662
+ "type": "boolean"
3663
+ }
3664
+ }
3665
+ },
3666
+ "sanityCreateEmployeeTechnologiesInner": {
3667
+ "type": "object",
3668
+ "properties": {
3669
+ "sanityType": {
3670
+ "enum": [
3671
+ "reference"
3672
+ ],
3673
+ "type": "string",
3674
+ "default": "reference"
3675
+ },
3676
+ "sanityKey": {
3677
+ "type": "string"
3678
+ },
3679
+ "sanityRef": {
3680
+ "type": "string"
3681
+ },
3682
+ "sanityWeak": {
3683
+ "type": "boolean"
3684
+ }
3685
+ }
3686
+ },
3687
+ "sanityEmployeeCliftonStrengthsInner": {
3688
+ "type": "object",
3689
+ "properties": {
3690
+ "domain": {
3691
+ "enum": [
3692
+ "executing",
3693
+ "influencing",
3694
+ "relationship_building",
3695
+ "strategic_thinking"
3696
+ ],
3697
+ "type": "string",
3698
+ "default": "executing",
3699
+ "nullable": true
3700
+ },
3701
+ "sanityType": {
3702
+ "enum": [
3703
+ "cliftonStrength"
3704
+ ],
3705
+ "type": "string",
3706
+ "default": "cliftonStrength"
3707
+ },
3708
+ "sanityCreatedAt": {
3709
+ "type": "string"
3710
+ },
3711
+ "sanityId": {
3712
+ "type": "string"
3713
+ },
3714
+ "sanityRev": {
3715
+ "type": "string"
3716
+ },
3717
+ "sanityUpdatedAt": {
3718
+ "type": "string"
3719
+ },
3720
+ "strength": {
3721
+ "type": "string"
3722
+ }
3723
+ }
3724
+ },
3725
+ "sanityEmployeeCommissionTier": {
3726
+ "type": "object",
3727
+ "properties": {
3728
+ "sanityType": {
3729
+ "enum": [
3730
+ "commissionTier"
3731
+ ],
3732
+ "type": "string",
3733
+ "default": "commissionTier"
3734
+ },
3735
+ "commission": {
3736
+ "type": "number",
3737
+ "format": "double"
3738
+ },
3739
+ "sanityCreatedAt": {
3740
+ "type": "string"
3741
+ },
3742
+ "sanityId": {
3743
+ "type": "string"
3744
+ },
3745
+ "sanityRev": {
3746
+ "type": "string"
3747
+ },
3748
+ "sanityUpdatedAt": {
3749
+ "type": "string"
3750
+ },
3751
+ "title": {
3752
+ "type": "string"
3753
+ }
3754
+ }
3755
+ },
3756
+ "sanityEmployeeEquipmentInner": {
3757
+ "type": "object",
3758
+ "properties": {
3759
+ "sanityType": {
3760
+ "enum": [
3761
+ "equipment"
3762
+ ],
3763
+ "type": "string",
3764
+ "default": "equipment"
3765
+ },
3766
+ "description": {
3767
+ "type": "array",
3768
+ "items": {
3769
+ "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
3770
+ }
3771
+ },
3772
+ "image": {
3773
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
3774
+ },
3775
+ "images": {
3776
+ "type": "array",
3777
+ "items": {
3778
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsArticlesInnerMediaOneOf"
3779
+ }
3780
+ },
3781
+ "sanityId": {
3782
+ "type": "string"
3783
+ },
3784
+ "title": {
3785
+ "type": "string"
3786
+ }
3787
+ }
3788
+ },
3789
+ "sanityEmployeeGroupsInner": {
3790
+ "type": "object",
3791
+ "properties": {
3792
+ "sanityType": {
3793
+ "enum": [
3794
+ "group"
3795
+ ],
3796
+ "type": "string",
3797
+ "default": "group"
3798
+ },
3799
+ "description": {
3800
+ "type": "array",
3801
+ "items": {
3802
+ "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
3803
+ }
3804
+ },
3805
+ "image": {
3806
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsArticlesInnerMediaOneOf"
3807
+ },
3808
+ "leaders": {
3809
+ "type": "array",
3810
+ "items": {
3811
+ "$ref": "#/components/schemas/pageEmployeeOrderInner"
3812
+ }
3813
+ },
3814
+ "name": {
3815
+ "type": "string"
3816
+ },
3817
+ "permissions": {
3818
+ "type": "string"
3819
+ },
3820
+ "sanityCreatedAt": {
3821
+ "type": "string"
3822
+ },
3823
+ "sanityId": {
3824
+ "type": "string"
3825
+ },
3826
+ "sanityRev": {
3827
+ "type": "string"
3828
+ },
3829
+ "sanityUpdatedAt": {
3830
+ "type": "string"
3831
+ },
3832
+ "scopeGrants": {
3833
+ "type": "array",
3834
+ "items": {
3835
+ "type": "string"
3836
+ }
3837
+ }
3838
+ }
3839
+ },
3840
+ "sanityEmployeeManager": {
3841
+ "type": "object",
3842
+ "properties": {
3843
+ "sanityType": {
3844
+ "enum": [
3845
+ "employee"
3846
+ ],
3847
+ "type": "string",
3848
+ "default": "employee"
3849
+ },
3850
+ "email": {
3851
+ "type": "string"
3852
+ },
3853
+ "image": {
3854
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
3855
+ },
3856
+ "isBot": {
3857
+ "type": "boolean",
3858
+ "nullable": true
3859
+ },
3860
+ "isExternal": {
3861
+ "type": "boolean",
3862
+ "nullable": true
3863
+ },
3864
+ "name": {
3865
+ "type": "string"
3866
+ },
3867
+ "sanityId": {
3868
+ "type": "string"
3869
+ },
3870
+ "slug": {
3871
+ "$ref": "#/components/schemas/slug"
3872
+ },
3873
+ "tags": {
3874
+ "type": "array",
3875
+ "items": {
3876
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
3877
+ }
3878
+ },
3879
+ "telephone": {
3880
+ "type": "string"
3881
+ }
3882
+ }
3883
+ },
3884
+ "sanityEmployeeNextOfKinInner": {
3885
+ "type": "object",
3886
+ "properties": {
3887
+ "sanityType": {
3888
+ "enum": [
3889
+ "nextofkin"
3890
+ ],
3891
+ "type": "string",
3892
+ "default": "nextofkin"
3893
+ },
3894
+ "name": {
3895
+ "type": "string"
3896
+ },
3897
+ "sanityKey": {
3898
+ "type": "string"
3899
+ },
3900
+ "telephone": {
3901
+ "type": "string"
3902
+ }
3903
+ }
3904
+ },
3905
+ "sanityEmployeeSalaryConfig": {
3906
+ "type": "object",
3907
+ "properties": {
3908
+ "model": {
3909
+ "enum": [
3910
+ "snokam.ceo",
3911
+ "snokam.employee"
3912
+ ],
3913
+ "type": "string",
3914
+ "default": "snokam.ceo",
3915
+ "nullable": true
3916
+ }
3917
+ }
3918
+ },
3919
+ "sanityEmployeeSettings": {
3920
+ "type": "object",
3921
+ "properties": {
3922
+ "colorScheme": {
3923
+ "enum": [
3924
+ "dark",
3925
+ "light",
3926
+ "system"
3927
+ ],
3928
+ "type": "string",
3929
+ "default": "dark",
3930
+ "nullable": true
3931
+ }
3932
+ }
3933
+ },
3934
+ "sanityGadgetBudgetYearlyBudgetsInner": {
3935
+ "type": "object",
3936
+ "properties": {
3937
+ "sanityType": {
3938
+ "enum": [
3939
+ "yearlyBudget"
3940
+ ],
3941
+ "type": "string",
3942
+ "default": "yearlyBudget"
3943
+ },
3944
+ "amount": {
3945
+ "type": "number",
3946
+ "format": "double"
3947
+ },
3948
+ "equipmentList": {
3949
+ "type": "array",
3950
+ "items": {
3951
+ "$ref": "#/components/schemas/sanityGadgetBudgetYearlyBudgetsInnerEquipmentListInner"
3952
+ }
3953
+ },
3954
+ "sanityKey": {
3955
+ "type": "string"
3956
+ },
3957
+ "year": {
3958
+ "type": "number",
3959
+ "format": "double"
3960
+ }
3961
+ }
3962
+ },
3963
+ "sanityGadgetBudgetYearlyBudgetsInnerEquipmentListInner": {
3964
+ "type": "object",
3965
+ "properties": {
3966
+ "actualInstance": {
3967
+ "type": "object"
3968
+ },
3969
+ "isNullable": {
3970
+ "type": "boolean"
3971
+ },
3972
+ "schemaType": {
3973
+ "type": "string"
3974
+ }
3975
+ }
3976
+ },
3977
+ "sanityImage": {
3978
+ "type": "object",
3979
+ "properties": {
3980
+ "sanityType": {
3981
+ "enum": [
3982
+ "image"
3983
+ ],
3984
+ "type": "string",
3985
+ "default": "image"
3986
+ },
3987
+ "asset": {
3988
+ "$ref": "#/components/schemas/sanityImageAsset"
3989
+ },
3990
+ "sanityId": {
3991
+ "type": "string"
3992
+ },
3993
+ "sanityKey": {
3994
+ "type": "string"
3995
+ },
3996
+ "additionalProperties": {
3997
+ "type": "object",
3998
+ "additionalProperties": {
3999
+ "type": "object"
4000
+ }
4001
+ }
4002
+ }
4003
+ },
4004
+ "sanityImageAsset": {
4005
+ "type": "object",
4006
+ "properties": {
4007
+ "sanityType": {
4008
+ "enum": [
4009
+ "sanity.imageAsset"
4010
+ ],
4011
+ "type": "string",
4012
+ "default": "sanity.imageAsset"
4013
+ },
4014
+ "altText": {
4015
+ "type": "string"
4016
+ },
4017
+ "assetId": {
4018
+ "type": "string"
4019
+ },
4020
+ "description": {
4021
+ "type": "string"
4022
+ },
4023
+ "extension": {
4024
+ "type": "string"
4025
+ },
4026
+ "label": {
4027
+ "type": "string"
4028
+ },
4029
+ "metadata": {
4030
+ "$ref": "#/components/schemas/sanityImageMetadata"
4031
+ },
4032
+ "mimeType": {
4033
+ "type": "string"
4034
+ },
4035
+ "originalFilename": {
4036
+ "type": "string"
4037
+ },
4038
+ "path": {
4039
+ "type": "string"
4040
+ },
4041
+ "sanityCreatedAt": {
4042
+ "type": "string"
4043
+ },
4044
+ "sanityId": {
4045
+ "type": "string"
4046
+ },
4047
+ "sanityRev": {
4048
+ "type": "string"
4049
+ },
4050
+ "sanityUpdatedAt": {
4051
+ "type": "string"
4052
+ },
4053
+ "sha1hash": {
4054
+ "type": "string"
4055
+ },
4056
+ "size": {
4057
+ "type": "number",
4058
+ "format": "double"
4059
+ },
4060
+ "source": {
4061
+ "$ref": "#/components/schemas/sanityAssetSourceData"
4062
+ },
4063
+ "title": {
4064
+ "type": "string"
4065
+ },
4066
+ "uploadId": {
4067
+ "type": "string"
4068
+ },
4069
+ "url": {
4070
+ "type": "string"
4071
+ },
4072
+ "additionalProperties": {
4073
+ "type": "object",
4074
+ "additionalProperties": {
4075
+ "type": "object"
4076
+ }
4077
+ }
4078
+ }
4079
+ },
4080
+ "sanityImageAssetReference": {
4081
+ "type": "object",
4082
+ "properties": {
4083
+ "sanityType": {
4084
+ "enum": [
4085
+ "reference"
4086
+ ],
4087
+ "type": "string",
4088
+ "default": "reference"
4089
+ },
4090
+ "sanityRef": {
4091
+ "type": "string"
4092
+ },
4093
+ "sanityWeak": {
4094
+ "type": "boolean"
4095
+ }
4096
+ }
4097
+ },
4098
+ "sanityImageCrop": {
4099
+ "type": "object",
4100
+ "properties": {
4101
+ "sanityType": {
4102
+ "enum": [
4103
+ "sanity.imageCrop"
4104
+ ],
4105
+ "type": "string",
4106
+ "default": "sanity.imageCrop"
4107
+ },
4108
+ "bottom": {
4109
+ "type": "number",
4110
+ "format": "double"
4111
+ },
4112
+ "left": {
4113
+ "type": "number",
4114
+ "format": "double"
4115
+ },
4116
+ "right": {
4117
+ "type": "number",
4118
+ "format": "double"
4119
+ },
4120
+ "top": {
4121
+ "type": "number",
4122
+ "format": "double"
4123
+ }
4124
+ }
4125
+ },
4126
+ "sanityImageDimensions": {
4127
+ "type": "object",
4128
+ "properties": {
4129
+ "sanityType": {
4130
+ "enum": [
4131
+ "sanity.imageDimensions"
4132
+ ],
4133
+ "type": "string",
4134
+ "default": "sanity.imageDimensions"
4135
+ },
4136
+ "aspectRatio": {
4137
+ "type": "number",
4138
+ "format": "double"
4139
+ },
4140
+ "height": {
4141
+ "type": "number",
4142
+ "format": "double"
4143
+ },
4144
+ "width": {
4145
+ "type": "number",
4146
+ "format": "double"
4147
+ }
4148
+ }
4149
+ },
4150
+ "sanityImageHotspot": {
4151
+ "type": "object",
4152
+ "properties": {
4153
+ "sanityType": {
4154
+ "enum": [
4155
+ "sanity.imageHotspot"
4156
+ ],
4157
+ "type": "string",
4158
+ "default": "sanity.imageHotspot"
4159
+ },
4160
+ "height": {
4161
+ "type": "number",
4162
+ "format": "double"
4163
+ },
4164
+ "width": {
4165
+ "type": "number",
4166
+ "format": "double"
4167
+ },
4168
+ "x": {
4169
+ "type": "number",
4170
+ "format": "double"
4171
+ },
4172
+ "y": {
4173
+ "type": "number",
4174
+ "format": "double"
4175
+ }
4176
+ }
4177
+ },
4178
+ "sanityImageMetadata": {
4179
+ "type": "object",
4180
+ "properties": {
4181
+ "sanityType": {
4182
+ "enum": [
4183
+ "sanity.imageMetadata"
4184
+ ],
4185
+ "type": "string",
4186
+ "default": "sanity.imageMetadata"
4187
+ },
4188
+ "blurHash": {
4189
+ "type": "string"
4190
+ },
4191
+ "dimensions": {
4192
+ "$ref": "#/components/schemas/sanityImageDimensions"
4193
+ },
4194
+ "hasAlpha": {
4195
+ "type": "boolean"
4196
+ },
4197
+ "isOpaque": {
4198
+ "type": "boolean"
4199
+ },
4200
+ "location": {
4201
+ "$ref": "#/components/schemas/geopoint"
4202
+ },
4203
+ "lqip": {
4204
+ "type": "string"
4205
+ },
4206
+ "palette": {
4207
+ "$ref": "#/components/schemas/sanityImagePalette"
4208
+ },
4209
+ "thumbHash": {
4210
+ "type": "string"
4211
+ }
4212
+ }
4213
+ },
4214
+ "sanityImagePalette": {
4215
+ "type": "object",
4216
+ "properties": {
4217
+ "sanityType": {
4218
+ "enum": [
4219
+ "sanity.imagePalette"
4220
+ ],
4221
+ "type": "string",
4222
+ "default": "sanity.imagePalette"
4223
+ },
4224
+ "darkMuted": {
4225
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4226
+ },
4227
+ "darkVibrant": {
4228
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4229
+ },
4230
+ "dominant": {
4231
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4232
+ },
4233
+ "lightMuted": {
4234
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4235
+ },
4236
+ "lightVibrant": {
4237
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4238
+ },
4239
+ "muted": {
4240
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4241
+ },
4242
+ "vibrant": {
4243
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
4244
+ }
4245
+ }
4246
+ },
4247
+ "sanityImagePaletteSwatch": {
4248
+ "type": "object",
4249
+ "properties": {
4250
+ "sanityType": {
4251
+ "enum": [
4252
+ "sanity.imagePaletteSwatch"
4253
+ ],
4254
+ "type": "string",
4255
+ "default": "sanity.imagePaletteSwatch"
4256
+ },
4257
+ "background": {
4258
+ "type": "string"
4259
+ },
4260
+ "foreground": {
4261
+ "type": "string"
4262
+ },
4263
+ "population": {
4264
+ "type": "number",
4265
+ "format": "double"
4266
+ },
4267
+ "title": {
4268
+ "type": "string"
4269
+ }
4270
+ }
4271
+ },
4272
+ "sanityOrderEmployee": {
4273
+ "type": "object",
4274
+ "properties": {
4275
+ "sanityType": {
4276
+ "enum": [
4277
+ "employee"
4278
+ ],
4279
+ "type": "string",
4280
+ "default": "employee"
4281
+ },
4282
+ "email": {
4283
+ "type": "string"
4284
+ },
4285
+ "image": {
4286
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
4287
+ },
4288
+ "isBot": {
4289
+ "type": "boolean",
4290
+ "nullable": true
4291
+ },
4292
+ "isExternal": {
4293
+ "type": "boolean",
4294
+ "nullable": true
4295
+ },
4296
+ "name": {
4297
+ "type": "string"
4298
+ },
4299
+ "sanityId": {
4300
+ "type": "string"
4301
+ },
4302
+ "slug": {
4303
+ "$ref": "#/components/schemas/slug"
4304
+ },
4305
+ "tags": {
4306
+ "type": "array",
4307
+ "items": {
4308
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
4309
+ }
4310
+ },
4311
+ "telephone": {
4312
+ "type": "string"
4313
+ }
4314
+ }
4315
+ },
4316
+ "sanityPatchPageMetaImage": {
4317
+ "type": "object",
4318
+ "properties": {
4319
+ "sanityType": {
4320
+ "enum": [
4321
+ "image"
4322
+ ],
4323
+ "type": "string",
4324
+ "default": "image"
4325
+ },
4326
+ "asset": {
4327
+ "$ref": "#/components/schemas/sanityImageAssetReference"
4328
+ },
4329
+ "crop": {
4330
+ "$ref": "#/components/schemas/sanityImageCrop"
4331
+ },
4332
+ "hotspot": {
4333
+ "$ref": "#/components/schemas/sanityImageHotspot"
4334
+ },
4335
+ "media": {
4336
+ "type": "object"
4337
+ }
4338
+ }
4339
+ },
4340
+ "sanitySystemsInnerDescriptionInner": {
4341
+ "type": "object",
4342
+ "properties": {
4343
+ "listItem": {
4344
+ "enum": [
4345
+ "bullet",
4346
+ "number"
4347
+ ],
4348
+ "type": "string",
4349
+ "default": "bullet",
4350
+ "nullable": true
4351
+ },
4352
+ "sanityType": {
4353
+ "enum": [
4354
+ "block"
4355
+ ],
4356
+ "type": "string",
4357
+ "default": "block"
4358
+ },
4359
+ "style": {
4360
+ "enum": [
4361
+ "blockquote",
4362
+ "h1",
4363
+ "h2",
4364
+ "h3",
4365
+ "h4",
4366
+ "h5",
4367
+ "h6",
4368
+ "normal"
4369
+ ],
4370
+ "type": "string",
4371
+ "default": "blockquote",
4372
+ "nullable": true
4373
+ },
4374
+ "children": {
4375
+ "type": "array",
4376
+ "items": {
4377
+ "$ref": "#/components/schemas/componentBlocksInnerOneOfChildrenInner"
4378
+ }
4379
+ },
4380
+ "level": {
4381
+ "type": "number",
4382
+ "format": "double"
4383
+ },
4384
+ "markDefs": {
4385
+ "type": "array",
4386
+ "items": {
4387
+ "$ref": "#/components/schemas/componentBlocksInnerOneOfMarkDefsInner"
4388
+ }
4389
+ },
4390
+ "sanityKey": {
4391
+ "type": "string"
4392
+ }
4393
+ }
4394
+ },
4395
+ "sanityTechnologyWithRelationsArticlesInnerMediaOneOf": {
4396
+ "type": "object",
4397
+ "properties": {
4398
+ "sanityType": {
4399
+ "enum": [
4400
+ "image"
4401
+ ],
4402
+ "type": "string",
4403
+ "default": "image"
4404
+ },
4405
+ "asset": {
4406
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
4407
+ }
4408
+ }
4409
+ },
4410
+ "sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner": {
4411
+ "type": "object",
4412
+ "properties": {
4413
+ "actualInstance": {
4414
+ "type": "object"
4415
+ },
4416
+ "isNullable": {
4417
+ "type": "boolean"
4418
+ },
4419
+ "schemaType": {
4420
+ "type": "string"
4421
+ }
4422
+ }
4423
+ },
4424
+ "sanityTechnologyWithRelationsEmployeesInnerTagsInner": {
4425
+ "type": "object",
4426
+ "properties": {
4427
+ "sanityType": {
4428
+ "enum": [
4429
+ "tag"
4430
+ ],
4431
+ "type": "string",
4432
+ "default": "tag"
4433
+ },
4434
+ "name": {
4435
+ "type": "string"
4436
+ },
4437
+ "sanityId": {
4438
+ "type": "string"
4439
+ },
4440
+ "slug": {
4441
+ "$ref": "#/components/schemas/slug"
4442
+ }
4443
+ }
4444
+ },
4445
+ "sanityTechnologyWithRelationsProjectsInnerTechnologiesInner": {
4446
+ "type": "object",
4447
+ "properties": {
4448
+ "sanityType": {
4449
+ "enum": [
4450
+ "technology"
4451
+ ],
4452
+ "type": "string",
4453
+ "default": "technology"
4454
+ },
4455
+ "parent": {
4456
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
4457
+ },
4458
+ "sanityId": {
4459
+ "type": "string"
4460
+ },
4461
+ "slug": {
4462
+ "$ref": "#/components/schemas/slug"
4463
+ },
4464
+ "title": {
4465
+ "type": "string"
4466
+ }
4467
+ }
4468
+ },
4469
+ "sanityTvCategoryDashboardsInnerBackgroundImage": {
4470
+ "type": "object",
4471
+ "properties": {
4472
+ "sanityType": {
4473
+ "enum": [
4474
+ "image"
4475
+ ],
4476
+ "type": "string",
4477
+ "default": "image"
4478
+ },
4479
+ "asset": {
4480
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
4481
+ }
4482
+ }
4483
+ },
4484
+ "sanityTvCategoryDashboardsInnerBackgroundImageAsset": {
4485
+ "type": "object",
4486
+ "properties": {
4487
+ "sanityType": {
4488
+ "enum": [
4489
+ "sanity.imageAsset"
4490
+ ],
4491
+ "type": "string",
4492
+ "default": "sanity.imageAsset"
4493
+ },
4494
+ "mimeType": {
4495
+ "type": "string"
4496
+ },
4497
+ "originalFilename": {
4498
+ "type": "string"
4499
+ },
4500
+ "sanityId": {
4501
+ "type": "string"
4502
+ },
4503
+ "url": {
4504
+ "type": "string"
4505
+ }
4506
+ }
4507
+ },
4508
+ "slug": {
4509
+ "type": "object",
4510
+ "properties": {
4511
+ "sanityType": {
4512
+ "enum": [
4513
+ "slug"
4514
+ ],
4515
+ "type": "string",
4516
+ "default": "slug"
4517
+ },
4518
+ "current": {
4519
+ "type": "string"
4520
+ },
4521
+ "source": {
4522
+ "type": "string"
4523
+ }
4524
+ }
4525
+ },
4526
+ "systemRoleOption": {
4527
+ "type": "object",
4528
+ "properties": {
4529
+ "id": {
4530
+ "type": "string"
4531
+ },
4532
+ "label": {
4533
+ "type": "string"
4534
+ }
4535
+ }
4536
+ },
4537
+ "tag": {
4538
+ "type": "object",
4539
+ "properties": {
4540
+ "sanityId": {
4541
+ "type": "string"
4542
+ },
4543
+ "sanityType": {
4544
+ "type": "string"
4545
+ },
4546
+ "name": {
4547
+ "type": "string"
4548
+ },
4549
+ "slug": {
4550
+ "$ref": "#/components/schemas/slug"
4551
+ }
4552
+ }
4553
+ },
4554
+ "technology": {
4555
+ "type": "object",
4556
+ "properties": {
4557
+ "sanityId": {
4558
+ "type": "string"
4559
+ },
4560
+ "sanityType": {
4561
+ "type": "string"
4562
+ },
4563
+ "name": {
4564
+ "type": "string"
4565
+ },
4566
+ "slug": {
4567
+ "$ref": "#/components/schemas/slug"
4568
+ },
4569
+ "parent": {
4570
+ "$ref": "#/components/schemas/tag"
4571
+ }
4572
+ }
4573
+ },
4574
+ "updateProposalRequest": {
4575
+ "type": "object",
4576
+ "properties": {
4577
+ "name": {
4578
+ "type": "string",
4579
+ "nullable": true
4580
+ },
4581
+ "archived": {
4582
+ "type": "boolean",
4583
+ "nullable": true
4584
+ },
4585
+ "status": {
4586
+ "type": "string",
4587
+ "nullable": true
4588
+ }
4589
+ }
4590
+ },
4591
+ "uploadPhotoRequest": {
4592
+ "type": "object",
4593
+ "properties": {
4594
+ "imageUrl": {
4595
+ "type": "string"
4596
+ }
4597
+ }
4598
+ },
4599
+ "uploadPhotoResult": {
4600
+ "type": "object",
4601
+ "properties": {
4602
+ "bytes": {
4603
+ "type": "integer",
4604
+ "format": "int64"
4605
+ }
4606
+ }
4607
+ }
4608
+ },
4609
+ "securitySchemes": {
4610
+ "Implicit": {
4611
+ "type": "oauth2",
4612
+ "flows": {
4613
+ "implicit": {
4614
+ "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",
4615
+ "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
4616
+ "refreshUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
4617
+ "scopes": {
4618
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default": "Default function scope"
4619
+ }
4620
+ }
4621
+ }
4622
+ },
4623
+ "ApiKey": {
4624
+ "type": "http",
4625
+ "scheme": "bearer",
4626
+ "bearerFormat": "JWT"
4627
+ }
4628
+ }
4629
+ }
4630
+ }