@snokam/mcp-api 0.27.0 → 0.28.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.
@@ -1,2699 +0,0 @@
1
- {
2
- "openapi": "3.0.1",
3
- "info": {
4
- "title": "Recruitment API",
5
- "description": "Recruitment management API",
6
- "version": "v1.0.0"
7
- },
8
- "servers": [
9
- {
10
- "url": "https://recruitment.api.test.snokam.no"
11
- }
12
- ],
13
- "paths": {
14
- "/v1.0/GetHealth": {
15
- "get": {
16
- "tags": [
17
- "Health"
18
- ],
19
- "summary": "Health check",
20
- "description": "Returns a health check response.",
21
- "operationId": "GetHealth",
22
- "responses": {
23
- "200": {
24
- "description": "Service is healthy",
25
- "content": {
26
- "application/json": {
27
- "schema": {
28
- "type": "object"
29
- }
30
- }
31
- },
32
- "x-ms-summary": "Success"
33
- }
34
- }
35
- }
36
- },
37
- "/v1.0/protected/candidates": {
38
- "get": {
39
- "tags": [
40
- "Candidates"
41
- ],
42
- "summary": "List recruitment candidates",
43
- "description": "Returns every candidate document in Sanity — pipeline, applications and archived.",
44
- "operationId": "ListCandidates",
45
- "responses": {
46
- "200": {
47
- "description": "All candidates",
48
- "content": {
49
- "application/json": {
50
- "schema": {
51
- "type": "array",
52
- "items": {
53
- "$ref": "#/components/schemas/sanityCandidate"
54
- }
55
- }
56
- }
57
- },
58
- "x-ms-summary": "Success"
59
- },
60
- "401": {
61
- "description": "No description",
62
- "x-ms-summary": "Unauthorized"
63
- }
64
- },
65
- "security": [
66
- {
67
- "Implicit": [
68
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
69
- ]
70
- }
71
- ]
72
- },
73
- "post": {
74
- "tags": [
75
- "Candidates"
76
- ],
77
- "summary": "Create a fresh admin-initiated candidate",
78
- "description": "Creates a candidate document directly (not via the public application flow). Caller supplies name + status + track.",
79
- "operationId": "CreateCandidate",
80
- "parameters": [
81
- {
82
- "name": "notify",
83
- "in": "query",
84
- "schema": {
85
- "type": "boolean"
86
- },
87
- "x-ms-summary": "If false, suppress the welcome email/SMS even when the candidate has contact info. Defaults to true."
88
- }
89
- ],
90
- "requestBody": {
91
- "description": "Initial candidate fields",
92
- "content": {
93
- "application/json": {
94
- "schema": {
95
- "$ref": "#/components/schemas/createCandidateInput"
96
- }
97
- }
98
- },
99
- "required": true
100
- },
101
- "responses": {
102
- "201": {
103
- "description": "The created candidate",
104
- "content": {
105
- "application/json": {
106
- "schema": {
107
- "$ref": "#/components/schemas/sanityCandidate"
108
- }
109
- }
110
- },
111
- "x-ms-summary": "Created"
112
- },
113
- "400": {
114
- "description": "Payload of Object",
115
- "content": {
116
- "application/json": {
117
- "schema": {
118
- "type": "object"
119
- }
120
- }
121
- },
122
- "x-ms-summary": "Bad Request"
123
- },
124
- "401": {
125
- "description": "No description",
126
- "x-ms-summary": "Unauthorized"
127
- }
128
- },
129
- "security": [
130
- {
131
- "Implicit": [
132
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
133
- ]
134
- }
135
- ]
136
- }
137
- },
138
- "/v1.0/protected/candidates/{id}": {
139
- "get": {
140
- "tags": [
141
- "Candidates"
142
- ],
143
- "summary": "Get a candidate by id",
144
- "description": "Returns a fully-hydrated candidate including references, documents, systems and checklists.",
145
- "operationId": "GetCandidate",
146
- "parameters": [
147
- {
148
- "name": "id",
149
- "in": "path",
150
- "required": true,
151
- "schema": {
152
- "type": "string"
153
- },
154
- "x-ms-summary": "Candidate Sanity id"
155
- }
156
- ],
157
- "responses": {
158
- "200": {
159
- "description": "Payload of SanityCandidate",
160
- "content": {
161
- "application/json": {
162
- "schema": {
163
- "$ref": "#/components/schemas/sanityCandidate"
164
- }
165
- }
166
- },
167
- "x-ms-summary": "Success"
168
- },
169
- "401": {
170
- "description": "No description",
171
- "x-ms-summary": "Unauthorized"
172
- },
173
- "404": {
174
- "description": "No description",
175
- "x-ms-summary": "Not Found"
176
- }
177
- },
178
- "security": [
179
- {
180
- "Implicit": [
181
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
182
- ]
183
- }
184
- ]
185
- },
186
- "patch": {
187
- "tags": [
188
- "Candidates"
189
- ],
190
- "summary": "Patch candidate fields",
191
- "description": "Updates any subset of candidate fields — status, buddy, recruiter, systems, checklists, contact info.",
192
- "operationId": "PatchCandidate",
193
- "parameters": [
194
- {
195
- "name": "id",
196
- "in": "path",
197
- "required": true,
198
- "schema": {
199
- "type": "string"
200
- },
201
- "x-ms-summary": "Candidate Sanity id"
202
- },
203
- {
204
- "name": "notify",
205
- "in": "query",
206
- "schema": {
207
- "type": "boolean"
208
- },
209
- "x-ms-summary": "If true and the patch changes status, send the candidate the email/SMS for the new status"
210
- }
211
- ],
212
- "requestBody": {
213
- "description": "Partial candidate fields to update",
214
- "content": {
215
- "application/json": {
216
- "schema": {
217
- "$ref": "#/components/schemas/sanityPatchCandidate"
218
- }
219
- }
220
- },
221
- "required": true
222
- },
223
- "responses": {
224
- "200": {
225
- "description": "The patched candidate",
226
- "content": {
227
- "application/json": {
228
- "schema": {
229
- "$ref": "#/components/schemas/sanityCandidate"
230
- }
231
- }
232
- },
233
- "x-ms-summary": "Success"
234
- },
235
- "400": {
236
- "description": "Payload of Object",
237
- "content": {
238
- "application/json": {
239
- "schema": {
240
- "type": "object"
241
- }
242
- }
243
- },
244
- "x-ms-summary": "Bad Request"
245
- },
246
- "401": {
247
- "description": "No description",
248
- "x-ms-summary": "Unauthorized"
249
- },
250
- "404": {
251
- "description": "No description",
252
- "x-ms-summary": "Not Found"
253
- }
254
- },
255
- "security": [
256
- {
257
- "Implicit": [
258
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
259
- ]
260
- }
261
- ]
262
- }
263
- },
264
- "/v1.0/protected/candidates/{id}/notification-preview": {
265
- "get": {
266
- "tags": [
267
- "Candidates"
268
- ],
269
- "summary": "Preview the email/SMS that would be sent for a candidate event",
270
- "description": "Renders the email + SMS templates for the given event using the candidate's current data. Use to populate the confirm modal before a status change.",
271
- "operationId": "GetCandidateNotificationPreview",
272
- "parameters": [
273
- {
274
- "name": "id",
275
- "in": "path",
276
- "required": true,
277
- "schema": {
278
- "type": "string"
279
- },
280
- "x-ms-summary": "Candidate Sanity id"
281
- },
282
- {
283
- "name": "event",
284
- "in": "query",
285
- "required": true,
286
- "schema": {
287
- "type": "string"
288
- },
289
- "x-ms-summary": "Event name: Created, Introduction, Offer, Signed, Onboarding, UserCreationReview, Offboarding"
290
- }
291
- ],
292
- "responses": {
293
- "200": {
294
- "description": "Payload of CandidateNotificationPreview",
295
- "content": {
296
- "application/json": {
297
- "schema": {
298
- "$ref": "#/components/schemas/candidateNotificationPreview"
299
- }
300
- }
301
- },
302
- "x-ms-summary": "Success"
303
- },
304
- "400": {
305
- "description": "Payload of Object",
306
- "content": {
307
- "application/json": {
308
- "schema": {
309
- "type": "object"
310
- }
311
- }
312
- },
313
- "x-ms-summary": "Bad Request"
314
- },
315
- "401": {
316
- "description": "No description",
317
- "x-ms-summary": "Unauthorized"
318
- },
319
- "404": {
320
- "description": "No description",
321
- "x-ms-summary": "Not Found"
322
- }
323
- },
324
- "security": [
325
- {
326
- "Implicit": [
327
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
328
- ]
329
- }
330
- ]
331
- }
332
- },
333
- "/v1.0/protected/candidates/notification-preview": {
334
- "post": {
335
- "tags": [
336
- "Candidates"
337
- ],
338
- "summary": "Preview a candidate notification before the candidate is created",
339
- "description": "Used by the create form to render the email/SMS that will be sent on submit, given the in-progress candidate fields. No recruiter resolution — uses the team-fallback signoff.",
340
- "operationId": "PreviewCandidateNotification",
341
- "requestBody": {
342
- "description": "Event + candidate-shaped fields",
343
- "content": {
344
- "application/json": {
345
- "schema": {
346
- "$ref": "#/components/schemas/candidateNotificationPreviewRequest"
347
- }
348
- }
349
- },
350
- "required": true
351
- },
352
- "responses": {
353
- "200": {
354
- "description": "Payload of CandidateNotificationPreview",
355
- "content": {
356
- "application/json": {
357
- "schema": {
358
- "$ref": "#/components/schemas/candidateNotificationPreview"
359
- }
360
- }
361
- },
362
- "x-ms-summary": "Success"
363
- },
364
- "400": {
365
- "description": "Payload of Object",
366
- "content": {
367
- "application/json": {
368
- "schema": {
369
- "type": "object"
370
- }
371
- }
372
- },
373
- "x-ms-summary": "Bad Request"
374
- },
375
- "401": {
376
- "description": "No description",
377
- "x-ms-summary": "Unauthorized"
378
- }
379
- },
380
- "security": [
381
- {
382
- "Implicit": [
383
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
384
- ]
385
- }
386
- ]
387
- }
388
- },
389
- "/v1.0/protected/candidates/{id}/promote": {
390
- "post": {
391
- "tags": [
392
- "Candidates"
393
- ],
394
- "summary": "Promote a public job application to the pipeline",
395
- "description": "Flips fromApplication=false and bumps status to INTRODUCTION so the candidate appears in the admin pipeline.",
396
- "operationId": "PromoteApplication",
397
- "parameters": [
398
- {
399
- "name": "id",
400
- "in": "path",
401
- "required": true,
402
- "schema": {
403
- "type": "string"
404
- },
405
- "x-ms-summary": "Candidate Sanity id"
406
- }
407
- ],
408
- "responses": {
409
- "200": {
410
- "description": "The promoted candidate",
411
- "content": {
412
- "application/json": {
413
- "schema": {
414
- "$ref": "#/components/schemas/sanityCandidate"
415
- }
416
- }
417
- },
418
- "x-ms-summary": "Success"
419
- },
420
- "400": {
421
- "description": "Candidate is not a public job application",
422
- "content": {
423
- "application/json": {
424
- "schema": {
425
- "type": "object"
426
- }
427
- }
428
- },
429
- "x-ms-summary": "Bad Request"
430
- },
431
- "401": {
432
- "description": "No description",
433
- "x-ms-summary": "Unauthorized"
434
- },
435
- "404": {
436
- "description": "No description",
437
- "x-ms-summary": "Not Found"
438
- }
439
- },
440
- "security": [
441
- {
442
- "Implicit": [
443
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
444
- ]
445
- }
446
- ]
447
- }
448
- },
449
- "/v1.0/protected/candidates/{id}/onboard/{system}": {
450
- "post": {
451
- "tags": [
452
- "Candidates"
453
- ],
454
- "summary": "Trigger automated onboarding for a given system",
455
- "description": "Dispatches to the right onboarding handler based on the system slug. Microsoft 365 is the primary target; other systems report 'not implemented' until their handler lands.",
456
- "operationId": "OnboardCandidateSystem",
457
- "parameters": [
458
- {
459
- "name": "id",
460
- "in": "path",
461
- "required": true,
462
- "schema": {
463
- "type": "string"
464
- },
465
- "x-ms-summary": "Candidate Sanity id"
466
- },
467
- {
468
- "name": "system",
469
- "in": "path",
470
- "required": true,
471
- "schema": {
472
- "type": "string"
473
- },
474
- "x-ms-summary": "System slug (e.g. 'microsoft-365')"
475
- }
476
- ],
477
- "responses": {
478
- "200": {
479
- "description": "Uniform onboarding result with status + message",
480
- "content": {
481
- "application/json": {
482
- "schema": {
483
- "$ref": "#/components/schemas/onboardingResult"
484
- }
485
- }
486
- },
487
- "x-ms-summary": "Success"
488
- },
489
- "400": {
490
- "description": "Payload of Object",
491
- "content": {
492
- "application/json": {
493
- "schema": {
494
- "type": "object"
495
- }
496
- }
497
- },
498
- "x-ms-summary": "Bad Request"
499
- },
500
- "401": {
501
- "description": "No description",
502
- "x-ms-summary": "Unauthorized"
503
- },
504
- "404": {
505
- "description": "No description",
506
- "x-ms-summary": "Not Found"
507
- }
508
- },
509
- "security": [
510
- {
511
- "Implicit": [
512
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
513
- ]
514
- }
515
- ]
516
- }
517
- },
518
- "/v1.0/protected/candidates/{id}/onboard-full/stream": {
519
- "post": {
520
- "tags": [
521
- "Candidates"
522
- ],
523
- "summary": "Run the onboarding chain with a live SSE event feed",
524
- "description": "Same chain as /onboard-full but streams Server-Sent Events (`event: step`) as each step starts (`status:running`) and finishes (`succeeded`/`failed`). Closes with `event: done`. Frontend uses fetch streaming so we can pass a Bearer token; EventSource doesn't support custom headers.",
525
- "operationId": "OnboardCandidateFullStream",
526
- "parameters": [
527
- {
528
- "name": "id",
529
- "in": "path",
530
- "required": true,
531
- "schema": {
532
- "type": "string"
533
- }
534
- }
535
- ],
536
- "responses": {
537
- "200": {
538
- "description": "No description",
539
- "x-ms-summary": "SSE stream of OnboardingResult frames"
540
- }
541
- },
542
- "security": [
543
- {
544
- "Implicit": [
545
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
546
- ]
547
- }
548
- ]
549
- }
550
- },
551
- "/v1.0/protected/candidates/{id}/onboard-full": {
552
- "post": {
553
- "tags": [
554
- "Candidates"
555
- ],
556
- "summary": "Run the full automated onboarding chain",
557
- "description": "Provisions the candidate's Microsoft 365 user, then triggers an Azure AD → Sanity sync to create the matching employee doc. Returns one OnboardingResult row per step so the admin UI can render a live timeline.",
558
- "operationId": "OnboardCandidateFull",
559
- "parameters": [
560
- {
561
- "name": "id",
562
- "in": "path",
563
- "required": true,
564
- "schema": {
565
- "type": "string"
566
- },
567
- "x-ms-summary": "Candidate Sanity id"
568
- }
569
- ],
570
- "responses": {
571
- "200": {
572
- "description": "Per-step results",
573
- "content": {
574
- "application/json": {
575
- "schema": {
576
- "type": "array",
577
- "items": {
578
- "$ref": "#/components/schemas/onboardingResult"
579
- }
580
- }
581
- }
582
- },
583
- "x-ms-summary": "Success"
584
- },
585
- "401": {
586
- "description": "No description",
587
- "x-ms-summary": "Unauthorized"
588
- },
589
- "404": {
590
- "description": "No description",
591
- "x-ms-summary": "Not Found"
592
- }
593
- },
594
- "security": [
595
- {
596
- "Implicit": [
597
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
598
- ]
599
- }
600
- ]
601
- }
602
- },
603
- "/v1.0/protected/candidates/{id}/offboard-full": {
604
- "post": {
605
- "tags": [
606
- "Candidates"
607
- ],
608
- "summary": "Run the full automated offboarding chain",
609
- "description": "Disables the candidate's Microsoft 365 user and triggers an Azure AD → Sanity sync so the employee doc reflects the disabled state.",
610
- "operationId": "OffboardCandidateFull",
611
- "parameters": [
612
- {
613
- "name": "id",
614
- "in": "path",
615
- "required": true,
616
- "schema": {
617
- "type": "string"
618
- }
619
- }
620
- ],
621
- "responses": {
622
- "200": {
623
- "description": "Per-step results",
624
- "content": {
625
- "application/json": {
626
- "schema": {
627
- "type": "array",
628
- "items": {
629
- "$ref": "#/components/schemas/onboardingResult"
630
- }
631
- }
632
- }
633
- },
634
- "x-ms-summary": "Success"
635
- },
636
- "401": {
637
- "description": "No description",
638
- "x-ms-summary": "Unauthorized"
639
- },
640
- "404": {
641
- "description": "No description",
642
- "x-ms-summary": "Not Found"
643
- }
644
- },
645
- "security": [
646
- {
647
- "Implicit": [
648
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
649
- ]
650
- }
651
- ]
652
- }
653
- },
654
- "/v1.0/protected/candidates/{id}/offboard-full/stream": {
655
- "post": {
656
- "tags": [
657
- "Candidates"
658
- ],
659
- "summary": "Offboarding chain with a live SSE event feed",
660
- "description": "Streams the offboarding chain step-by-step as Server-Sent Events. Mirrors /onboard-full/stream.",
661
- "operationId": "OffboardCandidateFullStream",
662
- "parameters": [
663
- {
664
- "name": "id",
665
- "in": "path",
666
- "required": true,
667
- "schema": {
668
- "type": "string"
669
- }
670
- }
671
- ],
672
- "responses": {
673
- "200": {
674
- "description": "No description",
675
- "x-ms-summary": "SSE stream of OnboardingResult frames"
676
- }
677
- },
678
- "security": [
679
- {
680
- "Implicit": [
681
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
682
- ]
683
- }
684
- ]
685
- }
686
- },
687
- "/v1.0/protected/candidates/{id}/reject": {
688
- "post": {
689
- "tags": [
690
- "Candidates"
691
- ],
692
- "summary": "Reject a candidate",
693
- "description": "Sets status=REJECTED. Convenience wrapper over PatchCandidate so UIs have a single-action reject button.",
694
- "operationId": "RejectCandidate",
695
- "parameters": [
696
- {
697
- "name": "id",
698
- "in": "path",
699
- "required": true,
700
- "schema": {
701
- "type": "string"
702
- },
703
- "x-ms-summary": "Candidate Sanity id"
704
- }
705
- ],
706
- "responses": {
707
- "200": {
708
- "description": "Payload of SanityCandidate",
709
- "content": {
710
- "application/json": {
711
- "schema": {
712
- "$ref": "#/components/schemas/sanityCandidate"
713
- }
714
- }
715
- },
716
- "x-ms-summary": "Success"
717
- },
718
- "401": {
719
- "description": "No description",
720
- "x-ms-summary": "Unauthorized"
721
- },
722
- "404": {
723
- "description": "No description",
724
- "x-ms-summary": "Not Found"
725
- }
726
- },
727
- "security": [
728
- {
729
- "Implicit": [
730
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
731
- ]
732
- }
733
- ]
734
- }
735
- },
736
- "/v1.0/protected/job-positions": {
737
- "get": {
738
- "tags": [
739
- "JobPositions"
740
- ],
741
- "summary": "List published job positions",
742
- "description": "Returns every job position document. Used by the admin stillinger page.",
743
- "operationId": "ListJobPositions",
744
- "responses": {
745
- "200": {
746
- "description": "Payload of Array of SanityJobPosition",
747
- "content": {
748
- "application/json": {
749
- "schema": {
750
- "type": "array",
751
- "items": {
752
- "$ref": "#/components/schemas/sanityJobPosition"
753
- }
754
- }
755
- }
756
- },
757
- "x-ms-summary": "Success"
758
- },
759
- "401": {
760
- "description": "No description",
761
- "x-ms-summary": "Unauthorized"
762
- }
763
- },
764
- "security": [
765
- {
766
- "Implicit": [
767
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
768
- ]
769
- }
770
- ]
771
- }
772
- },
773
- "/v1.0/protected/systems": {
774
- "get": {
775
- "tags": [
776
- "Systems"
777
- ],
778
- "summary": "List systems used for onboarding checklists",
779
- "description": "Returns every system document. Used by the candidate detail and systems library pages.",
780
- "operationId": "ListSystems",
781
- "responses": {
782
- "200": {
783
- "description": "Payload of Array of SanitySystemsInner",
784
- "content": {
785
- "application/json": {
786
- "schema": {
787
- "type": "array",
788
- "items": {
789
- "$ref": "#/components/schemas/sanitySystemsInner"
790
- }
791
- }
792
- }
793
- },
794
- "x-ms-summary": "Success"
795
- },
796
- "401": {
797
- "description": "No description",
798
- "x-ms-summary": "Unauthorized"
799
- }
800
- },
801
- "security": [
802
- {
803
- "Implicit": [
804
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
805
- ]
806
- }
807
- ]
808
- },
809
- "post": {
810
- "tags": [
811
- "Systems"
812
- ],
813
- "summary": "Create a system",
814
- "description": "Adds a new system to the onboarding/offboarding system library.",
815
- "operationId": "CreateSystem",
816
- "requestBody": {
817
- "content": {
818
- "application/json": {
819
- "schema": {
820
- "$ref": "#/components/schemas/sanityCreateSystem"
821
- }
822
- }
823
- },
824
- "required": true
825
- },
826
- "responses": {
827
- "200": {
828
- "description": "Payload of SanitySystemsInner",
829
- "content": {
830
- "application/json": {
831
- "schema": {
832
- "$ref": "#/components/schemas/sanitySystemsInner"
833
- }
834
- }
835
- },
836
- "x-ms-summary": "Success"
837
- },
838
- "400": {
839
- "description": "Payload of Object",
840
- "content": {
841
- "application/json": {
842
- "schema": {
843
- "type": "object"
844
- }
845
- }
846
- },
847
- "x-ms-summary": "Bad Request"
848
- },
849
- "401": {
850
- "description": "No description",
851
- "x-ms-summary": "Unauthorized"
852
- }
853
- },
854
- "security": [
855
- {
856
- "Implicit": [
857
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
858
- ]
859
- }
860
- ]
861
- }
862
- },
863
- "/v1.0/protected/onboarding-chain/automated-system-titles": {
864
- "get": {
865
- "tags": [
866
- "Systems"
867
- ],
868
- "summary": "List systems handled end-to-end by the onboarding chain",
869
- "description": "Returns title + maturity status (stable / beta) so the admin UI can badge systems that need no per-row admin action and flag the experimental ones.",
870
- "operationId": "GetChainAutomatedSystemTitles",
871
- "responses": {
872
- "200": {
873
- "description": "Payload of Array of ChainAutomatedSystem",
874
- "content": {
875
- "application/json": {
876
- "schema": {
877
- "type": "array",
878
- "items": {
879
- "$ref": "#/components/schemas/chainAutomatedSystem"
880
- }
881
- }
882
- }
883
- },
884
- "x-ms-summary": "Success"
885
- },
886
- "401": {
887
- "description": "No description",
888
- "x-ms-summary": "Unauthorized"
889
- }
890
- },
891
- "security": [
892
- {
893
- "Implicit": [
894
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
895
- ]
896
- }
897
- ]
898
- }
899
- },
900
- "/v1.0/protected/onboarding-tasks": {
901
- "get": {
902
- "tags": [
903
- "Tasks"
904
- ],
905
- "summary": "List every onboarding task",
906
- "description": "Returns all onboarding tasks with their Portable Text description so the admin can render an editable checklist with contextual notes.",
907
- "operationId": "ListOnboardingTasks",
908
- "responses": {
909
- "200": {
910
- "description": "Payload of Array of SanityTask",
911
- "content": {
912
- "application/json": {
913
- "schema": {
914
- "type": "array",
915
- "items": {
916
- "$ref": "#/components/schemas/sanityTask"
917
- }
918
- }
919
- }
920
- },
921
- "x-ms-summary": "Success"
922
- },
923
- "401": {
924
- "description": "No description",
925
- "x-ms-summary": "Unauthorized"
926
- }
927
- },
928
- "security": [
929
- {
930
- "Implicit": [
931
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
932
- ]
933
- }
934
- ]
935
- }
936
- },
937
- "/v1.0/protected/offboarding-tasks": {
938
- "get": {
939
- "tags": [
940
- "Tasks"
941
- ],
942
- "summary": "List every offboarding task",
943
- "description": "Returns all offboarding tasks with their Portable Text description for the admin offboarding checklist.",
944
- "operationId": "ListOffboardingTasks",
945
- "responses": {
946
- "200": {
947
- "description": "Payload of Array of SanityTask",
948
- "content": {
949
- "application/json": {
950
- "schema": {
951
- "type": "array",
952
- "items": {
953
- "$ref": "#/components/schemas/sanityTask"
954
- }
955
- }
956
- }
957
- },
958
- "x-ms-summary": "Success"
959
- },
960
- "401": {
961
- "description": "No description",
962
- "x-ms-summary": "Unauthorized"
963
- }
964
- },
965
- "security": [
966
- {
967
- "Implicit": [
968
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
969
- ]
970
- }
971
- ]
972
- }
973
- },
974
- "/v1.0/protected/onboarding-tasks/with-reminder": {
975
- "get": {
976
- "tags": [
977
- "Tasks"
978
- ],
979
- "summary": "List onboarding tasks with a Slack reminder",
980
- "description": "Returns onboarding tasks that have reminderWeeksBefore + reminderSlackChannel set. Used by the admin oppgaver page.",
981
- "operationId": "ListOnboardingTasksWithReminder",
982
- "responses": {
983
- "200": {
984
- "description": "Payload of Array of SanityOnboardingTask",
985
- "content": {
986
- "application/json": {
987
- "schema": {
988
- "type": "array",
989
- "items": {
990
- "$ref": "#/components/schemas/sanityOnboardingTask"
991
- }
992
- }
993
- }
994
- },
995
- "x-ms-summary": "Success"
996
- },
997
- "401": {
998
- "description": "No description",
999
- "x-ms-summary": "Unauthorized"
1000
- }
1001
- },
1002
- "security": [
1003
- {
1004
- "Implicit": [
1005
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1006
- ]
1007
- }
1008
- ]
1009
- }
1010
- },
1011
- "/v1.0/protected/tasks": {
1012
- "post": {
1013
- "tags": [
1014
- "Tasks"
1015
- ],
1016
- "summary": "Create an onboarding or offboarding task",
1017
- "description": "Adds a new task document to the library with optional Portable Text description and Slack reminder settings.",
1018
- "operationId": "CreateTask",
1019
- "requestBody": {
1020
- "content": {
1021
- "application/json": {
1022
- "schema": {
1023
- "$ref": "#/components/schemas/sanityCreateTask"
1024
- }
1025
- }
1026
- },
1027
- "required": true
1028
- },
1029
- "responses": {
1030
- "200": {
1031
- "description": "Payload of SanityTask",
1032
- "content": {
1033
- "application/json": {
1034
- "schema": {
1035
- "$ref": "#/components/schemas/sanityTask"
1036
- }
1037
- }
1038
- },
1039
- "x-ms-summary": "Success"
1040
- },
1041
- "400": {
1042
- "description": "Payload of Object",
1043
- "content": {
1044
- "application/json": {
1045
- "schema": {
1046
- "type": "object"
1047
- }
1048
- }
1049
- },
1050
- "x-ms-summary": "Bad Request"
1051
- },
1052
- "401": {
1053
- "description": "No description",
1054
- "x-ms-summary": "Unauthorized"
1055
- }
1056
- },
1057
- "security": [
1058
- {
1059
- "Implicit": [
1060
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1061
- ]
1062
- }
1063
- ]
1064
- }
1065
- },
1066
- "/v1.0/protected/tasks/{id}": {
1067
- "patch": {
1068
- "tags": [
1069
- "Tasks"
1070
- ],
1071
- "summary": "Update an onboarding or offboarding task",
1072
- "description": "Partially updates a task. Omitted fields are left unchanged; pass null to clear an optional field.",
1073
- "operationId": "PatchTask",
1074
- "parameters": [
1075
- {
1076
- "name": "id",
1077
- "in": "path",
1078
- "required": true,
1079
- "schema": {
1080
- "type": "string"
1081
- }
1082
- }
1083
- ],
1084
- "requestBody": {
1085
- "content": {
1086
- "application/json": {
1087
- "schema": {
1088
- "$ref": "#/components/schemas/sanityPatchTask"
1089
- }
1090
- }
1091
- },
1092
- "required": true
1093
- },
1094
- "responses": {
1095
- "200": {
1096
- "description": "Payload of SanityTask",
1097
- "content": {
1098
- "application/json": {
1099
- "schema": {
1100
- "$ref": "#/components/schemas/sanityTask"
1101
- }
1102
- }
1103
- },
1104
- "x-ms-summary": "Success"
1105
- },
1106
- "400": {
1107
- "description": "Payload of Object",
1108
- "content": {
1109
- "application/json": {
1110
- "schema": {
1111
- "type": "object"
1112
- }
1113
- }
1114
- },
1115
- "x-ms-summary": "Bad Request"
1116
- },
1117
- "401": {
1118
- "description": "No description",
1119
- "x-ms-summary": "Unauthorized"
1120
- },
1121
- "404": {
1122
- "description": "No description",
1123
- "x-ms-summary": "Not Found"
1124
- }
1125
- },
1126
- "security": [
1127
- {
1128
- "Implicit": [
1129
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1130
- ]
1131
- }
1132
- ]
1133
- },
1134
- "delete": {
1135
- "tags": [
1136
- "Tasks"
1137
- ],
1138
- "summary": "Delete a task",
1139
- "description": "Removes a task from the library. Does not touch candidate checklists that reference it.",
1140
- "operationId": "DeleteTask",
1141
- "parameters": [
1142
- {
1143
- "name": "id",
1144
- "in": "path",
1145
- "required": true,
1146
- "schema": {
1147
- "type": "string"
1148
- }
1149
- }
1150
- ],
1151
- "responses": {
1152
- "200": {
1153
- "description": "Payload of SanityTask",
1154
- "content": {
1155
- "application/json": {
1156
- "schema": {
1157
- "$ref": "#/components/schemas/sanityTask"
1158
- }
1159
- }
1160
- },
1161
- "x-ms-summary": "Success"
1162
- },
1163
- "401": {
1164
- "description": "No description",
1165
- "x-ms-summary": "Unauthorized"
1166
- },
1167
- "404": {
1168
- "description": "No description",
1169
- "x-ms-summary": "Not Found"
1170
- }
1171
- },
1172
- "security": [
1173
- {
1174
- "Implicit": [
1175
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1176
- ]
1177
- }
1178
- ]
1179
- }
1180
- },
1181
- "/v1.0/protected/systems/{id}": {
1182
- "patch": {
1183
- "tags": [
1184
- "Systems"
1185
- ],
1186
- "summary": "Update a system",
1187
- "operationId": "PatchSystem",
1188
- "parameters": [
1189
- {
1190
- "name": "id",
1191
- "in": "path",
1192
- "required": true,
1193
- "schema": {
1194
- "type": "string"
1195
- }
1196
- }
1197
- ],
1198
- "requestBody": {
1199
- "content": {
1200
- "application/json": {
1201
- "schema": {
1202
- "$ref": "#/components/schemas/sanityPatchSystem"
1203
- }
1204
- }
1205
- },
1206
- "required": true
1207
- },
1208
- "responses": {
1209
- "200": {
1210
- "description": "Payload of SanitySystemsInner",
1211
- "content": {
1212
- "application/json": {
1213
- "schema": {
1214
- "$ref": "#/components/schemas/sanitySystemsInner"
1215
- }
1216
- }
1217
- },
1218
- "x-ms-summary": "Success"
1219
- },
1220
- "400": {
1221
- "description": "Payload of Object",
1222
- "content": {
1223
- "application/json": {
1224
- "schema": {
1225
- "type": "object"
1226
- }
1227
- }
1228
- },
1229
- "x-ms-summary": "Bad Request"
1230
- },
1231
- "401": {
1232
- "description": "No description",
1233
- "x-ms-summary": "Unauthorized"
1234
- },
1235
- "404": {
1236
- "description": "No description",
1237
- "x-ms-summary": "Not Found"
1238
- }
1239
- },
1240
- "security": [
1241
- {
1242
- "Implicit": [
1243
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1244
- ]
1245
- }
1246
- ]
1247
- },
1248
- "delete": {
1249
- "tags": [
1250
- "Systems"
1251
- ],
1252
- "summary": "Delete a system",
1253
- "operationId": "DeleteSystem",
1254
- "parameters": [
1255
- {
1256
- "name": "id",
1257
- "in": "path",
1258
- "required": true,
1259
- "schema": {
1260
- "type": "string"
1261
- }
1262
- }
1263
- ],
1264
- "responses": {
1265
- "200": {
1266
- "description": "Payload of SanitySystemsInner",
1267
- "content": {
1268
- "application/json": {
1269
- "schema": {
1270
- "$ref": "#/components/schemas/sanitySystemsInner"
1271
- }
1272
- }
1273
- },
1274
- "x-ms-summary": "Success"
1275
- },
1276
- "401": {
1277
- "description": "No description",
1278
- "x-ms-summary": "Unauthorized"
1279
- },
1280
- "404": {
1281
- "description": "No description",
1282
- "x-ms-summary": "Not Found"
1283
- }
1284
- },
1285
- "security": [
1286
- {
1287
- "Implicit": [
1288
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1289
- ]
1290
- }
1291
- ]
1292
- }
1293
- },
1294
- "/v1.0/protected/employees": {
1295
- "get": {
1296
- "tags": [
1297
- "Employees"
1298
- ],
1299
- "summary": "List employees for buddy/recruiter assignment",
1300
- "description": "Lightweight employee list used by the candidate detail page's buddy and recruiter dropdowns.",
1301
- "operationId": "ListRecruitmentEmployees",
1302
- "responses": {
1303
- "200": {
1304
- "description": "Payload of Array of SanityBasicEmployee",
1305
- "content": {
1306
- "application/json": {
1307
- "schema": {
1308
- "type": "array",
1309
- "items": {
1310
- "$ref": "#/components/schemas/sanityBasicEmployee"
1311
- }
1312
- }
1313
- }
1314
- },
1315
- "x-ms-summary": "Success"
1316
- },
1317
- "401": {
1318
- "description": "No description",
1319
- "x-ms-summary": "Unauthorized"
1320
- }
1321
- },
1322
- "security": [
1323
- {
1324
- "Implicit": [
1325
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
1326
- ]
1327
- }
1328
- ]
1329
- }
1330
- }
1331
- },
1332
- "components": {
1333
- "schemas": {
1334
- "candidateNotificationPreview": {
1335
- "type": "object",
1336
- "properties": {
1337
- "subject": {
1338
- "type": "string"
1339
- },
1340
- "plainText": {
1341
- "type": "string"
1342
- },
1343
- "htmlBody": {
1344
- "type": "string"
1345
- },
1346
- "smsBody": {
1347
- "type": "string"
1348
- },
1349
- "willSendEmail": {
1350
- "type": "boolean"
1351
- },
1352
- "willSendSms": {
1353
- "type": "boolean"
1354
- },
1355
- "recipientEmail": {
1356
- "type": "string"
1357
- },
1358
- "recipientPhone": {
1359
- "type": "string"
1360
- }
1361
- }
1362
- },
1363
- "candidateNotificationPreviewRequest": {
1364
- "type": "object",
1365
- "properties": {
1366
- "ev": {
1367
- "enum": [
1368
- 0,
1369
- 1,
1370
- 2,
1371
- 3,
1372
- 4,
1373
- 5,
1374
- 6
1375
- ],
1376
- "type": "integer",
1377
- "format": "int32",
1378
- "default": 0
1379
- },
1380
- "name": {
1381
- "type": "string"
1382
- },
1383
- "email": {
1384
- "type": "string"
1385
- },
1386
- "telephone": {
1387
- "type": "string"
1388
- },
1389
- "recruiterName": {
1390
- "type": "string"
1391
- },
1392
- "recruiterEmail": {
1393
- "type": "string"
1394
- }
1395
- }
1396
- },
1397
- "chainAutomatedSystem": {
1398
- "type": "object",
1399
- "properties": {
1400
- "title": {
1401
- "type": "string"
1402
- },
1403
- "status": {
1404
- "type": "string"
1405
- }
1406
- }
1407
- },
1408
- "componentBlocksInnerOneOfChildrenInner": {
1409
- "type": "object",
1410
- "properties": {
1411
- "sanityType": {
1412
- "enum": [
1413
- "span"
1414
- ],
1415
- "type": "string",
1416
- "default": "span"
1417
- },
1418
- "marks": {
1419
- "type": "array",
1420
- "items": {
1421
- "type": "string"
1422
- }
1423
- },
1424
- "sanityKey": {
1425
- "type": "string"
1426
- },
1427
- "text": {
1428
- "type": "string"
1429
- }
1430
- }
1431
- },
1432
- "componentBlocksInnerOneOfMarkDefsInner": {
1433
- "type": "object",
1434
- "properties": {
1435
- "sanityType": {
1436
- "enum": [
1437
- "link"
1438
- ],
1439
- "type": "string",
1440
- "default": "link"
1441
- },
1442
- "href": {
1443
- "type": "string"
1444
- },
1445
- "sanityKey": {
1446
- "type": "string"
1447
- }
1448
- }
1449
- },
1450
- "createCandidateInput": {
1451
- "type": "object",
1452
- "properties": {
1453
- "status": {
1454
- "enum": [
1455
- "CREATED",
1456
- "INTRODUCTION",
1457
- "OFFER",
1458
- "SIGNED",
1459
- "ONBOARDING",
1460
- "USER_CREATION_REVIEW",
1461
- "OFFBOARDING",
1462
- "REJECTED"
1463
- ],
1464
- "type": "string",
1465
- "default": "CREATED"
1466
- },
1467
- "track": {
1468
- "enum": [
1469
- "developer",
1470
- "data_engineer"
1471
- ],
1472
- "type": "string",
1473
- "default": "developer"
1474
- },
1475
- "candidate": {
1476
- "type": "string"
1477
- },
1478
- "email": {
1479
- "type": "string"
1480
- },
1481
- "recruiter": {
1482
- "type": "string"
1483
- },
1484
- "telephone": {
1485
- "type": "string"
1486
- },
1487
- "additionalProperties": {
1488
- "type": "object",
1489
- "additionalProperties": {
1490
- "type": "object"
1491
- }
1492
- }
1493
- }
1494
- },
1495
- "employeeReference": {
1496
- "type": "object",
1497
- "properties": {
1498
- "sanityType": {
1499
- "enum": [
1500
- "reference"
1501
- ],
1502
- "type": "string",
1503
- "default": "reference"
1504
- },
1505
- "sanityRef": {
1506
- "type": "string"
1507
- },
1508
- "sanityWeak": {
1509
- "type": "boolean"
1510
- }
1511
- }
1512
- },
1513
- "onboardingResult": {
1514
- "type": "object",
1515
- "properties": {
1516
- "step": {
1517
- "type": "string"
1518
- },
1519
- "status": {
1520
- "type": "string"
1521
- },
1522
- "message": {
1523
- "type": "string"
1524
- },
1525
- "preferredEmail": {
1526
- "type": "string"
1527
- },
1528
- "createdAccountId": {
1529
- "type": "string"
1530
- },
1531
- "temporaryPassword": {
1532
- "type": "string"
1533
- }
1534
- }
1535
- },
1536
- "sanityAssetSourceData": {
1537
- "type": "object",
1538
- "properties": {
1539
- "sanityType": {
1540
- "enum": [
1541
- "sanity.assetSourceData"
1542
- ],
1543
- "type": "string",
1544
- "default": "sanity.assetSourceData"
1545
- },
1546
- "id": {
1547
- "type": "string"
1548
- },
1549
- "name": {
1550
- "type": "string"
1551
- },
1552
- "url": {
1553
- "type": "string"
1554
- }
1555
- }
1556
- },
1557
- "sanityBasicEmployee": {
1558
- "type": "object",
1559
- "properties": {
1560
- "sanityType": {
1561
- "enum": [
1562
- "employee"
1563
- ],
1564
- "type": "string",
1565
- "default": "employee"
1566
- },
1567
- "email": {
1568
- "type": "string"
1569
- },
1570
- "image": {
1571
- "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTestimonialsInnerCustomerLogo"
1572
- },
1573
- "name": {
1574
- "type": "string"
1575
- },
1576
- "sanityId": {
1577
- "type": "string"
1578
- },
1579
- "slug": {
1580
- "$ref": "#/components/schemas/slug"
1581
- },
1582
- "tags": {
1583
- "type": "array",
1584
- "items": {
1585
- "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTechnologiesInnerParent"
1586
- }
1587
- },
1588
- "telephone": {
1589
- "type": "string"
1590
- }
1591
- }
1592
- },
1593
- "sanityCandidate": {
1594
- "type": "object",
1595
- "properties": {
1596
- "sanityType": {
1597
- "enum": [
1598
- "candidate"
1599
- ],
1600
- "type": "string",
1601
- "default": "candidate"
1602
- },
1603
- "status": {
1604
- "enum": [
1605
- "CREATED",
1606
- "INTRODUCTION",
1607
- "OFFBOARDING",
1608
- "OFFER",
1609
- "ONBOARDING",
1610
- "REJECTED",
1611
- "SIGNED",
1612
- "USER_CREATION_REVIEW"
1613
- ],
1614
- "type": "string",
1615
- "default": "CREATED"
1616
- },
1617
- "track": {
1618
- "enum": [
1619
- "data_engineer",
1620
- "developer"
1621
- ],
1622
- "type": "string",
1623
- "default": "data_engineer"
1624
- },
1625
- "address": {
1626
- "$ref": "#/components/schemas/sanityCandidateAddress"
1627
- },
1628
- "applicationLetter": {
1629
- "$ref": "#/components/schemas/sanityCandidateGrades"
1630
- },
1631
- "applicationOther": {
1632
- "type": "string"
1633
- },
1634
- "bankAccount": {
1635
- "type": "string"
1636
- },
1637
- "buddy": {
1638
- "$ref": "#/components/schemas/sanityEmployeeManager"
1639
- },
1640
- "candidate": {
1641
- "type": "string"
1642
- },
1643
- "cv": {
1644
- "$ref": "#/components/schemas/sanityCandidateGrades"
1645
- },
1646
- "email": {
1647
- "type": "string"
1648
- },
1649
- "employee": {
1650
- "$ref": "#/components/schemas/sanityEmployeeManager"
1651
- },
1652
- "fromApplication": {
1653
- "type": "boolean"
1654
- },
1655
- "githubUsername": {
1656
- "type": "string"
1657
- },
1658
- "grades": {
1659
- "$ref": "#/components/schemas/sanityCandidateGrades"
1660
- },
1661
- "offboardingChecklist": {
1662
- "type": "array",
1663
- "items": {
1664
- "$ref": "#/components/schemas/sanityCandidateOffboardingChecklistInner"
1665
- }
1666
- },
1667
- "onboardingChecklist": {
1668
- "type": "array",
1669
- "items": {
1670
- "$ref": "#/components/schemas/sanityCandidateOffboardingChecklistInner"
1671
- }
1672
- },
1673
- "ownership": {
1674
- "type": "number",
1675
- "format": "double"
1676
- },
1677
- "preferredDisplayName": {
1678
- "type": "string"
1679
- },
1680
- "preferredEmail": {
1681
- "type": "string"
1682
- },
1683
- "profileImage": {
1684
- "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
1685
- },
1686
- "recruiter": {
1687
- "$ref": "#/components/schemas/sanityEmployeeManager"
1688
- },
1689
- "references": {
1690
- "type": "array",
1691
- "items": {
1692
- "$ref": "#/components/schemas/sanityCandidateReferencesInner"
1693
- }
1694
- },
1695
- "sanityCreatedAt": {
1696
- "type": "string"
1697
- },
1698
- "sanityId": {
1699
- "type": "string"
1700
- },
1701
- "sanityRev": {
1702
- "type": "string"
1703
- },
1704
- "sanityUpdatedAt": {
1705
- "type": "string"
1706
- },
1707
- "shortUrl": {
1708
- "type": "string"
1709
- },
1710
- "startDate": {
1711
- "type": "string"
1712
- },
1713
- "systemsActive": {
1714
- "type": "array",
1715
- "items": {
1716
- "$ref": "#/components/schemas/sanitySystemsInner"
1717
- }
1718
- },
1719
- "telephone": {
1720
- "type": "string"
1721
- },
1722
- "url": {
1723
- "type": "string"
1724
- }
1725
- }
1726
- },
1727
- "sanityCandidateAddress": {
1728
- "type": "object",
1729
- "properties": {
1730
- "city": {
1731
- "type": "string"
1732
- },
1733
- "postalCode": {
1734
- "type": "string"
1735
- },
1736
- "street": {
1737
- "type": "string"
1738
- }
1739
- }
1740
- },
1741
- "sanityCandidateGrades": {
1742
- "type": "object",
1743
- "properties": {
1744
- "sanityType": {
1745
- "enum": [
1746
- "file"
1747
- ],
1748
- "type": "string",
1749
- "default": "file"
1750
- },
1751
- "asset": {
1752
- "$ref": "#/components/schemas/sanityDocFileAsset"
1753
- },
1754
- "media": {
1755
- "type": "object"
1756
- }
1757
- }
1758
- },
1759
- "sanityCandidateOffboardingChecklistInner": {
1760
- "type": "object",
1761
- "properties": {
1762
- "sanityType": {
1763
- "enum": [
1764
- "reference"
1765
- ],
1766
- "type": "string",
1767
- "default": "reference"
1768
- },
1769
- "sanityKey": {
1770
- "type": "string"
1771
- },
1772
- "sanityRef": {
1773
- "type": "string"
1774
- },
1775
- "sanityWeak": {
1776
- "type": "boolean"
1777
- }
1778
- }
1779
- },
1780
- "sanityCandidateReferencesInner": {
1781
- "type": "object",
1782
- "properties": {
1783
- "sanityType": {
1784
- "enum": [
1785
- "candidateReference"
1786
- ],
1787
- "type": "string",
1788
- "default": "candidateReference"
1789
- },
1790
- "details": {
1791
- "type": "string"
1792
- },
1793
- "email": {
1794
- "type": "string"
1795
- },
1796
- "name": {
1797
- "type": "string"
1798
- },
1799
- "phone": {
1800
- "type": "string"
1801
- },
1802
- "sanityKey": {
1803
- "type": "string"
1804
- }
1805
- }
1806
- },
1807
- "sanityCreateSystem": {
1808
- "type": "object",
1809
- "properties": {
1810
- "description": {
1811
- "type": "array",
1812
- "items": {
1813
- "type": "object"
1814
- }
1815
- },
1816
- "links": {
1817
- "type": "array",
1818
- "items": {
1819
- "type": "string"
1820
- }
1821
- },
1822
- "title": {
1823
- "type": "string"
1824
- },
1825
- "additionalProperties": {
1826
- "type": "object",
1827
- "additionalProperties": {
1828
- "type": "object"
1829
- }
1830
- }
1831
- }
1832
- },
1833
- "sanityCreateTask": {
1834
- "type": "object",
1835
- "properties": {
1836
- "type": {
1837
- "enum": [
1838
- "onboarding",
1839
- "offboarding"
1840
- ],
1841
- "type": "string",
1842
- "default": "onboarding"
1843
- },
1844
- "description": {
1845
- "type": "array",
1846
- "items": {
1847
- "type": "object"
1848
- }
1849
- },
1850
- "reminderSlackChannel": {
1851
- "type": "string"
1852
- },
1853
- "reminderWeeksBefore": {
1854
- "type": "number",
1855
- "format": "double",
1856
- "nullable": true
1857
- },
1858
- "title": {
1859
- "type": "string"
1860
- },
1861
- "additionalProperties": {
1862
- "type": "object",
1863
- "additionalProperties": {
1864
- "type": "object"
1865
- }
1866
- }
1867
- }
1868
- },
1869
- "sanityDocFileAsset": {
1870
- "type": "object",
1871
- "properties": {
1872
- "sanityType": {
1873
- "enum": [
1874
- "sanity.fileAsset"
1875
- ],
1876
- "type": "string",
1877
- "default": "sanity.fileAsset"
1878
- },
1879
- "altText": {
1880
- "type": "string"
1881
- },
1882
- "assetId": {
1883
- "type": "string"
1884
- },
1885
- "description": {
1886
- "type": "string"
1887
- },
1888
- "extension": {
1889
- "type": "string"
1890
- },
1891
- "label": {
1892
- "type": "string"
1893
- },
1894
- "mimeType": {
1895
- "type": "string"
1896
- },
1897
- "originalFilename": {
1898
- "type": "string"
1899
- },
1900
- "path": {
1901
- "type": "string"
1902
- },
1903
- "sanityCreatedAt": {
1904
- "type": "string"
1905
- },
1906
- "sanityId": {
1907
- "type": "string"
1908
- },
1909
- "sanityRev": {
1910
- "type": "string"
1911
- },
1912
- "sanityUpdatedAt": {
1913
- "type": "string"
1914
- },
1915
- "sha1hash": {
1916
- "type": "string"
1917
- },
1918
- "size": {
1919
- "type": "number",
1920
- "format": "double"
1921
- },
1922
- "source": {
1923
- "$ref": "#/components/schemas/sanityAssetSourceData"
1924
- },
1925
- "title": {
1926
- "type": "string"
1927
- },
1928
- "uploadId": {
1929
- "type": "string"
1930
- },
1931
- "url": {
1932
- "type": "string"
1933
- }
1934
- }
1935
- },
1936
- "sanityEmployeeManager": {
1937
- "type": "object",
1938
- "properties": {
1939
- "sanityType": {
1940
- "enum": [
1941
- "employee"
1942
- ],
1943
- "type": "string",
1944
- "default": "employee"
1945
- },
1946
- "email": {
1947
- "type": "string"
1948
- },
1949
- "image": {
1950
- "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTestimonialsInnerCustomerLogo"
1951
- },
1952
- "name": {
1953
- "type": "string"
1954
- },
1955
- "sanityId": {
1956
- "type": "string"
1957
- },
1958
- "slug": {
1959
- "$ref": "#/components/schemas/slug"
1960
- },
1961
- "tags": {
1962
- "type": "array",
1963
- "items": {
1964
- "$ref": "#/components/schemas/sanityTechnologyWithRelationsProjectsInnerTechnologiesInnerParent"
1965
- }
1966
- },
1967
- "telephone": {
1968
- "type": "string"
1969
- }
1970
- }
1971
- },
1972
- "sanityFileAssetReference": {
1973
- "type": "object",
1974
- "properties": {
1975
- "sanityType": {
1976
- "enum": [
1977
- "reference"
1978
- ],
1979
- "type": "string",
1980
- "default": "reference"
1981
- },
1982
- "sanityRef": {
1983
- "type": "string"
1984
- },
1985
- "sanityWeak": {
1986
- "type": "boolean"
1987
- }
1988
- }
1989
- },
1990
- "sanityImageAssetReference": {
1991
- "type": "object",
1992
- "properties": {
1993
- "sanityType": {
1994
- "enum": [
1995
- "reference"
1996
- ],
1997
- "type": "string",
1998
- "default": "reference"
1999
- },
2000
- "sanityRef": {
2001
- "type": "string"
2002
- },
2003
- "sanityWeak": {
2004
- "type": "boolean"
2005
- }
2006
- }
2007
- },
2008
- "sanityImageCrop": {
2009
- "type": "object",
2010
- "properties": {
2011
- "sanityType": {
2012
- "enum": [
2013
- "sanity.imageCrop"
2014
- ],
2015
- "type": "string",
2016
- "default": "sanity.imageCrop"
2017
- },
2018
- "bottom": {
2019
- "type": "number",
2020
- "format": "double"
2021
- },
2022
- "left": {
2023
- "type": "number",
2024
- "format": "double"
2025
- },
2026
- "right": {
2027
- "type": "number",
2028
- "format": "double"
2029
- },
2030
- "top": {
2031
- "type": "number",
2032
- "format": "double"
2033
- }
2034
- }
2035
- },
2036
- "sanityImageHotspot": {
2037
- "type": "object",
2038
- "properties": {
2039
- "sanityType": {
2040
- "enum": [
2041
- "sanity.imageHotspot"
2042
- ],
2043
- "type": "string",
2044
- "default": "sanity.imageHotspot"
2045
- },
2046
- "height": {
2047
- "type": "number",
2048
- "format": "double"
2049
- },
2050
- "width": {
2051
- "type": "number",
2052
- "format": "double"
2053
- },
2054
- "x": {
2055
- "type": "number",
2056
- "format": "double"
2057
- },
2058
- "y": {
2059
- "type": "number",
2060
- "format": "double"
2061
- }
2062
- }
2063
- },
2064
- "sanityJobPosition": {
2065
- "type": "object",
2066
- "properties": {
2067
- "sanityType": {
2068
- "enum": [
2069
- "jobPosition"
2070
- ],
2071
- "type": "string",
2072
- "default": "jobPosition"
2073
- },
2074
- "askForGrades": {
2075
- "type": "boolean"
2076
- },
2077
- "deadline": {
2078
- "type": "string"
2079
- },
2080
- "description": {
2081
- "type": "array",
2082
- "items": {
2083
- "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
2084
- }
2085
- },
2086
- "image": {
2087
- "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2088
- },
2089
- "metaDescription": {
2090
- "type": "string"
2091
- },
2092
- "sanityCreatedAt": {
2093
- "type": "string"
2094
- },
2095
- "sanityId": {
2096
- "type": "string"
2097
- },
2098
- "sanityRev": {
2099
- "type": "string"
2100
- },
2101
- "sanityUpdatedAt": {
2102
- "type": "string"
2103
- },
2104
- "slug": {
2105
- "$ref": "#/components/schemas/slug"
2106
- },
2107
- "title": {
2108
- "type": "string"
2109
- }
2110
- }
2111
- },
2112
- "sanityOnboardingTask": {
2113
- "type": "object",
2114
- "properties": {
2115
- "type": {
2116
- "enum": [
2117
- "onboarding"
2118
- ],
2119
- "type": "string",
2120
- "default": "onboarding"
2121
- },
2122
- "remindDaysBefore": {
2123
- "type": "number",
2124
- "format": "double"
2125
- },
2126
- "sanityCreatedAt": {
2127
- "type": "string"
2128
- },
2129
- "sanityId": {
2130
- "type": "string"
2131
- },
2132
- "sanityRev": {
2133
- "type": "string"
2134
- },
2135
- "sanityType": {
2136
- "type": "string"
2137
- },
2138
- "sanityUpdatedAt": {
2139
- "type": "string"
2140
- },
2141
- "title": {
2142
- "type": "string"
2143
- },
2144
- "additionalProperties": {
2145
- "type": "object",
2146
- "additionalProperties": {
2147
- "type": "object"
2148
- }
2149
- }
2150
- }
2151
- },
2152
- "sanityPatchCandidate": {
2153
- "type": "object",
2154
- "properties": {
2155
- "sanityType": {
2156
- "enum": [
2157
- "candidate"
2158
- ],
2159
- "type": "string",
2160
- "default": "candidate",
2161
- "nullable": true
2162
- },
2163
- "status": {
2164
- "enum": [
2165
- "CREATED",
2166
- "INTRODUCTION",
2167
- "OFFER",
2168
- "SIGNED",
2169
- "ONBOARDING",
2170
- "USER_CREATION_REVIEW",
2171
- "OFFBOARDING",
2172
- "REJECTED"
2173
- ],
2174
- "type": "string",
2175
- "default": "CREATED",
2176
- "nullable": true
2177
- },
2178
- "track": {
2179
- "enum": [
2180
- "developer",
2181
- "data_engineer"
2182
- ],
2183
- "type": "string",
2184
- "default": "developer",
2185
- "nullable": true
2186
- },
2187
- "address": {
2188
- "$ref": "#/components/schemas/sanityPatchCandidateAddress"
2189
- },
2190
- "applicationLetter": {
2191
- "$ref": "#/components/schemas/sanityPatchCandidateApplicationLetter"
2192
- },
2193
- "applicationOther": {
2194
- "type": "string"
2195
- },
2196
- "bankAccount": {
2197
- "type": "string"
2198
- },
2199
- "buddy": {
2200
- "$ref": "#/components/schemas/employeeReference"
2201
- },
2202
- "candidate": {
2203
- "type": "string"
2204
- },
2205
- "cv": {
2206
- "$ref": "#/components/schemas/sanityPatchCandidateApplicationLetter"
2207
- },
2208
- "email": {
2209
- "type": "string"
2210
- },
2211
- "employee": {
2212
- "$ref": "#/components/schemas/employeeReference"
2213
- },
2214
- "fromApplication": {
2215
- "type": "boolean",
2216
- "nullable": true
2217
- },
2218
- "githubUsername": {
2219
- "type": "string"
2220
- },
2221
- "grades": {
2222
- "$ref": "#/components/schemas/sanityPatchCandidateApplicationLetter"
2223
- },
2224
- "offboardingChecklist": {
2225
- "type": "array",
2226
- "items": {
2227
- "$ref": "#/components/schemas/sanityCandidateOffboardingChecklistInner"
2228
- }
2229
- },
2230
- "onboardingChecklist": {
2231
- "type": "array",
2232
- "items": {
2233
- "$ref": "#/components/schemas/sanityCandidateOffboardingChecklistInner"
2234
- }
2235
- },
2236
- "ownership": {
2237
- "type": "number",
2238
- "format": "double",
2239
- "nullable": true
2240
- },
2241
- "preferredDisplayName": {
2242
- "type": "string"
2243
- },
2244
- "preferredEmail": {
2245
- "type": "string"
2246
- },
2247
- "profileImage": {
2248
- "$ref": "#/components/schemas/sanityPatchPageMetaImage"
2249
- },
2250
- "recruiter": {
2251
- "$ref": "#/components/schemas/employeeReference"
2252
- },
2253
- "references": {
2254
- "type": "array",
2255
- "items": {
2256
- "$ref": "#/components/schemas/sanityCandidateReferencesInner"
2257
- }
2258
- },
2259
- "shortUrl": {
2260
- "type": "string"
2261
- },
2262
- "startDate": {
2263
- "type": "string"
2264
- },
2265
- "systemsActive": {
2266
- "type": "array",
2267
- "items": {
2268
- "$ref": "#/components/schemas/sanityPatchCandidateSystemsActiveInner"
2269
- }
2270
- },
2271
- "telephone": {
2272
- "type": "string"
2273
- },
2274
- "url": {
2275
- "type": "string"
2276
- },
2277
- "additionalProperties": {
2278
- "type": "object",
2279
- "additionalProperties": {
2280
- "type": "object"
2281
- }
2282
- }
2283
- }
2284
- },
2285
- "sanityPatchCandidateAddress": {
2286
- "type": "object",
2287
- "properties": {
2288
- "city": {
2289
- "type": "string"
2290
- },
2291
- "postalCode": {
2292
- "type": "string"
2293
- },
2294
- "street": {
2295
- "type": "string"
2296
- }
2297
- }
2298
- },
2299
- "sanityPatchCandidateApplicationLetter": {
2300
- "type": "object",
2301
- "properties": {
2302
- "sanityType": {
2303
- "enum": [
2304
- "file"
2305
- ],
2306
- "type": "string",
2307
- "default": "file"
2308
- },
2309
- "asset": {
2310
- "$ref": "#/components/schemas/sanityFileAssetReference"
2311
- },
2312
- "media": {
2313
- "type": "object"
2314
- }
2315
- }
2316
- },
2317
- "sanityPatchCandidateSystemsActiveInner": {
2318
- "type": "object",
2319
- "properties": {
2320
- "sanityType": {
2321
- "enum": [
2322
- "reference"
2323
- ],
2324
- "type": "string",
2325
- "default": "reference"
2326
- },
2327
- "sanityKey": {
2328
- "type": "string"
2329
- },
2330
- "sanityRef": {
2331
- "type": "string"
2332
- },
2333
- "sanityWeak": {
2334
- "type": "boolean"
2335
- }
2336
- }
2337
- },
2338
- "sanityPatchPageMetaImage": {
2339
- "type": "object",
2340
- "properties": {
2341
- "sanityType": {
2342
- "enum": [
2343
- "image"
2344
- ],
2345
- "type": "string",
2346
- "default": "image"
2347
- },
2348
- "asset": {
2349
- "$ref": "#/components/schemas/sanityImageAssetReference"
2350
- },
2351
- "crop": {
2352
- "$ref": "#/components/schemas/sanityImageCrop"
2353
- },
2354
- "hotspot": {
2355
- "$ref": "#/components/schemas/sanityImageHotspot"
2356
- },
2357
- "media": {
2358
- "type": "object"
2359
- }
2360
- }
2361
- },
2362
- "sanityPatchSystem": {
2363
- "type": "object",
2364
- "properties": {
2365
- "description": {
2366
- "type": "array",
2367
- "items": {
2368
- "type": "object"
2369
- }
2370
- },
2371
- "links": {
2372
- "type": "array",
2373
- "items": {
2374
- "type": "string"
2375
- }
2376
- },
2377
- "title": {
2378
- "type": "string"
2379
- },
2380
- "additionalProperties": {
2381
- "type": "object",
2382
- "additionalProperties": {
2383
- "type": "object"
2384
- }
2385
- }
2386
- }
2387
- },
2388
- "sanityPatchTask": {
2389
- "type": "object",
2390
- "properties": {
2391
- "type": {
2392
- "enum": [
2393
- "onboarding",
2394
- "offboarding"
2395
- ],
2396
- "type": "string",
2397
- "default": "onboarding",
2398
- "nullable": true
2399
- },
2400
- "description": {
2401
- "type": "array",
2402
- "items": {
2403
- "type": "object"
2404
- }
2405
- },
2406
- "reminderSlackChannel": {
2407
- "type": "string"
2408
- },
2409
- "reminderWeeksBefore": {
2410
- "type": "number",
2411
- "format": "double",
2412
- "nullable": true
2413
- },
2414
- "title": {
2415
- "type": "string"
2416
- },
2417
- "additionalProperties": {
2418
- "type": "object",
2419
- "additionalProperties": {
2420
- "type": "object"
2421
- }
2422
- }
2423
- }
2424
- },
2425
- "sanitySystemsInner": {
2426
- "type": "object",
2427
- "properties": {
2428
- "reminderSlackChannel": {
2429
- "enum": [
2430
- "#spor-økonomi",
2431
- "#spor-rekruttering",
2432
- "#spor-selskapsadmin",
2433
- "#spor-sosialt",
2434
- "#spor-utvikling"
2435
- ],
2436
- "type": "string",
2437
- "default": "#spor-økonomi",
2438
- "nullable": true
2439
- },
2440
- "sanityType": {
2441
- "enum": [
2442
- "system"
2443
- ],
2444
- "type": "string",
2445
- "default": "system"
2446
- },
2447
- "description": {
2448
- "type": "array",
2449
- "items": {
2450
- "$ref": "#/components/schemas/sanitySystemsInnerDescriptionInner"
2451
- }
2452
- },
2453
- "image": {
2454
- "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImage"
2455
- },
2456
- "links": {
2457
- "type": "array",
2458
- "items": {
2459
- "type": "string"
2460
- }
2461
- },
2462
- "remindDaysBefore": {
2463
- "type": "number",
2464
- "format": "double"
2465
- },
2466
- "sanityCreatedAt": {
2467
- "type": "string"
2468
- },
2469
- "sanityId": {
2470
- "type": "string"
2471
- },
2472
- "sanityRev": {
2473
- "type": "string"
2474
- },
2475
- "sanityUpdatedAt": {
2476
- "type": "string"
2477
- },
2478
- "title": {
2479
- "type": "string"
2480
- }
2481
- }
2482
- },
2483
- "sanitySystemsInnerDescriptionInner": {
2484
- "type": "object",
2485
- "properties": {
2486
- "listItem": {
2487
- "enum": [
2488
- "bullet",
2489
- "number"
2490
- ],
2491
- "type": "string",
2492
- "default": "bullet",
2493
- "nullable": true
2494
- },
2495
- "sanityType": {
2496
- "enum": [
2497
- "block"
2498
- ],
2499
- "type": "string",
2500
- "default": "block"
2501
- },
2502
- "style": {
2503
- "enum": [
2504
- "blockquote",
2505
- "h1",
2506
- "h2",
2507
- "h3",
2508
- "h4",
2509
- "h5",
2510
- "h6",
2511
- "normal"
2512
- ],
2513
- "type": "string",
2514
- "default": "blockquote",
2515
- "nullable": true
2516
- },
2517
- "children": {
2518
- "type": "array",
2519
- "items": {
2520
- "$ref": "#/components/schemas/componentBlocksInnerOneOfChildrenInner"
2521
- }
2522
- },
2523
- "level": {
2524
- "type": "number",
2525
- "format": "double"
2526
- },
2527
- "markDefs": {
2528
- "type": "array",
2529
- "items": {
2530
- "$ref": "#/components/schemas/componentBlocksInnerOneOfMarkDefsInner"
2531
- }
2532
- },
2533
- "sanityKey": {
2534
- "type": "string"
2535
- }
2536
- }
2537
- },
2538
- "sanityTask": {
2539
- "type": "object",
2540
- "properties": {
2541
- "type": {
2542
- "enum": [
2543
- "onboarding",
2544
- "offboarding"
2545
- ],
2546
- "type": "string",
2547
- "default": "onboarding"
2548
- },
2549
- "description": {
2550
- "type": "array",
2551
- "items": {
2552
- "type": "object"
2553
- }
2554
- },
2555
- "reminderSlackChannel": {
2556
- "type": "string"
2557
- },
2558
- "reminderWeeksBefore": {
2559
- "type": "number",
2560
- "format": "double",
2561
- "nullable": true
2562
- },
2563
- "sanityCreatedAt": {
2564
- "type": "string"
2565
- },
2566
- "sanityId": {
2567
- "type": "string"
2568
- },
2569
- "sanityRev": {
2570
- "type": "string"
2571
- },
2572
- "sanityType": {
2573
- "type": "string"
2574
- },
2575
- "sanityUpdatedAt": {
2576
- "type": "string"
2577
- },
2578
- "title": {
2579
- "type": "string"
2580
- },
2581
- "additionalProperties": {
2582
- "type": "object",
2583
- "additionalProperties": {
2584
- "type": "object"
2585
- }
2586
- }
2587
- }
2588
- },
2589
- "sanityTechnologyWithRelationsProjectsInnerTechnologiesInnerParent": {
2590
- "type": "object",
2591
- "properties": {
2592
- "sanityType": {
2593
- "enum": [
2594
- "tag"
2595
- ],
2596
- "type": "string",
2597
- "default": "tag"
2598
- },
2599
- "name": {
2600
- "type": "string"
2601
- },
2602
- "sanityId": {
2603
- "type": "string"
2604
- },
2605
- "slug": {
2606
- "$ref": "#/components/schemas/slug"
2607
- }
2608
- }
2609
- },
2610
- "sanityTechnologyWithRelationsProjectsInnerTestimonialsInnerCustomerLogo": {
2611
- "type": "object",
2612
- "properties": {
2613
- "sanityType": {
2614
- "enum": [
2615
- "image"
2616
- ],
2617
- "type": "string",
2618
- "default": "image"
2619
- },
2620
- "asset": {
2621
- "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
2622
- }
2623
- }
2624
- },
2625
- "sanityTvCategoryDashboardsInnerBackgroundImage": {
2626
- "type": "object",
2627
- "properties": {
2628
- "sanityType": {
2629
- "enum": [
2630
- "image"
2631
- ],
2632
- "type": "string",
2633
- "default": "image"
2634
- },
2635
- "asset": {
2636
- "$ref": "#/components/schemas/sanityTvCategoryDashboardsInnerBackgroundImageAsset"
2637
- }
2638
- }
2639
- },
2640
- "sanityTvCategoryDashboardsInnerBackgroundImageAsset": {
2641
- "type": "object",
2642
- "properties": {
2643
- "sanityType": {
2644
- "enum": [
2645
- "sanity.imageAsset"
2646
- ],
2647
- "type": "string",
2648
- "default": "sanity.imageAsset"
2649
- },
2650
- "mimeType": {
2651
- "type": "string"
2652
- },
2653
- "originalFilename": {
2654
- "type": "string"
2655
- },
2656
- "sanityId": {
2657
- "type": "string"
2658
- },
2659
- "url": {
2660
- "type": "string"
2661
- }
2662
- }
2663
- },
2664
- "slug": {
2665
- "type": "object",
2666
- "properties": {
2667
- "sanityType": {
2668
- "enum": [
2669
- "slug"
2670
- ],
2671
- "type": "string",
2672
- "default": "slug"
2673
- },
2674
- "current": {
2675
- "type": "string"
2676
- },
2677
- "source": {
2678
- "type": "string"
2679
- }
2680
- }
2681
- }
2682
- },
2683
- "securitySchemes": {
2684
- "Implicit": {
2685
- "type": "oauth2",
2686
- "flows": {
2687
- "implicit": {
2688
- "authorizationUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/authorize",
2689
- "tokenUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
2690
- "refreshUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
2691
- "scopes": {
2692
- "api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default": "Default function scope"
2693
- }
2694
- }
2695
- }
2696
- }
2697
- }
2698
- }
2699
- }