@snokam/mcp-api 0.124.0 → 0.124.2

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,3212 @@
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": "/api/employees"
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://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
46
+ ]
47
+ }
48
+ ]
49
+ }
50
+ },
51
+ "/v1.0/presentations": {
52
+ "get": {
53
+ "tags": [
54
+ "CV"
55
+ ],
56
+ "summary": "Gets all presentations held by consultants",
57
+ "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.",
58
+ "operationId": "GetPresentations",
59
+ "responses": {
60
+ "200": {
61
+ "description": "List of presentations retrieved successfully",
62
+ "content": {
63
+ "application/json": {
64
+ "schema": {
65
+ "type": "array",
66
+ "items": {
67
+ "$ref": "#/components/schemas/consultantPresentation"
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "x-ms-summary": "Success"
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "/v1.0/cvs/my-cv": {
78
+ "get": {
79
+ "tags": [
80
+ "CV"
81
+ ],
82
+ "summary": "Gets CV data for the authenticated user",
83
+ "description": "Retrieves CV data for the currently authenticated consultant from CvPartner.",
84
+ "operationId": "GetMyCv",
85
+ "responses": {
86
+ "200": {
87
+ "description": "Authenticated user's CV profile retrieved successfully",
88
+ "content": {
89
+ "application/json": {
90
+ "schema": {
91
+ "$ref": "#/components/schemas/consultantCv"
92
+ }
93
+ }
94
+ },
95
+ "x-ms-summary": "Success"
96
+ },
97
+ "401": {
98
+ "description": "User is not authorized",
99
+ "x-ms-summary": "Unauthorized"
100
+ },
101
+ "404": {
102
+ "description": "Employee not found in CvPartner",
103
+ "x-ms-summary": "Not Found"
104
+ }
105
+ },
106
+ "security": [
107
+ {
108
+ "Implicit": [
109
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
110
+ ]
111
+ }
112
+ ]
113
+ }
114
+ },
115
+ "/v1.0/cvs/{slug}": {
116
+ "get": {
117
+ "tags": [
118
+ "CV"
119
+ ],
120
+ "summary": "Gets CV data for a specific employee by slug",
121
+ "description": "Retrieves CV data for a specific consultant from CvPartner by their Sanity slug (e.g. 'hakon-grotte').",
122
+ "operationId": "GetEmployeeCvBySlug",
123
+ "parameters": [
124
+ {
125
+ "name": "slug",
126
+ "in": "path",
127
+ "required": true,
128
+ "schema": {
129
+ "type": "string"
130
+ }
131
+ }
132
+ ],
133
+ "responses": {
134
+ "200": {
135
+ "description": "Payload of ConsultantCv",
136
+ "content": {
137
+ "application/json": {
138
+ "schema": {
139
+ "$ref": "#/components/schemas/consultantCv"
140
+ }
141
+ }
142
+ }
143
+ },
144
+ "404": {
145
+ "description": "No description"
146
+ }
147
+ },
148
+ "security": [
149
+ {
150
+ "Implicit": [
151
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
152
+ ]
153
+ }
154
+ ]
155
+ }
156
+ },
157
+ "/v1.0/me/cv/pdf": {
158
+ "get": {
159
+ "tags": [
160
+ "CV"
161
+ ],
162
+ "summary": "Downloads the authenticated user's CV as PDF",
163
+ "operationId": "GetMyCvPdf",
164
+ "responses": {
165
+ "200": {
166
+ "description": "Payload of Array of Byte",
167
+ "content": {
168
+ "application/pdf": {
169
+ "schema": {
170
+ "type": "string",
171
+ "format": "binary"
172
+ }
173
+ }
174
+ }
175
+ },
176
+ "401": {
177
+ "description": "No description"
178
+ },
179
+ "404": {
180
+ "description": "No description"
181
+ }
182
+ },
183
+ "security": [
184
+ {
185
+ "Implicit": [
186
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
187
+ ]
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ "/v1.0/cvs/{slug}/pdf": {
193
+ "get": {
194
+ "tags": [
195
+ "CV"
196
+ ],
197
+ "summary": "Downloads a specific consultant's CV as PDF by slug",
198
+ "operationId": "GetEmployeeCvPdfBySlug",
199
+ "parameters": [
200
+ {
201
+ "name": "slug",
202
+ "in": "path",
203
+ "required": true,
204
+ "schema": {
205
+ "type": "string"
206
+ }
207
+ }
208
+ ],
209
+ "responses": {
210
+ "200": {
211
+ "description": "Payload of Array of Byte",
212
+ "content": {
213
+ "application/pdf": {
214
+ "schema": {
215
+ "type": "string",
216
+ "format": "binary"
217
+ }
218
+ }
219
+ }
220
+ },
221
+ "401": {
222
+ "description": "No description"
223
+ },
224
+ "404": {
225
+ "description": "No description"
226
+ }
227
+ },
228
+ "security": [
229
+ {
230
+ "Implicit": [
231
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
232
+ ]
233
+ }
234
+ ]
235
+ }
236
+ },
237
+ "/v1.0/proposals": {
238
+ "post": {
239
+ "tags": [
240
+ "Proposals"
241
+ ],
242
+ "summary": "Create a Flowcase proposal",
243
+ "operationId": "CreateProposal",
244
+ "requestBody": {
245
+ "content": {
246
+ "application/json": {
247
+ "schema": {
248
+ "$ref": "#/components/schemas/createProposalRequest"
249
+ }
250
+ }
251
+ },
252
+ "required": true
253
+ },
254
+ "responses": {
255
+ "201": {
256
+ "description": "Payload of FlowcaseProposal",
257
+ "content": {
258
+ "application/json": {
259
+ "schema": {
260
+ "$ref": "#/components/schemas/flowcaseProposal"
261
+ }
262
+ }
263
+ }
264
+ }
265
+ },
266
+ "security": [
267
+ {
268
+ "Implicit": [
269
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
270
+ ]
271
+ }
272
+ ]
273
+ }
274
+ },
275
+ "/v1.0/proposals/{proposalId}": {
276
+ "get": {
277
+ "tags": [
278
+ "Proposals"
279
+ ],
280
+ "summary": "Get a Flowcase proposal by id",
281
+ "operationId": "GetProposal",
282
+ "parameters": [
283
+ {
284
+ "name": "proposalId",
285
+ "in": "path",
286
+ "required": true,
287
+ "schema": {
288
+ "type": "string"
289
+ }
290
+ }
291
+ ],
292
+ "responses": {
293
+ "200": {
294
+ "description": "Payload of FlowcaseProposal",
295
+ "content": {
296
+ "application/json": {
297
+ "schema": {
298
+ "$ref": "#/components/schemas/flowcaseProposal"
299
+ }
300
+ }
301
+ }
302
+ },
303
+ "404": {
304
+ "description": "No description"
305
+ }
306
+ },
307
+ "security": [
308
+ {
309
+ "Implicit": [
310
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
311
+ ]
312
+ }
313
+ ]
314
+ },
315
+ "patch": {
316
+ "tags": [
317
+ "Proposals"
318
+ ],
319
+ "summary": "Update / patch a Flowcase proposal",
320
+ "operationId": "UpdateProposal",
321
+ "parameters": [
322
+ {
323
+ "name": "proposalId",
324
+ "in": "path",
325
+ "required": true,
326
+ "schema": {
327
+ "type": "string"
328
+ }
329
+ }
330
+ ],
331
+ "requestBody": {
332
+ "content": {
333
+ "application/json": {
334
+ "schema": {
335
+ "$ref": "#/components/schemas/updateProposalRequest"
336
+ }
337
+ }
338
+ },
339
+ "required": true
340
+ },
341
+ "responses": {
342
+ "200": {
343
+ "description": "Payload of FlowcaseProposal",
344
+ "content": {
345
+ "application/json": {
346
+ "schema": {
347
+ "$ref": "#/components/schemas/flowcaseProposal"
348
+ }
349
+ }
350
+ }
351
+ }
352
+ },
353
+ "security": [
354
+ {
355
+ "Implicit": [
356
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
357
+ ]
358
+ }
359
+ ]
360
+ },
361
+ "delete": {
362
+ "tags": [
363
+ "Proposals"
364
+ ],
365
+ "summary": "Archive a proposal — Flowcase has no hard-delete; we PUT archived=true.",
366
+ "operationId": "ArchiveProposal",
367
+ "parameters": [
368
+ {
369
+ "name": "proposalId",
370
+ "in": "path",
371
+ "required": true,
372
+ "schema": {
373
+ "type": "string"
374
+ }
375
+ }
376
+ ],
377
+ "responses": {
378
+ "200": {
379
+ "description": "Payload of FlowcaseProposal",
380
+ "content": {
381
+ "application/json": {
382
+ "schema": {
383
+ "$ref": "#/components/schemas/flowcaseProposal"
384
+ }
385
+ }
386
+ }
387
+ }
388
+ },
389
+ "security": [
390
+ {
391
+ "Implicit": [
392
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
393
+ ]
394
+ }
395
+ ]
396
+ }
397
+ },
398
+ "/v1.0/proposals/{proposalId}/cvs": {
399
+ "post": {
400
+ "tags": [
401
+ "Proposals"
402
+ ],
403
+ "summary": "Attach a consultant's CV to a proposal; Flowcase copies the default CV into an editable tailored CV.",
404
+ "operationId": "AttachCvToProposal",
405
+ "parameters": [
406
+ {
407
+ "name": "proposalId",
408
+ "in": "path",
409
+ "required": true,
410
+ "schema": {
411
+ "type": "string"
412
+ }
413
+ }
414
+ ],
415
+ "requestBody": {
416
+ "content": {
417
+ "application/json": {
418
+ "schema": {
419
+ "$ref": "#/components/schemas/addCvToProposalRequest"
420
+ }
421
+ }
422
+ },
423
+ "required": true
424
+ },
425
+ "responses": {
426
+ "201": {
427
+ "description": "Payload of FlowcaseTailoredCv",
428
+ "content": {
429
+ "application/json": {
430
+ "schema": {
431
+ "$ref": "#/components/schemas/flowcaseTailoredCv"
432
+ }
433
+ }
434
+ }
435
+ }
436
+ },
437
+ "security": [
438
+ {
439
+ "Implicit": [
440
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
441
+ ]
442
+ }
443
+ ]
444
+ }
445
+ },
446
+ "/v1.0/proposals/{proposalId}/cvs/{tailoredCvId}": {
447
+ "delete": {
448
+ "tags": [
449
+ "Proposals"
450
+ ],
451
+ "summary": "Remove a tailored CV from a proposal.",
452
+ "operationId": "DetachCvFromProposal",
453
+ "parameters": [
454
+ {
455
+ "name": "proposalId",
456
+ "in": "path",
457
+ "required": true,
458
+ "schema": {
459
+ "type": "string"
460
+ }
461
+ },
462
+ {
463
+ "name": "tailoredCvId",
464
+ "in": "path",
465
+ "required": true,
466
+ "schema": {
467
+ "type": "string"
468
+ }
469
+ }
470
+ ],
471
+ "responses": {
472
+ "204": {
473
+ "description": "No description"
474
+ }
475
+ },
476
+ "security": [
477
+ {
478
+ "Implicit": [
479
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
480
+ ]
481
+ }
482
+ ]
483
+ }
484
+ },
485
+ "/v1.0/cvs/users/{userId}/{cvId}/pdf": {
486
+ "get": {
487
+ "tags": [
488
+ "Proposals"
489
+ ],
490
+ "summary": "Download any CV (including tailored CVs) as PDF by user_id + cv_id.",
491
+ "operationId": "DownloadTailoredCvPdf",
492
+ "parameters": [
493
+ {
494
+ "name": "userId",
495
+ "in": "path",
496
+ "required": true,
497
+ "schema": {
498
+ "type": "string"
499
+ }
500
+ },
501
+ {
502
+ "name": "cvId",
503
+ "in": "path",
504
+ "required": true,
505
+ "schema": {
506
+ "type": "string"
507
+ }
508
+ }
509
+ ],
510
+ "responses": {
511
+ "200": {
512
+ "description": "Payload of Array of Byte",
513
+ "content": {
514
+ "application/pdf": {
515
+ "schema": {
516
+ "type": "string",
517
+ "format": "binary"
518
+ }
519
+ }
520
+ }
521
+ },
522
+ "404": {
523
+ "description": "No description"
524
+ }
525
+ },
526
+ "security": [
527
+ {
528
+ "Implicit": [
529
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
530
+ ]
531
+ }
532
+ ]
533
+ }
534
+ },
535
+ "/v1.0/cvs/users/{userId}/{cvId}/sections/{sectionType}/{sectionId}": {
536
+ "put": {
537
+ "tags": [
538
+ "CV"
539
+ ],
540
+ "summary": "Edit a single CV section (PUT /v3/cvs/{user}/{cv}/{section_type}/{section_id}).",
541
+ "operationId": "UpdateCvSection",
542
+ "parameters": [
543
+ {
544
+ "name": "userId",
545
+ "in": "path",
546
+ "required": true,
547
+ "schema": {
548
+ "type": "string"
549
+ }
550
+ },
551
+ {
552
+ "name": "cvId",
553
+ "in": "path",
554
+ "required": true,
555
+ "schema": {
556
+ "type": "string"
557
+ }
558
+ },
559
+ {
560
+ "name": "sectionType",
561
+ "in": "path",
562
+ "required": true,
563
+ "schema": {
564
+ "type": "string"
565
+ }
566
+ },
567
+ {
568
+ "name": "sectionId",
569
+ "in": "path",
570
+ "required": true,
571
+ "schema": {
572
+ "type": "string"
573
+ }
574
+ }
575
+ ],
576
+ "requestBody": {
577
+ "description": "Section body — shape depends on section_type (see Flowcase CV API).",
578
+ "content": {
579
+ "application/json": {
580
+ "schema": {
581
+ "type": "object"
582
+ }
583
+ }
584
+ },
585
+ "required": true
586
+ },
587
+ "responses": {
588
+ "204": {
589
+ "description": "No description"
590
+ }
591
+ },
592
+ "security": [
593
+ {
594
+ "Implicit": [
595
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
596
+ ]
597
+ }
598
+ ]
599
+ }
600
+ },
601
+ "/v1.0/protected": {
602
+ "get": {
603
+ "tags": [
604
+ "Protected"
605
+ ],
606
+ "summary": "Gets all protected employees",
607
+ "description": "Retrieves a list of all protected employees.",
608
+ "operationId": "GetEmployeesProtected",
609
+ "parameters": [
610
+ {
611
+ "name": "includeBots",
612
+ "in": "query",
613
+ "description": "Include AI / bot employees (Olaf et al.). Defaults to false.",
614
+ "schema": {
615
+ "type": "boolean"
616
+ },
617
+ "x-ms-summary": "Include bots"
618
+ },
619
+ {
620
+ "name": "includeExternals",
621
+ "in": "query",
622
+ "description": "Include external employees (contractors). Defaults to false.",
623
+ "schema": {
624
+ "type": "boolean"
625
+ },
626
+ "x-ms-summary": "Include externals"
627
+ }
628
+ ],
629
+ "responses": {
630
+ "200": {
631
+ "description": "List of protected employees retrieved successfully",
632
+ "content": {
633
+ "application/json": {
634
+ "schema": {
635
+ "type": "array",
636
+ "items": {
637
+ "$ref": "#/components/schemas/protectedEmployee"
638
+ }
639
+ }
640
+ }
641
+ },
642
+ "x-ms-summary": "Success"
643
+ },
644
+ "401": {
645
+ "description": "User is not authorized",
646
+ "x-ms-summary": "Unauthorized"
647
+ }
648
+ },
649
+ "security": [
650
+ {
651
+ "Implicit": [
652
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
653
+ ]
654
+ }
655
+ ]
656
+ }
657
+ },
658
+ "/v1.0/protected/me": {
659
+ "get": {
660
+ "tags": [
661
+ "Protected"
662
+ ],
663
+ "summary": "Gets the authenticated user's protected employee data",
664
+ "description": "Retrieves the protected employee data for the authenticated user.",
665
+ "operationId": "GetMeProtected",
666
+ "responses": {
667
+ "200": {
668
+ "description": "Authenticated user's protected employee data retrieved successfully",
669
+ "content": {
670
+ "application/json": {
671
+ "schema": {
672
+ "$ref": "#/components/schemas/protectedEmployee"
673
+ }
674
+ }
675
+ },
676
+ "x-ms-summary": "Success"
677
+ },
678
+ "401": {
679
+ "description": "User is not authorized",
680
+ "x-ms-summary": "Unauthorized"
681
+ },
682
+ "404": {
683
+ "description": "Employee not found",
684
+ "x-ms-summary": "Not Found"
685
+ }
686
+ },
687
+ "security": [
688
+ {
689
+ "Implicit": [
690
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
691
+ ]
692
+ }
693
+ ]
694
+ },
695
+ "put": {
696
+ "tags": [
697
+ "Protected"
698
+ ],
699
+ "summary": "Updates the authenticated user's protected employee data",
700
+ "description": "Updates the protected employee data for the authenticated user.",
701
+ "operationId": "PatchMeProtected",
702
+ "requestBody": {
703
+ "description": "Employee data to update",
704
+ "content": {
705
+ "application/json": {
706
+ "schema": {
707
+ "$ref": "#/components/schemas/patchEmployee"
708
+ }
709
+ }
710
+ },
711
+ "required": true
712
+ },
713
+ "responses": {
714
+ "200": {
715
+ "description": "Authenticated user's protected employee data updated successfully",
716
+ "content": {
717
+ "application/json": {
718
+ "schema": {
719
+ "$ref": "#/components/schemas/protectedEmployee"
720
+ }
721
+ }
722
+ },
723
+ "x-ms-summary": "Success"
724
+ },
725
+ "401": {
726
+ "description": "User is not authorized",
727
+ "x-ms-summary": "Unauthorized"
728
+ }
729
+ },
730
+ "security": [
731
+ {
732
+ "Implicit": [
733
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
734
+ ]
735
+ }
736
+ ]
737
+ }
738
+ },
739
+ "/v1.0/protected/me/photo": {
740
+ "post": {
741
+ "tags": [
742
+ "Protected"
743
+ ],
744
+ "summary": "Uploads the authenticated user's profile photo",
745
+ "description": "Stores the photo and a blurred variant on the employee. Body is the raw image bytes.",
746
+ "operationId": "SetMyPhoto",
747
+ "requestBody": {
748
+ "description": "Raw image bytes",
749
+ "content": {
750
+ "application/octet-stream": {
751
+ "schema": {
752
+ "type": "string",
753
+ "format": "binary"
754
+ }
755
+ }
756
+ },
757
+ "required": true
758
+ },
759
+ "responses": {
760
+ "200": {
761
+ "description": "Photo updated successfully",
762
+ "content": {
763
+ "application/json": {
764
+ "schema": {
765
+ "$ref": "#/components/schemas/protectedEmployee"
766
+ }
767
+ }
768
+ },
769
+ "x-ms-summary": "Success"
770
+ },
771
+ "401": {
772
+ "description": "User is not authorized",
773
+ "x-ms-summary": "Unauthorized"
774
+ }
775
+ },
776
+ "security": [
777
+ {
778
+ "Implicit": [
779
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
780
+ ]
781
+ }
782
+ ]
783
+ }
784
+ },
785
+ "/v1.0/protected/{id}": {
786
+ "put": {
787
+ "tags": [
788
+ "Protected"
789
+ ],
790
+ "summary": "Updates protected employee data by id or email",
791
+ "description": "Updates protected employee data for a specified employee id or email.",
792
+ "operationId": "PatchEmployeeProtected",
793
+ "parameters": [
794
+ {
795
+ "name": "id",
796
+ "in": "path",
797
+ "description": "Sanity id or employee email",
798
+ "required": true,
799
+ "schema": {
800
+ "type": "string"
801
+ },
802
+ "x-ms-summary": "The employee id or email"
803
+ }
804
+ ],
805
+ "requestBody": {
806
+ "description": "Employee data to update",
807
+ "content": {
808
+ "application/json": {
809
+ "schema": {
810
+ "$ref": "#/components/schemas/patchEmployee"
811
+ }
812
+ }
813
+ },
814
+ "required": true
815
+ },
816
+ "responses": {
817
+ "200": {
818
+ "description": "Protected employee data updated successfully",
819
+ "content": {
820
+ "application/json": {
821
+ "schema": {
822
+ "$ref": "#/components/schemas/protectedEmployee"
823
+ }
824
+ }
825
+ },
826
+ "x-ms-summary": "Success"
827
+ },
828
+ "401": {
829
+ "description": "User is not authorized",
830
+ "x-ms-summary": "Unauthorized"
831
+ }
832
+ },
833
+ "security": [
834
+ {
835
+ "Implicit": [
836
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
837
+ ]
838
+ }
839
+ ]
840
+ },
841
+ "get": {
842
+ "tags": [
843
+ "Protected"
844
+ ],
845
+ "summary": "Gets a protected employee by ID",
846
+ "description": "Retrieves a protected employee by their ID.",
847
+ "operationId": "GetEmployeeProtected",
848
+ "parameters": [
849
+ {
850
+ "name": "id",
851
+ "in": "path",
852
+ "description": "The ID of the protected employee to retrieve",
853
+ "required": true,
854
+ "schema": {
855
+ "type": "string"
856
+ },
857
+ "x-ms-summary": "The ID of the employee"
858
+ }
859
+ ],
860
+ "responses": {
861
+ "200": {
862
+ "description": "Protected employee retrieved successfully",
863
+ "content": {
864
+ "application/json": {
865
+ "schema": {
866
+ "$ref": "#/components/schemas/protectedEmployee"
867
+ }
868
+ }
869
+ },
870
+ "x-ms-summary": "Success"
871
+ },
872
+ "401": {
873
+ "description": "User is not authorized",
874
+ "x-ms-summary": "Unauthorized"
875
+ },
876
+ "404": {
877
+ "description": "Employee not found",
878
+ "x-ms-summary": "Not Found"
879
+ }
880
+ },
881
+ "security": [
882
+ {
883
+ "Implicit": [
884
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
885
+ ]
886
+ }
887
+ ]
888
+ }
889
+ },
890
+ "/v1.0/protected/{id}/photo": {
891
+ "post": {
892
+ "tags": [
893
+ "Protected"
894
+ ],
895
+ "summary": "Uploads a profile photo for an employee (admin)",
896
+ "description": "Stores the photo and a blurred variant on the given employee. Body is the raw image bytes.",
897
+ "operationId": "SetEmployeePhoto",
898
+ "parameters": [
899
+ {
900
+ "name": "id",
901
+ "in": "path",
902
+ "required": true,
903
+ "schema": {
904
+ "type": "string"
905
+ },
906
+ "x-ms-summary": "The employee Sanity id"
907
+ }
908
+ ],
909
+ "requestBody": {
910
+ "description": "Raw image bytes",
911
+ "content": {
912
+ "application/octet-stream": {
913
+ "schema": {
914
+ "type": "string",
915
+ "format": "binary"
916
+ }
917
+ }
918
+ },
919
+ "required": true
920
+ },
921
+ "responses": {
922
+ "200": {
923
+ "description": "Photo updated successfully",
924
+ "content": {
925
+ "application/json": {
926
+ "schema": {
927
+ "$ref": "#/components/schemas/protectedEmployee"
928
+ }
929
+ }
930
+ },
931
+ "x-ms-summary": "Success"
932
+ },
933
+ "401": {
934
+ "description": "User is not authorized",
935
+ "x-ms-summary": "Unauthorized"
936
+ }
937
+ },
938
+ "security": [
939
+ {
940
+ "Implicit": [
941
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
942
+ ]
943
+ }
944
+ ]
945
+ }
946
+ },
947
+ "/v1.0/protected/me/gadgetbudget": {
948
+ "get": {
949
+ "tags": [
950
+ "Protected"
951
+ ],
952
+ "summary": "Gets the authenticated user's gadget budget",
953
+ "description": "Retrieves the gadget budget for the authenticated user.",
954
+ "operationId": "GetMyGadgetBudget",
955
+ "responses": {
956
+ "200": {
957
+ "description": "Authenticated user's gadget budget retrieved successfully",
958
+ "content": {
959
+ "application/json": {
960
+ "schema": {
961
+ "$ref": "#/components/schemas/gadgetBudget"
962
+ }
963
+ }
964
+ },
965
+ "x-ms-summary": "Success"
966
+ },
967
+ "401": {
968
+ "description": "User is not authorized",
969
+ "x-ms-summary": "Unauthorized"
970
+ }
971
+ },
972
+ "security": [
973
+ {
974
+ "Implicit": [
975
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
976
+ ]
977
+ }
978
+ ]
979
+ }
980
+ },
981
+ "/v1.0/public/{slugOrId}": {
982
+ "get": {
983
+ "tags": [
984
+ "Public"
985
+ ],
986
+ "summary": "Gets a public employee by slug or id",
987
+ "description": "Retrieves a public employee by their slug or id.",
988
+ "operationId": "GetEmployeePublic",
989
+ "parameters": [
990
+ {
991
+ "name": "slugOrId",
992
+ "in": "path",
993
+ "description": "The slug or id of the public employee to retrieve",
994
+ "required": true,
995
+ "schema": {
996
+ "type": "string"
997
+ },
998
+ "x-ms-summary": "The slug or id of the employee"
999
+ }
1000
+ ],
1001
+ "responses": {
1002
+ "200": {
1003
+ "description": "Public employee retrieved successfully",
1004
+ "content": {
1005
+ "application/json": {
1006
+ "schema": {
1007
+ "$ref": "#/components/schemas/publicEmployee"
1008
+ }
1009
+ }
1010
+ },
1011
+ "x-ms-summary": "Success"
1012
+ },
1013
+ "404": {
1014
+ "description": "Employee not found",
1015
+ "x-ms-summary": "Not Found"
1016
+ }
1017
+ }
1018
+ }
1019
+ },
1020
+ "/v1.0/public": {
1021
+ "get": {
1022
+ "tags": [
1023
+ "Public"
1024
+ ],
1025
+ "summary": "Gets all public employees",
1026
+ "description": "Retrieves a list of all public employees.",
1027
+ "operationId": "GetEmployeesPublic",
1028
+ "responses": {
1029
+ "200": {
1030
+ "description": "List of public employees retrieved successfully",
1031
+ "content": {
1032
+ "application/json": {
1033
+ "schema": {
1034
+ "type": "array",
1035
+ "items": {
1036
+ "$ref": "#/components/schemas/publicEmployee"
1037
+ }
1038
+ }
1039
+ }
1040
+ },
1041
+ "x-ms-summary": "Success"
1042
+ }
1043
+ }
1044
+ }
1045
+ },
1046
+ "/v1.0/feedback": {
1047
+ "post": {
1048
+ "tags": [
1049
+ "Public"
1050
+ ],
1051
+ "summary": "Submit anonymous feedback",
1052
+ "description": "Allows anyone to send anonymous text feedback.",
1053
+ "operationId": "PostAnonymousFeedback",
1054
+ "requestBody": {
1055
+ "description": "Feedback payload",
1056
+ "content": {
1057
+ "application/json": {
1058
+ "schema": {
1059
+ "$ref": "#/components/schemas/feedback"
1060
+ }
1061
+ }
1062
+ },
1063
+ "required": true
1064
+ },
1065
+ "responses": {
1066
+ "200": {
1067
+ "description": "Feedback received",
1068
+ "x-ms-summary": "Success"
1069
+ },
1070
+ "400": {
1071
+ "description": "Invalid input",
1072
+ "x-ms-summary": "Bad Request"
1073
+ }
1074
+ }
1075
+ }
1076
+ },
1077
+ "/v1.0/public/{slugOrId}/cv": {
1078
+ "get": {
1079
+ "tags": [
1080
+ "Public"
1081
+ ],
1082
+ "summary": "Gets the full CV for a public employee by slug or id",
1083
+ "description": "Resolves the employee by Sanity slug or id and returns the verbatim CvPartner (Flowcase) CV payload, including project experiences, recommendations and presentations.",
1084
+ "operationId": "GetPublicEmployeeCv",
1085
+ "parameters": [
1086
+ {
1087
+ "name": "slugOrId",
1088
+ "in": "path",
1089
+ "description": "The slug or id of the public employee whose CV to retrieve",
1090
+ "required": true,
1091
+ "schema": {
1092
+ "type": "string"
1093
+ },
1094
+ "x-ms-summary": "The slug or id of the employee"
1095
+ }
1096
+ ],
1097
+ "responses": {
1098
+ "200": {
1099
+ "description": "Raw CvPartner CV payload retrieved successfully",
1100
+ "content": {
1101
+ "application/json": {
1102
+ "schema": {
1103
+ "type": "object"
1104
+ }
1105
+ }
1106
+ },
1107
+ "x-ms-summary": "Success"
1108
+ },
1109
+ "404": {
1110
+ "description": "Employee or CV not found",
1111
+ "x-ms-summary": "Not Found"
1112
+ }
1113
+ }
1114
+ }
1115
+ }
1116
+ },
1117
+ "components": {
1118
+ "schemas": {
1119
+ "addCvToProposalRequest": {
1120
+ "type": "object",
1121
+ "properties": {
1122
+ "user_id": {
1123
+ "type": "string",
1124
+ "nullable": true
1125
+ },
1126
+ "cv_id": {
1127
+ "type": "string",
1128
+ "nullable": true
1129
+ }
1130
+ }
1131
+ },
1132
+ "commissionTierReference": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "sanityType": {
1136
+ "enum": [
1137
+ "reference"
1138
+ ],
1139
+ "type": "string",
1140
+ "default": "reference"
1141
+ },
1142
+ "sanityRef": {
1143
+ "type": "string"
1144
+ },
1145
+ "sanityWeak": {
1146
+ "type": "boolean"
1147
+ }
1148
+ }
1149
+ },
1150
+ "componentBlocksInnerOneOfChildrenInner": {
1151
+ "type": "object",
1152
+ "properties": {
1153
+ "sanityType": {
1154
+ "enum": [
1155
+ "span"
1156
+ ],
1157
+ "type": "string",
1158
+ "default": "span"
1159
+ },
1160
+ "marks": {
1161
+ "type": "array",
1162
+ "items": {
1163
+ "type": "string"
1164
+ }
1165
+ },
1166
+ "sanityKey": {
1167
+ "type": "string"
1168
+ },
1169
+ "text": {
1170
+ "type": "string"
1171
+ }
1172
+ }
1173
+ },
1174
+ "componentBlocksInnerOneOfMarkDefsInner": {
1175
+ "type": "object",
1176
+ "properties": {
1177
+ "sanityType": {
1178
+ "enum": [
1179
+ "link"
1180
+ ],
1181
+ "type": "string",
1182
+ "default": "link"
1183
+ },
1184
+ "href": {
1185
+ "type": "string"
1186
+ },
1187
+ "sanityKey": {
1188
+ "type": "string"
1189
+ }
1190
+ }
1191
+ },
1192
+ "componentGalleryMediaInner": {
1193
+ "type": "object",
1194
+ "properties": {
1195
+ "actualInstance": {
1196
+ "type": "object"
1197
+ },
1198
+ "isNullable": {
1199
+ "type": "boolean"
1200
+ },
1201
+ "schemaType": {
1202
+ "type": "string"
1203
+ }
1204
+ }
1205
+ },
1206
+ "consultantCv": {
1207
+ "type": "object",
1208
+ "properties": {
1209
+ "userId": {
1210
+ "type": "string",
1211
+ "nullable": true
1212
+ },
1213
+ "email": {
1214
+ "type": "string",
1215
+ "nullable": true
1216
+ },
1217
+ "name": {
1218
+ "type": "string",
1219
+ "nullable": true
1220
+ },
1221
+ "defaultCvId": {
1222
+ "type": "string",
1223
+ "nullable": true
1224
+ },
1225
+ "technologies": {
1226
+ "type": "array",
1227
+ "items": {
1228
+ "type": "string"
1229
+ },
1230
+ "nullable": true
1231
+ },
1232
+ "roles": {
1233
+ "type": "array",
1234
+ "items": {
1235
+ "type": "string"
1236
+ },
1237
+ "nullable": true
1238
+ },
1239
+ "yearsExperience": {
1240
+ "type": "integer",
1241
+ "format": "int32",
1242
+ "nullable": true
1243
+ },
1244
+ "about": {
1245
+ "type": "string",
1246
+ "nullable": true
1247
+ },
1248
+ "cvText": {
1249
+ "type": "string",
1250
+ "nullable": true
1251
+ },
1252
+ "projectExperiences": {
1253
+ "type": "array",
1254
+ "items": {
1255
+ "$ref": "#/components/schemas/consultantProjectExperience"
1256
+ },
1257
+ "nullable": true
1258
+ },
1259
+ "workExperiences": {
1260
+ "type": "array",
1261
+ "items": {
1262
+ "$ref": "#/components/schemas/consultantWorkExperience"
1263
+ },
1264
+ "nullable": true
1265
+ },
1266
+ "educations": {
1267
+ "type": "array",
1268
+ "items": {
1269
+ "$ref": "#/components/schemas/consultantEducation"
1270
+ },
1271
+ "nullable": true
1272
+ },
1273
+ "cvRoles": {
1274
+ "type": "array",
1275
+ "items": {
1276
+ "$ref": "#/components/schemas/consultantCvRole"
1277
+ },
1278
+ "nullable": true
1279
+ },
1280
+ "keyQualifications": {
1281
+ "type": "array",
1282
+ "items": {
1283
+ "$ref": "#/components/schemas/consultantKeyQualification"
1284
+ },
1285
+ "nullable": true
1286
+ }
1287
+ }
1288
+ },
1289
+ "consultantCvRole": {
1290
+ "type": "object",
1291
+ "properties": {
1292
+ "name": {
1293
+ "type": "string",
1294
+ "nullable": true
1295
+ },
1296
+ "longDescription": {
1297
+ "type": "string",
1298
+ "nullable": true
1299
+ },
1300
+ "tags": {
1301
+ "type": "array",
1302
+ "items": {
1303
+ "type": "string"
1304
+ },
1305
+ "nullable": true
1306
+ }
1307
+ }
1308
+ },
1309
+ "consultantEducation": {
1310
+ "type": "object",
1311
+ "properties": {
1312
+ "school": {
1313
+ "type": "string",
1314
+ "nullable": true
1315
+ },
1316
+ "degree": {
1317
+ "type": "string",
1318
+ "nullable": true
1319
+ },
1320
+ "description": {
1321
+ "type": "string",
1322
+ "nullable": true
1323
+ },
1324
+ "yearFrom": {
1325
+ "type": "integer",
1326
+ "format": "int32",
1327
+ "nullable": true
1328
+ },
1329
+ "yearTo": {
1330
+ "type": "integer",
1331
+ "format": "int32",
1332
+ "nullable": true
1333
+ }
1334
+ }
1335
+ },
1336
+ "consultantKeyQualification": {
1337
+ "type": "object",
1338
+ "properties": {
1339
+ "label": {
1340
+ "type": "string",
1341
+ "nullable": true
1342
+ },
1343
+ "description": {
1344
+ "type": "string",
1345
+ "nullable": true
1346
+ },
1347
+ "tags": {
1348
+ "type": "array",
1349
+ "items": {
1350
+ "type": "string"
1351
+ },
1352
+ "nullable": true
1353
+ }
1354
+ }
1355
+ },
1356
+ "consultantPresentation": {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "id": {
1360
+ "type": "string",
1361
+ "nullable": true
1362
+ },
1363
+ "title": {
1364
+ "type": "string",
1365
+ "nullable": true
1366
+ },
1367
+ "description": {
1368
+ "type": "string",
1369
+ "nullable": true
1370
+ },
1371
+ "longDescription": {
1372
+ "type": "string",
1373
+ "nullable": true
1374
+ },
1375
+ "year": {
1376
+ "type": "string",
1377
+ "nullable": true
1378
+ },
1379
+ "month": {
1380
+ "type": "string",
1381
+ "nullable": true
1382
+ },
1383
+ "speaker": {
1384
+ "$ref": "#/components/schemas/presentationSpeaker"
1385
+ }
1386
+ }
1387
+ },
1388
+ "consultantProjectExperience": {
1389
+ "type": "object",
1390
+ "properties": {
1391
+ "customer": {
1392
+ "type": "string",
1393
+ "nullable": true
1394
+ },
1395
+ "description": {
1396
+ "type": "string",
1397
+ "nullable": true
1398
+ },
1399
+ "longDescription": {
1400
+ "type": "string",
1401
+ "nullable": true
1402
+ },
1403
+ "industry": {
1404
+ "type": "string",
1405
+ "nullable": true
1406
+ },
1407
+ "yearFrom": {
1408
+ "type": "integer",
1409
+ "format": "int32",
1410
+ "nullable": true
1411
+ },
1412
+ "monthFrom": {
1413
+ "type": "integer",
1414
+ "format": "int32",
1415
+ "nullable": true
1416
+ },
1417
+ "yearTo": {
1418
+ "type": "integer",
1419
+ "format": "int32",
1420
+ "nullable": true
1421
+ },
1422
+ "monthTo": {
1423
+ "type": "integer",
1424
+ "format": "int32",
1425
+ "nullable": true
1426
+ },
1427
+ "roleTitle": {
1428
+ "type": "string",
1429
+ "nullable": true
1430
+ },
1431
+ "roleDescription": {
1432
+ "type": "string",
1433
+ "nullable": true
1434
+ },
1435
+ "technologies": {
1436
+ "type": "array",
1437
+ "items": {
1438
+ "type": "string"
1439
+ },
1440
+ "nullable": true
1441
+ }
1442
+ }
1443
+ },
1444
+ "consultantWorkExperience": {
1445
+ "type": "object",
1446
+ "properties": {
1447
+ "employer": {
1448
+ "type": "string",
1449
+ "nullable": true
1450
+ },
1451
+ "title": {
1452
+ "type": "string",
1453
+ "nullable": true
1454
+ },
1455
+ "description": {
1456
+ "type": "string",
1457
+ "nullable": true
1458
+ },
1459
+ "yearFrom": {
1460
+ "type": "integer",
1461
+ "format": "int32",
1462
+ "nullable": true
1463
+ },
1464
+ "monthFrom": {
1465
+ "type": "integer",
1466
+ "format": "int32",
1467
+ "nullable": true
1468
+ },
1469
+ "yearTo": {
1470
+ "type": "integer",
1471
+ "format": "int32",
1472
+ "nullable": true
1473
+ },
1474
+ "monthTo": {
1475
+ "type": "integer",
1476
+ "format": "int32",
1477
+ "nullable": true
1478
+ }
1479
+ }
1480
+ },
1481
+ "createProposalRequest": {
1482
+ "type": "object",
1483
+ "properties": {
1484
+ "name": {
1485
+ "type": "string",
1486
+ "nullable": true
1487
+ },
1488
+ "owner_id": {
1489
+ "type": "string",
1490
+ "nullable": true
1491
+ },
1492
+ "status": {
1493
+ "type": "string",
1494
+ "nullable": true
1495
+ }
1496
+ }
1497
+ },
1498
+ "employeeReference": {
1499
+ "type": "object",
1500
+ "properties": {
1501
+ "sanityType": {
1502
+ "enum": [
1503
+ "reference"
1504
+ ],
1505
+ "type": "string",
1506
+ "default": "reference"
1507
+ },
1508
+ "sanityRef": {
1509
+ "type": "string"
1510
+ },
1511
+ "sanityWeak": {
1512
+ "type": "boolean"
1513
+ }
1514
+ }
1515
+ },
1516
+ "feedback": {
1517
+ "type": "object",
1518
+ "properties": {
1519
+ "message": {
1520
+ "type": "string"
1521
+ }
1522
+ }
1523
+ },
1524
+ "flowcaseProposal": {
1525
+ "type": "object",
1526
+ "properties": {
1527
+ "id": {
1528
+ "type": "string",
1529
+ "nullable": true
1530
+ },
1531
+ "name": {
1532
+ "type": "string",
1533
+ "nullable": true
1534
+ },
1535
+ "api_owner_id": {
1536
+ "type": "string",
1537
+ "nullable": true
1538
+ },
1539
+ "api_owner_name": {
1540
+ "type": "string",
1541
+ "nullable": true
1542
+ },
1543
+ "owner_id": {
1544
+ "type": "string",
1545
+ "nullable": true
1546
+ },
1547
+ "owner_name": {
1548
+ "type": "string",
1549
+ "nullable": true
1550
+ },
1551
+ "status": {
1552
+ "type": "string",
1553
+ "nullable": true
1554
+ },
1555
+ "archived": {
1556
+ "type": "boolean",
1557
+ "nullable": true
1558
+ },
1559
+ "created_at": {
1560
+ "type": "string",
1561
+ "format": "date-time",
1562
+ "nullable": true
1563
+ },
1564
+ "updated_at": {
1565
+ "type": "string",
1566
+ "format": "date-time",
1567
+ "nullable": true
1568
+ }
1569
+ }
1570
+ },
1571
+ "flowcaseTailoredCv": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "id": {
1575
+ "type": "string",
1576
+ "nullable": true
1577
+ },
1578
+ "user_id": {
1579
+ "type": "string",
1580
+ "nullable": true
1581
+ },
1582
+ "proposal_id": {
1583
+ "type": "string",
1584
+ "nullable": true
1585
+ },
1586
+ "name": {
1587
+ "type": "string",
1588
+ "nullable": true
1589
+ },
1590
+ "email": {
1591
+ "type": "string",
1592
+ "nullable": true
1593
+ },
1594
+ "title": {
1595
+ "type": "string",
1596
+ "nullable": true
1597
+ },
1598
+ "status": {
1599
+ "type": "string",
1600
+ "nullable": true
1601
+ },
1602
+ "created_at": {
1603
+ "type": "string",
1604
+ "format": "date-time",
1605
+ "nullable": true
1606
+ },
1607
+ "updated_at": {
1608
+ "type": "string",
1609
+ "format": "date-time",
1610
+ "nullable": true
1611
+ }
1612
+ }
1613
+ },
1614
+ "gadgetBudget": {
1615
+ "type": "object",
1616
+ "properties": {
1617
+ "sanityType": {
1618
+ "enum": [
1619
+ "gadget"
1620
+ ],
1621
+ "type": "string",
1622
+ "default": "gadget"
1623
+ },
1624
+ "employee": {
1625
+ "$ref": "#/components/schemas/sanityOrderEmployee"
1626
+ },
1627
+ "sanityCreatedAt": {
1628
+ "type": "string"
1629
+ },
1630
+ "sanityId": {
1631
+ "type": "string"
1632
+ },
1633
+ "sanityRev": {
1634
+ "type": "string"
1635
+ },
1636
+ "sanityUpdatedAt": {
1637
+ "type": "string"
1638
+ },
1639
+ "yearlyBudgets": {
1640
+ "type": "array",
1641
+ "items": {
1642
+ "$ref": "#/components/schemas/sanityGadgetBudgetYearlyBudgetsInner"
1643
+ }
1644
+ }
1645
+ }
1646
+ },
1647
+ "geopoint": {
1648
+ "type": "object",
1649
+ "properties": {
1650
+ "sanityType": {
1651
+ "enum": [
1652
+ "geopoint"
1653
+ ],
1654
+ "type": "string",
1655
+ "default": "geopoint"
1656
+ },
1657
+ "alt": {
1658
+ "type": "number",
1659
+ "format": "double"
1660
+ },
1661
+ "lat": {
1662
+ "type": "number",
1663
+ "format": "double"
1664
+ },
1665
+ "lng": {
1666
+ "type": "number",
1667
+ "format": "double"
1668
+ }
1669
+ }
1670
+ },
1671
+ "pageEmployeeOrderInner": {
1672
+ "type": "object",
1673
+ "properties": {
1674
+ "sanityType": {
1675
+ "enum": [
1676
+ "reference"
1677
+ ],
1678
+ "type": "string",
1679
+ "default": "reference"
1680
+ },
1681
+ "sanityKey": {
1682
+ "type": "string"
1683
+ },
1684
+ "sanityRef": {
1685
+ "type": "string"
1686
+ },
1687
+ "sanityWeak": {
1688
+ "type": "boolean"
1689
+ }
1690
+ }
1691
+ },
1692
+ "pageEquipmentInner": {
1693
+ "type": "object",
1694
+ "properties": {
1695
+ "sanityType": {
1696
+ "enum": [
1697
+ "reference"
1698
+ ],
1699
+ "type": "string",
1700
+ "default": "reference"
1701
+ },
1702
+ "sanityKey": {
1703
+ "type": "string"
1704
+ },
1705
+ "sanityRef": {
1706
+ "type": "string"
1707
+ },
1708
+ "sanityWeak": {
1709
+ "type": "boolean"
1710
+ }
1711
+ }
1712
+ },
1713
+ "patchEmployee": {
1714
+ "type": "object",
1715
+ "properties": {
1716
+ "gender": {
1717
+ "enum": [
1718
+ "male",
1719
+ "female",
1720
+ "These are not the genders you are looking for"
1721
+ ],
1722
+ "type": "string",
1723
+ "default": "male",
1724
+ "nullable": true
1725
+ },
1726
+ "maritalStatus": {
1727
+ "enum": [
1728
+ "single",
1729
+ "married",
1730
+ "cohabitant"
1731
+ ],
1732
+ "type": "string",
1733
+ "default": "single",
1734
+ "nullable": true
1735
+ },
1736
+ "sanityType": {
1737
+ "enum": [
1738
+ "employee"
1739
+ ],
1740
+ "type": "string",
1741
+ "default": "employee",
1742
+ "nullable": true
1743
+ },
1744
+ "about": {
1745
+ "type": "string"
1746
+ },
1747
+ "active": {
1748
+ "type": "boolean",
1749
+ "nullable": true
1750
+ },
1751
+ "address": {
1752
+ "type": "string"
1753
+ },
1754
+ "allergies": {
1755
+ "type": "array",
1756
+ "items": {
1757
+ "type": "string"
1758
+ }
1759
+ },
1760
+ "birth_date": {
1761
+ "type": "string"
1762
+ },
1763
+ "blurred_image": {
1764
+ "$ref": "#/components/schemas/sanityPatchPageMetaImage"
1765
+ },
1766
+ "boardMember": {
1767
+ "type": "boolean",
1768
+ "nullable": true
1769
+ },
1770
+ "cliftonStrengths": {
1771
+ "type": "array",
1772
+ "items": {
1773
+ "$ref": "#/components/schemas/sanityCreateEmployeeCliftonStrengthsInner"
1774
+ }
1775
+ },
1776
+ "coinbaseAccountEmail": {
1777
+ "type": "string"
1778
+ },
1779
+ "commissionTier": {
1780
+ "$ref": "#/components/schemas/commissionTierReference"
1781
+ },
1782
+ "education": {
1783
+ "type": "string"
1784
+ },
1785
+ "email": {
1786
+ "type": "string"
1787
+ },
1788
+ "equipment": {
1789
+ "type": "array",
1790
+ "items": {
1791
+ "$ref": "#/components/schemas/pageEquipmentInner"
1792
+ }
1793
+ },
1794
+ "github": {
1795
+ "type": "string"
1796
+ },
1797
+ "graduationYear": {
1798
+ "type": "number",
1799
+ "format": "double",
1800
+ "nullable": true
1801
+ },
1802
+ "groups": {
1803
+ "type": "array",
1804
+ "items": {
1805
+ "$ref": "#/components/schemas/sanityCreateEmployeeGroupsInner"
1806
+ }
1807
+ },
1808
+ "image": {
1809
+ "$ref": "#/components/schemas/sanityPatchPageMetaImage"
1810
+ },
1811
+ "innovativeSalary": {
1812
+ "type": "boolean",
1813
+ "nullable": true
1814
+ },
1815
+ "innovativeSalaryPercentage": {
1816
+ "type": "number",
1817
+ "format": "double",
1818
+ "nullable": true
1819
+ },
1820
+ "isBot": {
1821
+ "type": "boolean",
1822
+ "nullable": true
1823
+ },
1824
+ "isExternal": {
1825
+ "type": "boolean",
1826
+ "nullable": true
1827
+ },
1828
+ "isPublic": {
1829
+ "type": "boolean",
1830
+ "nullable": true
1831
+ },
1832
+ "isSeekingProject": {
1833
+ "type": "boolean",
1834
+ "nullable": true
1835
+ },
1836
+ "linkedin": {
1837
+ "type": "string"
1838
+ },
1839
+ "manager": {
1840
+ "$ref": "#/components/schemas/employeeReference"
1841
+ },
1842
+ "media": {
1843
+ "type": "array",
1844
+ "items": {
1845
+ "$ref": "#/components/schemas/componentGalleryMediaInner"
1846
+ }
1847
+ },
1848
+ "name": {
1849
+ "type": "string"
1850
+ },
1851
+ "nextOfKin": {
1852
+ "type": "array",
1853
+ "items": {
1854
+ "$ref": "#/components/schemas/sanityEmployeeNextOfKinInner"
1855
+ }
1856
+ },
1857
+ "nrOfChildren": {
1858
+ "type": "number",
1859
+ "format": "double",
1860
+ "nullable": true
1861
+ },
1862
+ "personalProjectRequirements": {
1863
+ "type": "string"
1864
+ },
1865
+ "position": {
1866
+ "type": "string"
1867
+ },
1868
+ "scopeGrants": {
1869
+ "type": "array",
1870
+ "items": {
1871
+ "type": "string"
1872
+ }
1873
+ },
1874
+ "settings": {
1875
+ "$ref": "#/components/schemas/sanityPatchEmployeeSettings"
1876
+ },
1877
+ "slug": {
1878
+ "$ref": "#/components/schemas/slug"
1879
+ },
1880
+ "start_date": {
1881
+ "type": "string"
1882
+ },
1883
+ "tags": {
1884
+ "type": "array",
1885
+ "items": {
1886
+ "$ref": "#/components/schemas/sanityCreateEmployeeTagsInner"
1887
+ }
1888
+ },
1889
+ "technologies": {
1890
+ "type": "array",
1891
+ "items": {
1892
+ "$ref": "#/components/schemas/sanityCreateEmployeeTechnologiesInner"
1893
+ }
1894
+ },
1895
+ "telephone": {
1896
+ "type": "string"
1897
+ },
1898
+ "additionalProperties": {
1899
+ "type": "object",
1900
+ "additionalProperties": {
1901
+ "type": "object"
1902
+ }
1903
+ }
1904
+ }
1905
+ },
1906
+ "presentationSpeaker": {
1907
+ "type": "object",
1908
+ "properties": {
1909
+ "name": {
1910
+ "type": "string",
1911
+ "nullable": true
1912
+ },
1913
+ "email": {
1914
+ "type": "string",
1915
+ "nullable": true
1916
+ },
1917
+ "flowcaseUserId": {
1918
+ "type": "string",
1919
+ "nullable": true
1920
+ }
1921
+ },
1922
+ "nullable": true
1923
+ },
1924
+ "protectedEmployee": {
1925
+ "type": "object",
1926
+ "properties": {
1927
+ "started": {
1928
+ "type": "boolean",
1929
+ "nullable": true
1930
+ },
1931
+ "gender": {
1932
+ "enum": [
1933
+ "female",
1934
+ "male",
1935
+ "These are not the genders you are looking for"
1936
+ ],
1937
+ "type": "string",
1938
+ "default": "female"
1939
+ },
1940
+ "maritalStatus": {
1941
+ "enum": [
1942
+ "cohabitant",
1943
+ "married",
1944
+ "single"
1945
+ ],
1946
+ "type": "string",
1947
+ "default": "cohabitant",
1948
+ "nullable": true
1949
+ },
1950
+ "sanityType": {
1951
+ "enum": [
1952
+ "employee"
1953
+ ],
1954
+ "type": "string",
1955
+ "default": "employee"
1956
+ },
1957
+ "about": {
1958
+ "type": "string"
1959
+ },
1960
+ "active": {
1961
+ "type": "boolean"
1962
+ },
1963
+ "address": {
1964
+ "type": "string"
1965
+ },
1966
+ "allergies": {
1967
+ "type": "array",
1968
+ "items": {
1969
+ "type": "string"
1970
+ }
1971
+ },
1972
+ "birth_date": {
1973
+ "type": "string"
1974
+ },
1975
+ "blurred_image": {
1976
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
1977
+ },
1978
+ "boardMember": {
1979
+ "type": "boolean"
1980
+ },
1981
+ "cliftonStrengths": {
1982
+ "type": "array",
1983
+ "items": {
1984
+ "$ref": "#/components/schemas/sanityEmployeeCliftonStrengthsInner"
1985
+ }
1986
+ },
1987
+ "coinbaseAccountEmail": {
1988
+ "type": "string"
1989
+ },
1990
+ "commissionTier": {
1991
+ "$ref": "#/components/schemas/sanityEmployeeCommissionTier"
1992
+ },
1993
+ "education": {
1994
+ "type": "string"
1995
+ },
1996
+ "email": {
1997
+ "type": "string"
1998
+ },
1999
+ "equipment": {
2000
+ "type": "array",
2001
+ "items": {
2002
+ "$ref": "#/components/schemas/sanityEmployeeEquipmentInner"
2003
+ }
2004
+ },
2005
+ "github": {
2006
+ "type": "string"
2007
+ },
2008
+ "graduationYear": {
2009
+ "type": "number",
2010
+ "format": "double"
2011
+ },
2012
+ "groups": {
2013
+ "type": "array",
2014
+ "items": {
2015
+ "$ref": "#/components/schemas/sanityEmployeeGroupsInner"
2016
+ }
2017
+ },
2018
+ "image": {
2019
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2020
+ },
2021
+ "innovativeSalary": {
2022
+ "type": "boolean"
2023
+ },
2024
+ "innovativeSalaryPercentage": {
2025
+ "type": "number",
2026
+ "format": "double"
2027
+ },
2028
+ "isBot": {
2029
+ "type": "boolean"
2030
+ },
2031
+ "isExternal": {
2032
+ "type": "boolean"
2033
+ },
2034
+ "isPublic": {
2035
+ "type": "boolean"
2036
+ },
2037
+ "isSeekingProject": {
2038
+ "type": "boolean"
2039
+ },
2040
+ "linkedin": {
2041
+ "type": "string"
2042
+ },
2043
+ "manager": {
2044
+ "$ref": "#/components/schemas/sanityEmployeeManager"
2045
+ },
2046
+ "media": {
2047
+ "type": "array",
2048
+ "items": {
2049
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner"
2050
+ }
2051
+ },
2052
+ "name": {
2053
+ "type": "string"
2054
+ },
2055
+ "nextOfKin": {
2056
+ "type": "array",
2057
+ "items": {
2058
+ "$ref": "#/components/schemas/sanityEmployeeNextOfKinInner"
2059
+ }
2060
+ },
2061
+ "nrOfChildren": {
2062
+ "type": "number",
2063
+ "format": "double"
2064
+ },
2065
+ "personalProjectRequirements": {
2066
+ "type": "string"
2067
+ },
2068
+ "position": {
2069
+ "type": "string"
2070
+ },
2071
+ "sanityCreatedAt": {
2072
+ "type": "string"
2073
+ },
2074
+ "sanityId": {
2075
+ "type": "string"
2076
+ },
2077
+ "sanityRev": {
2078
+ "type": "string"
2079
+ },
2080
+ "sanityUpdatedAt": {
2081
+ "type": "string"
2082
+ },
2083
+ "scopeGrants": {
2084
+ "type": "array",
2085
+ "items": {
2086
+ "type": "string"
2087
+ }
2088
+ },
2089
+ "settings": {
2090
+ "$ref": "#/components/schemas/sanityEmployeeSettings"
2091
+ },
2092
+ "slug": {
2093
+ "$ref": "#/components/schemas/slug"
2094
+ },
2095
+ "start_date": {
2096
+ "type": "string"
2097
+ },
2098
+ "tags": {
2099
+ "type": "array",
2100
+ "items": {
2101
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
2102
+ }
2103
+ },
2104
+ "technologies": {
2105
+ "type": "array",
2106
+ "items": {
2107
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTechnologiesInner"
2108
+ }
2109
+ },
2110
+ "telephone": {
2111
+ "type": "string"
2112
+ }
2113
+ }
2114
+ },
2115
+ "publicEmployee": {
2116
+ "type": "object",
2117
+ "properties": {
2118
+ "sanityId": {
2119
+ "type": "string"
2120
+ },
2121
+ "sanityType": {
2122
+ "type": "string"
2123
+ },
2124
+ "active": {
2125
+ "type": "boolean",
2126
+ "nullable": true
2127
+ },
2128
+ "isPublic": {
2129
+ "type": "boolean",
2130
+ "nullable": true
2131
+ },
2132
+ "image": {
2133
+ "$ref": "#/components/schemas/sanityImage"
2134
+ },
2135
+ "tags": {
2136
+ "type": "array",
2137
+ "items": {
2138
+ "$ref": "#/components/schemas/tag"
2139
+ }
2140
+ },
2141
+ "technologies": {
2142
+ "type": "array",
2143
+ "items": {
2144
+ "$ref": "#/components/schemas/technology"
2145
+ }
2146
+ },
2147
+ "started": {
2148
+ "type": "boolean"
2149
+ },
2150
+ "media": {
2151
+ "type": "array",
2152
+ "items": {
2153
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner"
2154
+ }
2155
+ },
2156
+ "name": {
2157
+ "type": "string"
2158
+ },
2159
+ "slug": {
2160
+ "$ref": "#/components/schemas/slug"
2161
+ },
2162
+ "gender": {
2163
+ "type": "string"
2164
+ },
2165
+ "email": {
2166
+ "type": "string"
2167
+ },
2168
+ "telephone": {
2169
+ "type": "string"
2170
+ },
2171
+ "position": {
2172
+ "type": "string"
2173
+ },
2174
+ "education": {
2175
+ "type": "string"
2176
+ },
2177
+ "about": {
2178
+ "type": "string"
2179
+ },
2180
+ "linkedin": {
2181
+ "type": "string"
2182
+ },
2183
+ "github": {
2184
+ "type": "string"
2185
+ },
2186
+ "birthDate": {
2187
+ "type": "string",
2188
+ "format": "date-time",
2189
+ "nullable": true
2190
+ },
2191
+ "startDate": {
2192
+ "type": "string"
2193
+ }
2194
+ }
2195
+ },
2196
+ "sanityAssetSourceData": {
2197
+ "type": "object",
2198
+ "properties": {
2199
+ "sanityType": {
2200
+ "enum": [
2201
+ "sanity.assetSourceData"
2202
+ ],
2203
+ "type": "string",
2204
+ "default": "sanity.assetSourceData"
2205
+ },
2206
+ "id": {
2207
+ "type": "string"
2208
+ },
2209
+ "name": {
2210
+ "type": "string"
2211
+ },
2212
+ "url": {
2213
+ "type": "string"
2214
+ }
2215
+ }
2216
+ },
2217
+ "sanityCreateEmployeeCliftonStrengthsInner": {
2218
+ "type": "object",
2219
+ "properties": {
2220
+ "sanityType": {
2221
+ "enum": [
2222
+ "reference"
2223
+ ],
2224
+ "type": "string",
2225
+ "default": "reference"
2226
+ },
2227
+ "sanityKey": {
2228
+ "type": "string"
2229
+ },
2230
+ "sanityRef": {
2231
+ "type": "string"
2232
+ },
2233
+ "sanityWeak": {
2234
+ "type": "boolean"
2235
+ }
2236
+ }
2237
+ },
2238
+ "sanityCreateEmployeeGroupsInner": {
2239
+ "type": "object",
2240
+ "properties": {
2241
+ "sanityType": {
2242
+ "enum": [
2243
+ "reference"
2244
+ ],
2245
+ "type": "string",
2246
+ "default": "reference"
2247
+ },
2248
+ "sanityKey": {
2249
+ "type": "string"
2250
+ },
2251
+ "sanityRef": {
2252
+ "type": "string"
2253
+ },
2254
+ "sanityWeak": {
2255
+ "type": "boolean"
2256
+ }
2257
+ }
2258
+ },
2259
+ "sanityCreateEmployeeTagsInner": {
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "sanityType": {
2263
+ "enum": [
2264
+ "reference"
2265
+ ],
2266
+ "type": "string",
2267
+ "default": "reference"
2268
+ },
2269
+ "sanityKey": {
2270
+ "type": "string"
2271
+ },
2272
+ "sanityRef": {
2273
+ "type": "string"
2274
+ },
2275
+ "sanityWeak": {
2276
+ "type": "boolean"
2277
+ }
2278
+ }
2279
+ },
2280
+ "sanityCreateEmployeeTechnologiesInner": {
2281
+ "type": "object",
2282
+ "properties": {
2283
+ "sanityType": {
2284
+ "enum": [
2285
+ "reference"
2286
+ ],
2287
+ "type": "string",
2288
+ "default": "reference"
2289
+ },
2290
+ "sanityKey": {
2291
+ "type": "string"
2292
+ },
2293
+ "sanityRef": {
2294
+ "type": "string"
2295
+ },
2296
+ "sanityWeak": {
2297
+ "type": "boolean"
2298
+ }
2299
+ }
2300
+ },
2301
+ "sanityEmployeeCliftonStrengthsInner": {
2302
+ "type": "object",
2303
+ "properties": {
2304
+ "domain": {
2305
+ "enum": [
2306
+ "executing",
2307
+ "influencing",
2308
+ "relationship_building",
2309
+ "strategic_thinking"
2310
+ ],
2311
+ "type": "string",
2312
+ "default": "executing",
2313
+ "nullable": true
2314
+ },
2315
+ "sanityType": {
2316
+ "enum": [
2317
+ "cliftonStrength"
2318
+ ],
2319
+ "type": "string",
2320
+ "default": "cliftonStrength"
2321
+ },
2322
+ "sanityCreatedAt": {
2323
+ "type": "string"
2324
+ },
2325
+ "sanityId": {
2326
+ "type": "string"
2327
+ },
2328
+ "sanityRev": {
2329
+ "type": "string"
2330
+ },
2331
+ "sanityUpdatedAt": {
2332
+ "type": "string"
2333
+ },
2334
+ "strength": {
2335
+ "type": "string"
2336
+ }
2337
+ }
2338
+ },
2339
+ "sanityEmployeeCommissionTier": {
2340
+ "type": "object",
2341
+ "properties": {
2342
+ "sanityType": {
2343
+ "enum": [
2344
+ "commissionTier"
2345
+ ],
2346
+ "type": "string",
2347
+ "default": "commissionTier"
2348
+ },
2349
+ "commission": {
2350
+ "type": "number",
2351
+ "format": "double"
2352
+ },
2353
+ "sanityCreatedAt": {
2354
+ "type": "string"
2355
+ },
2356
+ "sanityId": {
2357
+ "type": "string"
2358
+ },
2359
+ "sanityRev": {
2360
+ "type": "string"
2361
+ },
2362
+ "sanityUpdatedAt": {
2363
+ "type": "string"
2364
+ },
2365
+ "title": {
2366
+ "type": "string"
2367
+ }
2368
+ }
2369
+ },
2370
+ "sanityEmployeeEquipmentInner": {
2371
+ "type": "object",
2372
+ "properties": {
2373
+ "sanityType": {
2374
+ "enum": [
2375
+ "equipment"
2376
+ ],
2377
+ "type": "string",
2378
+ "default": "equipment"
2379
+ },
2380
+ "description": {
2381
+ "type": "array",
2382
+ "items": {
2383
+ "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
2384
+ }
2385
+ },
2386
+ "image": {
2387
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2388
+ },
2389
+ "images": {
2390
+ "type": "array",
2391
+ "items": {
2392
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsArticlesInnerMediaOneOf"
2393
+ }
2394
+ },
2395
+ "sanityId": {
2396
+ "type": "string"
2397
+ },
2398
+ "title": {
2399
+ "type": "string"
2400
+ }
2401
+ }
2402
+ },
2403
+ "sanityEmployeeGroupsInner": {
2404
+ "type": "object",
2405
+ "properties": {
2406
+ "sanityType": {
2407
+ "enum": [
2408
+ "group"
2409
+ ],
2410
+ "type": "string",
2411
+ "default": "group"
2412
+ },
2413
+ "description": {
2414
+ "type": "array",
2415
+ "items": {
2416
+ "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
2417
+ }
2418
+ },
2419
+ "image": {
2420
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsArticlesInnerMediaOneOf"
2421
+ },
2422
+ "leaders": {
2423
+ "type": "array",
2424
+ "items": {
2425
+ "$ref": "#/components/schemas/pageEmployeeOrderInner"
2426
+ }
2427
+ },
2428
+ "name": {
2429
+ "type": "string"
2430
+ },
2431
+ "permissions": {
2432
+ "type": "string"
2433
+ },
2434
+ "sanityCreatedAt": {
2435
+ "type": "string"
2436
+ },
2437
+ "sanityId": {
2438
+ "type": "string"
2439
+ },
2440
+ "sanityRev": {
2441
+ "type": "string"
2442
+ },
2443
+ "sanityUpdatedAt": {
2444
+ "type": "string"
2445
+ },
2446
+ "scopeGrants": {
2447
+ "type": "array",
2448
+ "items": {
2449
+ "type": "string"
2450
+ }
2451
+ }
2452
+ }
2453
+ },
2454
+ "sanityEmployeeManager": {
2455
+ "type": "object",
2456
+ "properties": {
2457
+ "sanityType": {
2458
+ "enum": [
2459
+ "employee"
2460
+ ],
2461
+ "type": "string",
2462
+ "default": "employee"
2463
+ },
2464
+ "email": {
2465
+ "type": "string"
2466
+ },
2467
+ "image": {
2468
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2469
+ },
2470
+ "isBot": {
2471
+ "type": "boolean",
2472
+ "nullable": true
2473
+ },
2474
+ "isExternal": {
2475
+ "type": "boolean",
2476
+ "nullable": true
2477
+ },
2478
+ "name": {
2479
+ "type": "string"
2480
+ },
2481
+ "sanityId": {
2482
+ "type": "string"
2483
+ },
2484
+ "slug": {
2485
+ "$ref": "#/components/schemas/slug"
2486
+ },
2487
+ "tags": {
2488
+ "type": "array",
2489
+ "items": {
2490
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
2491
+ }
2492
+ },
2493
+ "telephone": {
2494
+ "type": "string"
2495
+ }
2496
+ }
2497
+ },
2498
+ "sanityEmployeeNextOfKinInner": {
2499
+ "type": "object",
2500
+ "properties": {
2501
+ "sanityType": {
2502
+ "enum": [
2503
+ "nextofkin"
2504
+ ],
2505
+ "type": "string",
2506
+ "default": "nextofkin"
2507
+ },
2508
+ "name": {
2509
+ "type": "string"
2510
+ },
2511
+ "sanityKey": {
2512
+ "type": "string"
2513
+ },
2514
+ "telephone": {
2515
+ "type": "string"
2516
+ }
2517
+ }
2518
+ },
2519
+ "sanityEmployeeSettings": {
2520
+ "type": "object",
2521
+ "properties": {
2522
+ "colorScheme": {
2523
+ "enum": [
2524
+ "dark",
2525
+ "light",
2526
+ "system"
2527
+ ],
2528
+ "type": "string",
2529
+ "default": "dark",
2530
+ "nullable": true
2531
+ }
2532
+ }
2533
+ },
2534
+ "sanityGadgetBudgetYearlyBudgetsInner": {
2535
+ "type": "object",
2536
+ "properties": {
2537
+ "sanityType": {
2538
+ "enum": [
2539
+ "yearlyBudget"
2540
+ ],
2541
+ "type": "string",
2542
+ "default": "yearlyBudget"
2543
+ },
2544
+ "amount": {
2545
+ "type": "number",
2546
+ "format": "double"
2547
+ },
2548
+ "equipmentList": {
2549
+ "type": "array",
2550
+ "items": {
2551
+ "$ref": "#/components/schemas/sanityGadgetBudgetYearlyBudgetsInnerEquipmentListInner"
2552
+ }
2553
+ },
2554
+ "sanityKey": {
2555
+ "type": "string"
2556
+ },
2557
+ "year": {
2558
+ "type": "number",
2559
+ "format": "double"
2560
+ }
2561
+ }
2562
+ },
2563
+ "sanityGadgetBudgetYearlyBudgetsInnerEquipmentListInner": {
2564
+ "type": "object",
2565
+ "properties": {
2566
+ "actualInstance": {
2567
+ "type": "object"
2568
+ },
2569
+ "isNullable": {
2570
+ "type": "boolean"
2571
+ },
2572
+ "schemaType": {
2573
+ "type": "string"
2574
+ }
2575
+ }
2576
+ },
2577
+ "sanityImage": {
2578
+ "type": "object",
2579
+ "properties": {
2580
+ "sanityType": {
2581
+ "enum": [
2582
+ "image"
2583
+ ],
2584
+ "type": "string",
2585
+ "default": "image"
2586
+ },
2587
+ "asset": {
2588
+ "$ref": "#/components/schemas/sanityImageAsset"
2589
+ },
2590
+ "sanityId": {
2591
+ "type": "string"
2592
+ },
2593
+ "sanityKey": {
2594
+ "type": "string"
2595
+ },
2596
+ "additionalProperties": {
2597
+ "type": "object",
2598
+ "additionalProperties": {
2599
+ "type": "object"
2600
+ }
2601
+ }
2602
+ }
2603
+ },
2604
+ "sanityImageAsset": {
2605
+ "type": "object",
2606
+ "properties": {
2607
+ "sanityType": {
2608
+ "enum": [
2609
+ "sanity.imageAsset"
2610
+ ],
2611
+ "type": "string",
2612
+ "default": "sanity.imageAsset"
2613
+ },
2614
+ "altText": {
2615
+ "type": "string"
2616
+ },
2617
+ "assetId": {
2618
+ "type": "string"
2619
+ },
2620
+ "description": {
2621
+ "type": "string"
2622
+ },
2623
+ "extension": {
2624
+ "type": "string"
2625
+ },
2626
+ "label": {
2627
+ "type": "string"
2628
+ },
2629
+ "metadata": {
2630
+ "$ref": "#/components/schemas/sanityImageMetadata"
2631
+ },
2632
+ "mimeType": {
2633
+ "type": "string"
2634
+ },
2635
+ "originalFilename": {
2636
+ "type": "string"
2637
+ },
2638
+ "path": {
2639
+ "type": "string"
2640
+ },
2641
+ "sanityCreatedAt": {
2642
+ "type": "string"
2643
+ },
2644
+ "sanityId": {
2645
+ "type": "string"
2646
+ },
2647
+ "sanityRev": {
2648
+ "type": "string"
2649
+ },
2650
+ "sanityUpdatedAt": {
2651
+ "type": "string"
2652
+ },
2653
+ "sha1hash": {
2654
+ "type": "string"
2655
+ },
2656
+ "size": {
2657
+ "type": "number",
2658
+ "format": "double"
2659
+ },
2660
+ "source": {
2661
+ "$ref": "#/components/schemas/sanityAssetSourceData"
2662
+ },
2663
+ "title": {
2664
+ "type": "string"
2665
+ },
2666
+ "uploadId": {
2667
+ "type": "string"
2668
+ },
2669
+ "url": {
2670
+ "type": "string"
2671
+ },
2672
+ "additionalProperties": {
2673
+ "type": "object",
2674
+ "additionalProperties": {
2675
+ "type": "object"
2676
+ }
2677
+ }
2678
+ }
2679
+ },
2680
+ "sanityImageAssetReference": {
2681
+ "type": "object",
2682
+ "properties": {
2683
+ "sanityType": {
2684
+ "enum": [
2685
+ "reference"
2686
+ ],
2687
+ "type": "string",
2688
+ "default": "reference"
2689
+ },
2690
+ "sanityRef": {
2691
+ "type": "string"
2692
+ },
2693
+ "sanityWeak": {
2694
+ "type": "boolean"
2695
+ }
2696
+ }
2697
+ },
2698
+ "sanityImageCrop": {
2699
+ "type": "object",
2700
+ "properties": {
2701
+ "sanityType": {
2702
+ "enum": [
2703
+ "sanity.imageCrop"
2704
+ ],
2705
+ "type": "string",
2706
+ "default": "sanity.imageCrop"
2707
+ },
2708
+ "bottom": {
2709
+ "type": "number",
2710
+ "format": "double"
2711
+ },
2712
+ "left": {
2713
+ "type": "number",
2714
+ "format": "double"
2715
+ },
2716
+ "right": {
2717
+ "type": "number",
2718
+ "format": "double"
2719
+ },
2720
+ "top": {
2721
+ "type": "number",
2722
+ "format": "double"
2723
+ }
2724
+ }
2725
+ },
2726
+ "sanityImageDimensions": {
2727
+ "type": "object",
2728
+ "properties": {
2729
+ "sanityType": {
2730
+ "enum": [
2731
+ "sanity.imageDimensions"
2732
+ ],
2733
+ "type": "string",
2734
+ "default": "sanity.imageDimensions"
2735
+ },
2736
+ "aspectRatio": {
2737
+ "type": "number",
2738
+ "format": "double"
2739
+ },
2740
+ "height": {
2741
+ "type": "number",
2742
+ "format": "double"
2743
+ },
2744
+ "width": {
2745
+ "type": "number",
2746
+ "format": "double"
2747
+ }
2748
+ }
2749
+ },
2750
+ "sanityImageHotspot": {
2751
+ "type": "object",
2752
+ "properties": {
2753
+ "sanityType": {
2754
+ "enum": [
2755
+ "sanity.imageHotspot"
2756
+ ],
2757
+ "type": "string",
2758
+ "default": "sanity.imageHotspot"
2759
+ },
2760
+ "height": {
2761
+ "type": "number",
2762
+ "format": "double"
2763
+ },
2764
+ "width": {
2765
+ "type": "number",
2766
+ "format": "double"
2767
+ },
2768
+ "x": {
2769
+ "type": "number",
2770
+ "format": "double"
2771
+ },
2772
+ "y": {
2773
+ "type": "number",
2774
+ "format": "double"
2775
+ }
2776
+ }
2777
+ },
2778
+ "sanityImageMetadata": {
2779
+ "type": "object",
2780
+ "properties": {
2781
+ "sanityType": {
2782
+ "enum": [
2783
+ "sanity.imageMetadata"
2784
+ ],
2785
+ "type": "string",
2786
+ "default": "sanity.imageMetadata"
2787
+ },
2788
+ "blurHash": {
2789
+ "type": "string"
2790
+ },
2791
+ "dimensions": {
2792
+ "$ref": "#/components/schemas/sanityImageDimensions"
2793
+ },
2794
+ "hasAlpha": {
2795
+ "type": "boolean"
2796
+ },
2797
+ "isOpaque": {
2798
+ "type": "boolean"
2799
+ },
2800
+ "location": {
2801
+ "$ref": "#/components/schemas/geopoint"
2802
+ },
2803
+ "lqip": {
2804
+ "type": "string"
2805
+ },
2806
+ "palette": {
2807
+ "$ref": "#/components/schemas/sanityImagePalette"
2808
+ },
2809
+ "thumbHash": {
2810
+ "type": "string"
2811
+ }
2812
+ }
2813
+ },
2814
+ "sanityImagePalette": {
2815
+ "type": "object",
2816
+ "properties": {
2817
+ "sanityType": {
2818
+ "enum": [
2819
+ "sanity.imagePalette"
2820
+ ],
2821
+ "type": "string",
2822
+ "default": "sanity.imagePalette"
2823
+ },
2824
+ "darkMuted": {
2825
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2826
+ },
2827
+ "darkVibrant": {
2828
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2829
+ },
2830
+ "dominant": {
2831
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2832
+ },
2833
+ "lightMuted": {
2834
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2835
+ },
2836
+ "lightVibrant": {
2837
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2838
+ },
2839
+ "muted": {
2840
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2841
+ },
2842
+ "vibrant": {
2843
+ "$ref": "#/components/schemas/sanityImagePaletteSwatch"
2844
+ }
2845
+ }
2846
+ },
2847
+ "sanityImagePaletteSwatch": {
2848
+ "type": "object",
2849
+ "properties": {
2850
+ "sanityType": {
2851
+ "enum": [
2852
+ "sanity.imagePaletteSwatch"
2853
+ ],
2854
+ "type": "string",
2855
+ "default": "sanity.imagePaletteSwatch"
2856
+ },
2857
+ "background": {
2858
+ "type": "string"
2859
+ },
2860
+ "foreground": {
2861
+ "type": "string"
2862
+ },
2863
+ "population": {
2864
+ "type": "number",
2865
+ "format": "double"
2866
+ },
2867
+ "title": {
2868
+ "type": "string"
2869
+ }
2870
+ }
2871
+ },
2872
+ "sanityOrderEmployee": {
2873
+ "type": "object",
2874
+ "properties": {
2875
+ "sanityType": {
2876
+ "enum": [
2877
+ "employee"
2878
+ ],
2879
+ "type": "string",
2880
+ "default": "employee"
2881
+ },
2882
+ "email": {
2883
+ "type": "string"
2884
+ },
2885
+ "image": {
2886
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2887
+ },
2888
+ "isBot": {
2889
+ "type": "boolean",
2890
+ "nullable": true
2891
+ },
2892
+ "isExternal": {
2893
+ "type": "boolean",
2894
+ "nullable": true
2895
+ },
2896
+ "name": {
2897
+ "type": "string"
2898
+ },
2899
+ "sanityId": {
2900
+ "type": "string"
2901
+ },
2902
+ "slug": {
2903
+ "$ref": "#/components/schemas/slug"
2904
+ },
2905
+ "tags": {
2906
+ "type": "array",
2907
+ "items": {
2908
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
2909
+ }
2910
+ },
2911
+ "telephone": {
2912
+ "type": "string"
2913
+ }
2914
+ }
2915
+ },
2916
+ "sanityPatchEmployeeSettings": {
2917
+ "type": "object",
2918
+ "properties": {
2919
+ "colorScheme": {
2920
+ "enum": [
2921
+ "dark",
2922
+ "light",
2923
+ "system"
2924
+ ],
2925
+ "type": "string",
2926
+ "default": "dark",
2927
+ "nullable": true
2928
+ }
2929
+ }
2930
+ },
2931
+ "sanityPatchPageMetaImage": {
2932
+ "type": "object",
2933
+ "properties": {
2934
+ "sanityType": {
2935
+ "enum": [
2936
+ "image"
2937
+ ],
2938
+ "type": "string",
2939
+ "default": "image"
2940
+ },
2941
+ "asset": {
2942
+ "$ref": "#/components/schemas/sanityImageAssetReference"
2943
+ },
2944
+ "crop": {
2945
+ "$ref": "#/components/schemas/sanityImageCrop"
2946
+ },
2947
+ "hotspot": {
2948
+ "$ref": "#/components/schemas/sanityImageHotspot"
2949
+ },
2950
+ "media": {
2951
+ "type": "object"
2952
+ }
2953
+ }
2954
+ },
2955
+ "sanitySystemsInnerDescriptionInner": {
2956
+ "type": "object",
2957
+ "properties": {
2958
+ "listItem": {
2959
+ "enum": [
2960
+ "bullet",
2961
+ "number"
2962
+ ],
2963
+ "type": "string",
2964
+ "default": "bullet",
2965
+ "nullable": true
2966
+ },
2967
+ "sanityType": {
2968
+ "enum": [
2969
+ "block"
2970
+ ],
2971
+ "type": "string",
2972
+ "default": "block"
2973
+ },
2974
+ "style": {
2975
+ "enum": [
2976
+ "blockquote",
2977
+ "h1",
2978
+ "h2",
2979
+ "h3",
2980
+ "h4",
2981
+ "h5",
2982
+ "h6",
2983
+ "normal"
2984
+ ],
2985
+ "type": "string",
2986
+ "default": "blockquote",
2987
+ "nullable": true
2988
+ },
2989
+ "children": {
2990
+ "type": "array",
2991
+ "items": {
2992
+ "$ref": "#/components/schemas/componentBlocksInnerOneOfChildrenInner"
2993
+ }
2994
+ },
2995
+ "level": {
2996
+ "type": "number",
2997
+ "format": "double"
2998
+ },
2999
+ "markDefs": {
3000
+ "type": "array",
3001
+ "items": {
3002
+ "$ref": "#/components/schemas/componentBlocksInnerOneOfMarkDefsInner"
3003
+ }
3004
+ },
3005
+ "sanityKey": {
3006
+ "type": "string"
3007
+ }
3008
+ }
3009
+ },
3010
+ "sanityTechnologyWithRelationsArticlesInnerMediaOneOf": {
3011
+ "type": "object",
3012
+ "properties": {
3013
+ "sanityType": {
3014
+ "enum": [
3015
+ "image"
3016
+ ],
3017
+ "type": "string",
3018
+ "default": "image"
3019
+ },
3020
+ "asset": {
3021
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
3022
+ }
3023
+ }
3024
+ },
3025
+ "sanityTechnologyWithRelationsDescriptionInnerOneOf4MediaInner": {
3026
+ "type": "object",
3027
+ "properties": {
3028
+ "actualInstance": {
3029
+ "type": "object"
3030
+ },
3031
+ "isNullable": {
3032
+ "type": "boolean"
3033
+ },
3034
+ "schemaType": {
3035
+ "type": "string"
3036
+ }
3037
+ }
3038
+ },
3039
+ "sanityTechnologyWithRelationsEmployeesInnerTagsInner": {
3040
+ "type": "object",
3041
+ "properties": {
3042
+ "sanityType": {
3043
+ "enum": [
3044
+ "tag"
3045
+ ],
3046
+ "type": "string",
3047
+ "default": "tag"
3048
+ },
3049
+ "name": {
3050
+ "type": "string"
3051
+ },
3052
+ "sanityId": {
3053
+ "type": "string"
3054
+ },
3055
+ "slug": {
3056
+ "$ref": "#/components/schemas/slug"
3057
+ }
3058
+ }
3059
+ },
3060
+ "sanityTechnologyWithRelationsProjectsInnerTechnologiesInner": {
3061
+ "type": "object",
3062
+ "properties": {
3063
+ "sanityType": {
3064
+ "enum": [
3065
+ "technology"
3066
+ ],
3067
+ "type": "string",
3068
+ "default": "technology"
3069
+ },
3070
+ "parent": {
3071
+ "$ref": "#/components/schemas/sanityTechnologyWithRelationsEmployeesInnerTagsInner"
3072
+ },
3073
+ "sanityId": {
3074
+ "type": "string"
3075
+ },
3076
+ "slug": {
3077
+ "$ref": "#/components/schemas/slug"
3078
+ },
3079
+ "title": {
3080
+ "type": "string"
3081
+ }
3082
+ }
3083
+ },
3084
+ "sanityTvCategoryDashboardsInnerBackgroundImage": {
3085
+ "type": "object",
3086
+ "properties": {
3087
+ "sanityType": {
3088
+ "enum": [
3089
+ "image"
3090
+ ],
3091
+ "type": "string",
3092
+ "default": "image"
3093
+ },
3094
+ "asset": {
3095
+ "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
3096
+ }
3097
+ }
3098
+ },
3099
+ "sanityTvCategoryDashboardsInnerBackgroundImageAsset": {
3100
+ "type": "object",
3101
+ "properties": {
3102
+ "sanityType": {
3103
+ "enum": [
3104
+ "sanity.imageAsset"
3105
+ ],
3106
+ "type": "string",
3107
+ "default": "sanity.imageAsset"
3108
+ },
3109
+ "mimeType": {
3110
+ "type": "string"
3111
+ },
3112
+ "originalFilename": {
3113
+ "type": "string"
3114
+ },
3115
+ "sanityId": {
3116
+ "type": "string"
3117
+ },
3118
+ "url": {
3119
+ "type": "string"
3120
+ }
3121
+ }
3122
+ },
3123
+ "slug": {
3124
+ "type": "object",
3125
+ "properties": {
3126
+ "sanityType": {
3127
+ "enum": [
3128
+ "slug"
3129
+ ],
3130
+ "type": "string",
3131
+ "default": "slug"
3132
+ },
3133
+ "current": {
3134
+ "type": "string"
3135
+ },
3136
+ "source": {
3137
+ "type": "string"
3138
+ }
3139
+ }
3140
+ },
3141
+ "tag": {
3142
+ "type": "object",
3143
+ "properties": {
3144
+ "sanityId": {
3145
+ "type": "string"
3146
+ },
3147
+ "sanityType": {
3148
+ "type": "string"
3149
+ },
3150
+ "name": {
3151
+ "type": "string"
3152
+ },
3153
+ "slug": {
3154
+ "$ref": "#/components/schemas/slug"
3155
+ }
3156
+ }
3157
+ },
3158
+ "technology": {
3159
+ "type": "object",
3160
+ "properties": {
3161
+ "sanityId": {
3162
+ "type": "string"
3163
+ },
3164
+ "sanityType": {
3165
+ "type": "string"
3166
+ },
3167
+ "name": {
3168
+ "type": "string"
3169
+ },
3170
+ "slug": {
3171
+ "$ref": "#/components/schemas/slug"
3172
+ },
3173
+ "parent": {
3174
+ "$ref": "#/components/schemas/tag"
3175
+ }
3176
+ }
3177
+ },
3178
+ "updateProposalRequest": {
3179
+ "type": "object",
3180
+ "properties": {
3181
+ "name": {
3182
+ "type": "string",
3183
+ "nullable": true
3184
+ },
3185
+ "archived": {
3186
+ "type": "boolean",
3187
+ "nullable": true
3188
+ },
3189
+ "status": {
3190
+ "type": "string",
3191
+ "nullable": true
3192
+ }
3193
+ }
3194
+ }
3195
+ },
3196
+ "securitySchemes": {
3197
+ "Implicit": {
3198
+ "type": "oauth2",
3199
+ "flows": {
3200
+ "implicit": {
3201
+ "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize",
3202
+ "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
3203
+ "refreshUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token",
3204
+ "scopes": {
3205
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default": "Default function scope"
3206
+ }
3207
+ }
3208
+ }
3209
+ }
3210
+ }
3211
+ }
3212
+ }