@iblai/iblai-api 4.305.0-core → 4.306.0-core
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.
- package/dist/index.cjs.js +1342 -207
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1343 -208
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1342 -207
- package/dist/index.umd.js.map +1 -1
- package/dist/types/index.d.ts +25 -1
- package/dist/types/models/KindEnum.d.ts +8 -0
- package/dist/types/models/NotificationTemplateDetail.d.ts +3 -2
- package/dist/types/models/NotificationTemplateList.d.ts +3 -2
- package/dist/types/models/PatchedNotificationTemplateDetail.d.ts +3 -2
- package/dist/types/models/PatchedPlatformApplicationFormUpdate.d.ts +12 -0
- package/dist/types/models/PatchedPlatformApplicationNote.d.ts +8 -0
- package/dist/types/models/PatchedPlatformApplicationPlacementUpdate.d.ts +12 -0
- package/dist/types/models/PatchedPlatformApplicationUpdate.d.ts +6 -0
- package/dist/types/models/PlatformApplicationAdminSubmit.d.ts +6 -0
- package/dist/types/models/PlatformApplicationAttachmentUpload.d.ts +8 -0
- package/dist/types/models/PlatformApplicationCandidateLink.d.ts +8 -0
- package/dist/types/models/PlatformApplicationCourseAssignment.d.ts +7 -0
- package/dist/types/models/PlatformApplicationCourseAssignmentItem.d.ts +10 -0
- package/dist/types/models/PlatformApplicationCreate.d.ts +8 -0
- package/dist/types/models/PlatformApplicationDetail.d.ts +7 -0
- package/dist/types/models/PlatformApplicationFeeAction.d.ts +11 -0
- package/dist/types/models/PlatformApplicationFeeActionActionEnum.d.ts +12 -0
- package/dist/types/models/PlatformApplicationFormCreate.d.ts +12 -0
- package/dist/types/models/PlatformApplicationFormDetail.d.ts +9 -0
- package/dist/types/models/PlatformApplicationNote.d.ts +8 -0
- package/dist/types/models/PlatformApplicationPlacementCreate.d.ts +8 -0
- package/dist/types/models/PlatformApplicationPlacementItem.d.ts +11 -0
- package/dist/types/models/PlatformApplicationPlacementUpdateStatusEnum.d.ts +16 -0
- package/dist/types/models/PlatformApplicationSubmit.d.ts +6 -0
- package/dist/types/models/PlatformApplicationTransition.d.ts +11 -0
- package/dist/types/models/PlatformApplicationTransitionActionEnum.d.ts +16 -0
- package/dist/types/models/PlatformApplicationWaiver.d.ts +9 -0
- package/dist/types/models/{Type4b7Enum.d.ts → TypeB29Enum.d.ts} +3 -1
- package/dist/types/services/CatalogService.d.ts +648 -0
- package/dist/types/services/CoreService.d.ts +14 -0
- package/package.json +1 -1
- package/sdk_schema.yml +1893 -5
- package/src/core/OpenAPI.ts +1 -1
- package/src/index.ts +25 -1
- package/src/models/KindEnum.ts +12 -0
- package/src/models/NotificationTemplateDetail.ts +3 -2
- package/src/models/NotificationTemplateList.ts +3 -2
- package/src/models/PatchedNotificationTemplateDetail.ts +3 -2
- package/src/models/PatchedPlatformApplicationFormUpdate.ts +17 -0
- package/src/models/PatchedPlatformApplicationNote.ts +13 -0
- package/src/models/PatchedPlatformApplicationPlacementUpdate.ts +17 -0
- package/src/models/PatchedPlatformApplicationUpdate.ts +11 -0
- package/src/models/PlatformApplicationAdminSubmit.ts +11 -0
- package/src/models/PlatformApplicationAttachmentUpload.ts +13 -0
- package/src/models/PlatformApplicationCandidateLink.ts +13 -0
- package/src/models/PlatformApplicationCourseAssignment.ts +12 -0
- package/src/models/PlatformApplicationCourseAssignmentItem.ts +15 -0
- package/src/models/PlatformApplicationCreate.ts +13 -0
- package/src/models/PlatformApplicationDetail.ts +12 -0
- package/src/models/PlatformApplicationFeeAction.ts +16 -0
- package/src/models/PlatformApplicationFeeActionActionEnum.ts +16 -0
- package/src/models/PlatformApplicationFormCreate.ts +17 -0
- package/src/models/PlatformApplicationFormDetail.ts +14 -0
- package/src/models/PlatformApplicationNote.ts +13 -0
- package/src/models/PlatformApplicationPlacementCreate.ts +13 -0
- package/src/models/PlatformApplicationPlacementItem.ts +16 -0
- package/src/models/PlatformApplicationPlacementUpdateStatusEnum.ts +20 -0
- package/src/models/PlatformApplicationSubmit.ts +11 -0
- package/src/models/PlatformApplicationTransition.ts +16 -0
- package/src/models/PlatformApplicationTransitionActionEnum.ts +20 -0
- package/src/models/PlatformApplicationWaiver.ts +14 -0
- package/src/models/{Type4b7Enum.ts → TypeB29Enum.ts} +3 -1
- package/src/services/CatalogService.ts +1196 -0
- package/src/services/CoreService.ts +28 -0
|
@@ -72,6 +72,10 @@ import type { PaginatedSkill } from '../models/PaginatedSkill';
|
|
|
72
72
|
import type { PaginatedUserLicense } from '../models/PaginatedUserLicense';
|
|
73
73
|
import type { PaginatedUserLicenseAssignment } from '../models/PaginatedUserLicenseAssignment';
|
|
74
74
|
import type { PaginatedUserLicenseGroupAssignment } from '../models/PaginatedUserLicenseGroupAssignment';
|
|
75
|
+
import type { PatchedPlatformApplicationFormUpdate } from '../models/PatchedPlatformApplicationFormUpdate';
|
|
76
|
+
import type { PatchedPlatformApplicationNote } from '../models/PatchedPlatformApplicationNote';
|
|
77
|
+
import type { PatchedPlatformApplicationPlacementUpdate } from '../models/PatchedPlatformApplicationPlacementUpdate';
|
|
78
|
+
import type { PatchedPlatformApplicationUpdate } from '../models/PatchedPlatformApplicationUpdate';
|
|
75
79
|
import type { Pathway } from '../models/Pathway';
|
|
76
80
|
import type { PathwayCompletionResponse } from '../models/PathwayCompletionResponse';
|
|
77
81
|
import type { PathwayCreateUpdateRequest } from '../models/PathwayCreateUpdateRequest';
|
|
@@ -85,6 +89,20 @@ import type { PathwaySelfEnrollmentRequest } from '../models/PathwaySelfEnrollme
|
|
|
85
89
|
import type { PathwaySuggestionBulkCreate } from '../models/PathwaySuggestionBulkCreate';
|
|
86
90
|
import type { PathwaySuggestionCreate } from '../models/PathwaySuggestionCreate';
|
|
87
91
|
import type { PathwaySuggestionDetail } from '../models/PathwaySuggestionDetail';
|
|
92
|
+
import type { PlatformApplicationAdminSubmit } from '../models/PlatformApplicationAdminSubmit';
|
|
93
|
+
import type { PlatformApplicationAttachmentUpload } from '../models/PlatformApplicationAttachmentUpload';
|
|
94
|
+
import type { PlatformApplicationCandidateLink } from '../models/PlatformApplicationCandidateLink';
|
|
95
|
+
import type { PlatformApplicationCourseAssignment } from '../models/PlatformApplicationCourseAssignment';
|
|
96
|
+
import type { PlatformApplicationCreate } from '../models/PlatformApplicationCreate';
|
|
97
|
+
import type { PlatformApplicationDetail } from '../models/PlatformApplicationDetail';
|
|
98
|
+
import type { PlatformApplicationFeeAction } from '../models/PlatformApplicationFeeAction';
|
|
99
|
+
import type { PlatformApplicationFormCreate } from '../models/PlatformApplicationFormCreate';
|
|
100
|
+
import type { PlatformApplicationFormDetail } from '../models/PlatformApplicationFormDetail';
|
|
101
|
+
import type { PlatformApplicationNote } from '../models/PlatformApplicationNote';
|
|
102
|
+
import type { PlatformApplicationPlacementCreate } from '../models/PlatformApplicationPlacementCreate';
|
|
103
|
+
import type { PlatformApplicationSubmit } from '../models/PlatformApplicationSubmit';
|
|
104
|
+
import type { PlatformApplicationTransition } from '../models/PlatformApplicationTransition';
|
|
105
|
+
import type { PlatformApplicationWaiver } from '../models/PlatformApplicationWaiver';
|
|
88
106
|
import type { PlatformInvitationCreate } from '../models/PlatformInvitationCreate';
|
|
89
107
|
import type { PlatformInvitationDetail } from '../models/PlatformInvitationDetail';
|
|
90
108
|
import type { PlatformInvitationRedemption } from '../models/PlatformInvitationRedemption';
|
|
@@ -352,6 +370,1184 @@ export class CatalogService {
|
|
|
352
370
|
},
|
|
353
371
|
});
|
|
354
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
375
|
+
*
|
|
376
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
377
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
378
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
379
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
380
|
+
* @returns any Own submissions
|
|
381
|
+
* @throws ApiError
|
|
382
|
+
*/
|
|
383
|
+
public static catalogApplicationsPlatformRetrieve({
|
|
384
|
+
formId,
|
|
385
|
+
platformKey,
|
|
386
|
+
platformOrg,
|
|
387
|
+
}: {
|
|
388
|
+
formId?: number,
|
|
389
|
+
platformKey?: string,
|
|
390
|
+
platformOrg?: string,
|
|
391
|
+
}): CancelablePromise<any> {
|
|
392
|
+
return __request(OpenAPI, {
|
|
393
|
+
method: 'GET',
|
|
394
|
+
url: '/api/catalog/applications/platform/',
|
|
395
|
+
query: {
|
|
396
|
+
'form_id': formId,
|
|
397
|
+
'platform_key': platformKey,
|
|
398
|
+
'platform_org': platformOrg,
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
404
|
+
*
|
|
405
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
406
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
407
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
408
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
409
|
+
* @returns PlatformApplicationDetail
|
|
410
|
+
* @throws ApiError
|
|
411
|
+
*/
|
|
412
|
+
public static catalogApplicationsPlatformCreate({
|
|
413
|
+
requestBody,
|
|
414
|
+
}: {
|
|
415
|
+
requestBody: PlatformApplicationCreate,
|
|
416
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
417
|
+
return __request(OpenAPI, {
|
|
418
|
+
method: 'POST',
|
|
419
|
+
url: '/api/catalog/applications/platform/',
|
|
420
|
+
body: requestBody,
|
|
421
|
+
mediaType: 'application/json',
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
426
|
+
*
|
|
427
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
428
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
429
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
430
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
431
|
+
* @returns PlatformApplicationDetail
|
|
432
|
+
* @throws ApiError
|
|
433
|
+
*/
|
|
434
|
+
public static catalogApplicationsPlatformRetrieve2({
|
|
435
|
+
submissionId,
|
|
436
|
+
}: {
|
|
437
|
+
submissionId: string,
|
|
438
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
439
|
+
return __request(OpenAPI, {
|
|
440
|
+
method: 'GET',
|
|
441
|
+
url: '/api/catalog/applications/platform/{submission_id}/',
|
|
442
|
+
path: {
|
|
443
|
+
'submission_id': submissionId,
|
|
444
|
+
},
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
449
|
+
*
|
|
450
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
451
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
452
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
453
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
454
|
+
* @returns PlatformApplicationDetail
|
|
455
|
+
* @throws ApiError
|
|
456
|
+
*/
|
|
457
|
+
public static catalogApplicationsPlatformPartialUpdate({
|
|
458
|
+
submissionId,
|
|
459
|
+
requestBody,
|
|
460
|
+
}: {
|
|
461
|
+
submissionId: string,
|
|
462
|
+
requestBody?: PatchedPlatformApplicationUpdate,
|
|
463
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
464
|
+
return __request(OpenAPI, {
|
|
465
|
+
method: 'PATCH',
|
|
466
|
+
url: '/api/catalog/applications/platform/{submission_id}/',
|
|
467
|
+
path: {
|
|
468
|
+
'submission_id': submissionId,
|
|
469
|
+
},
|
|
470
|
+
body: requestBody,
|
|
471
|
+
mediaType: 'application/json',
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
476
|
+
*
|
|
477
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
478
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
479
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
480
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
481
|
+
* @returns any Attachment stored
|
|
482
|
+
* @throws ApiError
|
|
483
|
+
*/
|
|
484
|
+
public static catalogApplicationsPlatformAttachmentsCreate({
|
|
485
|
+
submissionId,
|
|
486
|
+
formData,
|
|
487
|
+
}: {
|
|
488
|
+
submissionId: string,
|
|
489
|
+
formData: PlatformApplicationAttachmentUpload,
|
|
490
|
+
}): CancelablePromise<any> {
|
|
491
|
+
return __request(OpenAPI, {
|
|
492
|
+
method: 'POST',
|
|
493
|
+
url: '/api/catalog/applications/platform/{submission_id}/attachments/',
|
|
494
|
+
path: {
|
|
495
|
+
'submission_id': submissionId,
|
|
496
|
+
},
|
|
497
|
+
formData: formData,
|
|
498
|
+
mediaType: 'multipart/form-data',
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
503
|
+
*
|
|
504
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
505
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
506
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
507
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
508
|
+
* @returns void
|
|
509
|
+
* @throws ApiError
|
|
510
|
+
*/
|
|
511
|
+
public static catalogApplicationsPlatformAttachmentsDestroy({
|
|
512
|
+
attachmentId,
|
|
513
|
+
submissionId,
|
|
514
|
+
}: {
|
|
515
|
+
attachmentId: string,
|
|
516
|
+
submissionId: string,
|
|
517
|
+
}): CancelablePromise<void> {
|
|
518
|
+
return __request(OpenAPI, {
|
|
519
|
+
method: 'DELETE',
|
|
520
|
+
url: '/api/catalog/applications/platform/{submission_id}/attachments/{attachment_id}/',
|
|
521
|
+
path: {
|
|
522
|
+
'attachment_id': attachmentId,
|
|
523
|
+
'submission_id': submissionId,
|
|
524
|
+
},
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
529
|
+
*
|
|
530
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
531
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
532
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
533
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
534
|
+
* @returns PlatformApplicationDetail
|
|
535
|
+
* @throws ApiError
|
|
536
|
+
*/
|
|
537
|
+
public static catalogApplicationsPlatformSubmitCreate({
|
|
538
|
+
submissionId,
|
|
539
|
+
requestBody,
|
|
540
|
+
}: {
|
|
541
|
+
submissionId: string,
|
|
542
|
+
requestBody?: PlatformApplicationSubmit,
|
|
543
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
544
|
+
return __request(OpenAPI, {
|
|
545
|
+
method: 'POST',
|
|
546
|
+
url: '/api/catalog/applications/platform/{submission_id}/submit/',
|
|
547
|
+
path: {
|
|
548
|
+
'submission_id': submissionId,
|
|
549
|
+
},
|
|
550
|
+
body: requestBody,
|
|
551
|
+
mediaType: 'application/json',
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
556
|
+
*
|
|
557
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
558
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
559
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
560
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
561
|
+
* @returns PlatformApplicationDetail
|
|
562
|
+
* @throws ApiError
|
|
563
|
+
*/
|
|
564
|
+
public static catalogApplicationsPlatformWithdrawCreate({
|
|
565
|
+
submissionId,
|
|
566
|
+
}: {
|
|
567
|
+
submissionId: string,
|
|
568
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
569
|
+
return __request(OpenAPI, {
|
|
570
|
+
method: 'POST',
|
|
571
|
+
url: '/api/catalog/applications/platform/{submission_id}/withdraw/',
|
|
572
|
+
path: {
|
|
573
|
+
'submission_id': submissionId,
|
|
574
|
+
},
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
579
|
+
*
|
|
580
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
581
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
582
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
583
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
584
|
+
* @returns any Active form
|
|
585
|
+
* @throws ApiError
|
|
586
|
+
*/
|
|
587
|
+
public static catalogApplicationsPlatformFormRetrieve({
|
|
588
|
+
formId,
|
|
589
|
+
platformKey,
|
|
590
|
+
platformOrg,
|
|
591
|
+
}: {
|
|
592
|
+
formId?: number,
|
|
593
|
+
platformKey?: string,
|
|
594
|
+
platformOrg?: string,
|
|
595
|
+
}): CancelablePromise<any> {
|
|
596
|
+
return __request(OpenAPI, {
|
|
597
|
+
method: 'GET',
|
|
598
|
+
url: '/api/catalog/applications/platform/form/',
|
|
599
|
+
query: {
|
|
600
|
+
'form_id': formId,
|
|
601
|
+
'platform_key': platformKey,
|
|
602
|
+
'platform_org': platformOrg,
|
|
603
|
+
},
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Wires RBAC into a DRF view.
|
|
608
|
+
*
|
|
609
|
+
* Two responsibilities:
|
|
610
|
+
*
|
|
611
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
612
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
613
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
614
|
+
* views that set `token_policies_enabled = True`).
|
|
615
|
+
*
|
|
616
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
617
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
618
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
619
|
+
* caller — bypass RBAC and serve the request."
|
|
620
|
+
*
|
|
621
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
622
|
+
* the early exit skips all RBAC prep work:
|
|
623
|
+
*
|
|
624
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
625
|
+
* return
|
|
626
|
+
*
|
|
627
|
+
* Use `is_service_account` at any other touch points where caller
|
|
628
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
629
|
+
* create, serializer context, etc.).
|
|
630
|
+
* @returns any Forms for the platform
|
|
631
|
+
* @throws ApiError
|
|
632
|
+
*/
|
|
633
|
+
public static catalogApplicationsPlatformFormsManageRetrieve({
|
|
634
|
+
platformKey,
|
|
635
|
+
platformOrg,
|
|
636
|
+
sort,
|
|
637
|
+
}: {
|
|
638
|
+
platformKey?: string,
|
|
639
|
+
platformOrg?: string,
|
|
640
|
+
sort?: string,
|
|
641
|
+
}): CancelablePromise<any> {
|
|
642
|
+
return __request(OpenAPI, {
|
|
643
|
+
method: 'GET',
|
|
644
|
+
url: '/api/catalog/applications/platform/forms/manage/',
|
|
645
|
+
query: {
|
|
646
|
+
'platform_key': platformKey,
|
|
647
|
+
'platform_org': platformOrg,
|
|
648
|
+
'sort': sort,
|
|
649
|
+
},
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* Wires RBAC into a DRF view.
|
|
654
|
+
*
|
|
655
|
+
* Two responsibilities:
|
|
656
|
+
*
|
|
657
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
658
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
659
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
660
|
+
* views that set `token_policies_enabled = True`).
|
|
661
|
+
*
|
|
662
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
663
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
664
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
665
|
+
* caller — bypass RBAC and serve the request."
|
|
666
|
+
*
|
|
667
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
668
|
+
* the early exit skips all RBAC prep work:
|
|
669
|
+
*
|
|
670
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
671
|
+
* return
|
|
672
|
+
*
|
|
673
|
+
* Use `is_service_account` at any other touch points where caller
|
|
674
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
675
|
+
* create, serializer context, etc.).
|
|
676
|
+
* @returns PlatformApplicationFormDetail
|
|
677
|
+
* @throws ApiError
|
|
678
|
+
*/
|
|
679
|
+
public static catalogApplicationsPlatformFormsManageCreate({
|
|
680
|
+
requestBody,
|
|
681
|
+
platformKey,
|
|
682
|
+
platformOrg,
|
|
683
|
+
sort,
|
|
684
|
+
}: {
|
|
685
|
+
requestBody: PlatformApplicationFormCreate,
|
|
686
|
+
platformKey?: string,
|
|
687
|
+
platformOrg?: string,
|
|
688
|
+
sort?: string,
|
|
689
|
+
}): CancelablePromise<PlatformApplicationFormDetail> {
|
|
690
|
+
return __request(OpenAPI, {
|
|
691
|
+
method: 'POST',
|
|
692
|
+
url: '/api/catalog/applications/platform/forms/manage/',
|
|
693
|
+
query: {
|
|
694
|
+
'platform_key': platformKey,
|
|
695
|
+
'platform_org': platformOrg,
|
|
696
|
+
'sort': sort,
|
|
697
|
+
},
|
|
698
|
+
body: requestBody,
|
|
699
|
+
mediaType: 'application/json',
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
/**
|
|
703
|
+
* Wires RBAC into a DRF view.
|
|
704
|
+
*
|
|
705
|
+
* Two responsibilities:
|
|
706
|
+
*
|
|
707
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
708
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
709
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
710
|
+
* views that set `token_policies_enabled = True`).
|
|
711
|
+
*
|
|
712
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
713
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
714
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
715
|
+
* caller — bypass RBAC and serve the request."
|
|
716
|
+
*
|
|
717
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
718
|
+
* the early exit skips all RBAC prep work:
|
|
719
|
+
*
|
|
720
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
721
|
+
* return
|
|
722
|
+
*
|
|
723
|
+
* Use `is_service_account` at any other touch points where caller
|
|
724
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
725
|
+
* create, serializer context, etc.).
|
|
726
|
+
* @returns PlatformApplicationFormDetail
|
|
727
|
+
* @throws ApiError
|
|
728
|
+
*/
|
|
729
|
+
public static catalogApplicationsPlatformFormsManageRetrieve2({
|
|
730
|
+
formId,
|
|
731
|
+
platformKey,
|
|
732
|
+
platformOrg,
|
|
733
|
+
sort,
|
|
734
|
+
}: {
|
|
735
|
+
formId: string,
|
|
736
|
+
platformKey?: string,
|
|
737
|
+
platformOrg?: string,
|
|
738
|
+
sort?: string,
|
|
739
|
+
}): CancelablePromise<PlatformApplicationFormDetail> {
|
|
740
|
+
return __request(OpenAPI, {
|
|
741
|
+
method: 'GET',
|
|
742
|
+
url: '/api/catalog/applications/platform/forms/manage/{form_id}/',
|
|
743
|
+
path: {
|
|
744
|
+
'form_id': formId,
|
|
745
|
+
},
|
|
746
|
+
query: {
|
|
747
|
+
'platform_key': platformKey,
|
|
748
|
+
'platform_org': platformOrg,
|
|
749
|
+
'sort': sort,
|
|
750
|
+
},
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* Wires RBAC into a DRF view.
|
|
755
|
+
*
|
|
756
|
+
* Two responsibilities:
|
|
757
|
+
*
|
|
758
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
759
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
760
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
761
|
+
* views that set `token_policies_enabled = True`).
|
|
762
|
+
*
|
|
763
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
764
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
765
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
766
|
+
* caller — bypass RBAC and serve the request."
|
|
767
|
+
*
|
|
768
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
769
|
+
* the early exit skips all RBAC prep work:
|
|
770
|
+
*
|
|
771
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
772
|
+
* return
|
|
773
|
+
*
|
|
774
|
+
* Use `is_service_account` at any other touch points where caller
|
|
775
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
776
|
+
* create, serializer context, etc.).
|
|
777
|
+
* @returns PlatformApplicationFormDetail
|
|
778
|
+
* @throws ApiError
|
|
779
|
+
*/
|
|
780
|
+
public static catalogApplicationsPlatformFormsManagePartialUpdate({
|
|
781
|
+
formId,
|
|
782
|
+
platformKey,
|
|
783
|
+
platformOrg,
|
|
784
|
+
sort,
|
|
785
|
+
requestBody,
|
|
786
|
+
}: {
|
|
787
|
+
formId: string,
|
|
788
|
+
platformKey?: string,
|
|
789
|
+
platformOrg?: string,
|
|
790
|
+
sort?: string,
|
|
791
|
+
requestBody?: PatchedPlatformApplicationFormUpdate,
|
|
792
|
+
}): CancelablePromise<PlatformApplicationFormDetail> {
|
|
793
|
+
return __request(OpenAPI, {
|
|
794
|
+
method: 'PATCH',
|
|
795
|
+
url: '/api/catalog/applications/platform/forms/manage/{form_id}/',
|
|
796
|
+
path: {
|
|
797
|
+
'form_id': formId,
|
|
798
|
+
},
|
|
799
|
+
query: {
|
|
800
|
+
'platform_key': platformKey,
|
|
801
|
+
'platform_org': platformOrg,
|
|
802
|
+
'sort': sort,
|
|
803
|
+
},
|
|
804
|
+
body: requestBody,
|
|
805
|
+
mediaType: 'application/json',
|
|
806
|
+
});
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Wires RBAC into a DRF view.
|
|
810
|
+
*
|
|
811
|
+
* Two responsibilities:
|
|
812
|
+
*
|
|
813
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
814
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
815
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
816
|
+
* views that set `token_policies_enabled = True`).
|
|
817
|
+
*
|
|
818
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
819
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
820
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
821
|
+
* caller — bypass RBAC and serve the request."
|
|
822
|
+
*
|
|
823
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
824
|
+
* the early exit skips all RBAC prep work:
|
|
825
|
+
*
|
|
826
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
827
|
+
* return
|
|
828
|
+
*
|
|
829
|
+
* Use `is_service_account` at any other touch points where caller
|
|
830
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
831
|
+
* create, serializer context, etc.).
|
|
832
|
+
* @returns any Submissions for the platform
|
|
833
|
+
* @throws ApiError
|
|
834
|
+
*/
|
|
835
|
+
public static catalogApplicationsPlatformManageRetrieve({
|
|
836
|
+
platformKey,
|
|
837
|
+
platformOrg,
|
|
838
|
+
search,
|
|
839
|
+
sort,
|
|
840
|
+
status,
|
|
841
|
+
}: {
|
|
842
|
+
platformKey?: string,
|
|
843
|
+
platformOrg?: string,
|
|
844
|
+
search?: string,
|
|
845
|
+
sort?: string,
|
|
846
|
+
status?: string,
|
|
847
|
+
}): CancelablePromise<any> {
|
|
848
|
+
return __request(OpenAPI, {
|
|
849
|
+
method: 'GET',
|
|
850
|
+
url: '/api/catalog/applications/platform/manage/',
|
|
851
|
+
query: {
|
|
852
|
+
'platform_key': platformKey,
|
|
853
|
+
'platform_org': platformOrg,
|
|
854
|
+
'search': search,
|
|
855
|
+
'sort': sort,
|
|
856
|
+
'status': status,
|
|
857
|
+
},
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
/**
|
|
861
|
+
* Wires RBAC into a DRF view.
|
|
862
|
+
*
|
|
863
|
+
* Two responsibilities:
|
|
864
|
+
*
|
|
865
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
866
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
867
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
868
|
+
* views that set `token_policies_enabled = True`).
|
|
869
|
+
*
|
|
870
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
871
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
872
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
873
|
+
* caller — bypass RBAC and serve the request."
|
|
874
|
+
*
|
|
875
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
876
|
+
* the early exit skips all RBAC prep work:
|
|
877
|
+
*
|
|
878
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
879
|
+
* return
|
|
880
|
+
*
|
|
881
|
+
* Use `is_service_account` at any other touch points where caller
|
|
882
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
883
|
+
* create, serializer context, etc.).
|
|
884
|
+
* @returns any Full submission detail
|
|
885
|
+
* @throws ApiError
|
|
886
|
+
*/
|
|
887
|
+
public static catalogApplicationsPlatformManageRetrieve2({
|
|
888
|
+
submissionId,
|
|
889
|
+
platformKey,
|
|
890
|
+
platformOrg,
|
|
891
|
+
search,
|
|
892
|
+
sort,
|
|
893
|
+
status,
|
|
894
|
+
}: {
|
|
895
|
+
submissionId: string,
|
|
896
|
+
platformKey?: string,
|
|
897
|
+
platformOrg?: string,
|
|
898
|
+
search?: string,
|
|
899
|
+
sort?: string,
|
|
900
|
+
status?: string,
|
|
901
|
+
}): CancelablePromise<any> {
|
|
902
|
+
return __request(OpenAPI, {
|
|
903
|
+
method: 'GET',
|
|
904
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/',
|
|
905
|
+
path: {
|
|
906
|
+
'submission_id': submissionId,
|
|
907
|
+
},
|
|
908
|
+
query: {
|
|
909
|
+
'platform_key': platformKey,
|
|
910
|
+
'platform_org': platformOrg,
|
|
911
|
+
'search': search,
|
|
912
|
+
'sort': sort,
|
|
913
|
+
'status': status,
|
|
914
|
+
},
|
|
915
|
+
});
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* Reviewer download: redirect to the storage's (signed, on S3) file URL.
|
|
919
|
+
*
|
|
920
|
+
* Gated by ``IsDMAdmin | IsPlatformAdmin`` plus the RBAC verb check on the
|
|
921
|
+
* attachment's own platform when RBAC is enabled.
|
|
922
|
+
* @returns void
|
|
923
|
+
* @throws ApiError
|
|
924
|
+
*/
|
|
925
|
+
public static catalogApplicationsPlatformManageAttachmentsDownloadRetrieve({
|
|
926
|
+
attachmentId,
|
|
927
|
+
submissionId,
|
|
928
|
+
}: {
|
|
929
|
+
attachmentId: string,
|
|
930
|
+
submissionId: string,
|
|
931
|
+
}): CancelablePromise<void> {
|
|
932
|
+
return __request(OpenAPI, {
|
|
933
|
+
method: 'GET',
|
|
934
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/attachments/{attachment_id}/download/',
|
|
935
|
+
path: {
|
|
936
|
+
'attachment_id': attachmentId,
|
|
937
|
+
'submission_id': submissionId,
|
|
938
|
+
},
|
|
939
|
+
errors: {
|
|
940
|
+
302: `Redirect to the file URL`,
|
|
941
|
+
},
|
|
942
|
+
});
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Re-run settlement provisioning for one accepted candidate: links them
|
|
946
|
+
* if an account with their designated email now exists, or re-issues the
|
|
947
|
+
* platform invitation if none is active. Covers the invite-missing state.
|
|
948
|
+
* @returns any Candidate after provisioning
|
|
949
|
+
* @throws ApiError
|
|
950
|
+
*/
|
|
951
|
+
public static catalogApplicationsPlatformManageCandidatesInviteCreate({
|
|
952
|
+
candidateId,
|
|
953
|
+
submissionId,
|
|
954
|
+
}: {
|
|
955
|
+
candidateId: string,
|
|
956
|
+
submissionId: string,
|
|
957
|
+
}): CancelablePromise<any> {
|
|
958
|
+
return __request(OpenAPI, {
|
|
959
|
+
method: 'POST',
|
|
960
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/invite/',
|
|
961
|
+
path: {
|
|
962
|
+
'candidate_id': candidateId,
|
|
963
|
+
'submission_id': submissionId,
|
|
964
|
+
},
|
|
965
|
+
});
|
|
966
|
+
}
|
|
967
|
+
/**
|
|
968
|
+
* Manually link an accepted candidate to an existing account (the
|
|
969
|
+
* account-unlinked state: the family signed up outside invitation
|
|
970
|
+
* redemption, or under a different email than designated).
|
|
971
|
+
* @returns any Candidate linked
|
|
972
|
+
* @throws ApiError
|
|
973
|
+
*/
|
|
974
|
+
public static catalogApplicationsPlatformManageCandidatesLinkCreate({
|
|
975
|
+
candidateId,
|
|
976
|
+
submissionId,
|
|
977
|
+
requestBody,
|
|
978
|
+
}: {
|
|
979
|
+
candidateId: string,
|
|
980
|
+
submissionId: string,
|
|
981
|
+
requestBody?: PlatformApplicationCandidateLink,
|
|
982
|
+
}): CancelablePromise<any> {
|
|
983
|
+
return __request(OpenAPI, {
|
|
984
|
+
method: 'POST',
|
|
985
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/link/',
|
|
986
|
+
path: {
|
|
987
|
+
'candidate_id': candidateId,
|
|
988
|
+
'submission_id': submissionId,
|
|
989
|
+
},
|
|
990
|
+
body: requestBody,
|
|
991
|
+
mediaType: 'application/json',
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
/**
|
|
995
|
+
* Course assignments for a submission (#2134): list, and assign courses to
|
|
996
|
+
* accepted candidates individually or in bulk. Each successful item issues a
|
|
997
|
+
* CourseInvitation that the existing pipeline enrolls.
|
|
998
|
+
* @returns any Assignments for the submission
|
|
999
|
+
* @throws ApiError
|
|
1000
|
+
*/
|
|
1001
|
+
public static catalogApplicationsPlatformManageCourseAssignmentsRetrieve({
|
|
1002
|
+
submissionId,
|
|
1003
|
+
}: {
|
|
1004
|
+
submissionId: string,
|
|
1005
|
+
}): CancelablePromise<any> {
|
|
1006
|
+
return __request(OpenAPI, {
|
|
1007
|
+
method: 'GET',
|
|
1008
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/',
|
|
1009
|
+
path: {
|
|
1010
|
+
'submission_id': submissionId,
|
|
1011
|
+
},
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
/**
|
|
1015
|
+
* Course assignments for a submission (#2134): list, and assign courses to
|
|
1016
|
+
* accepted candidates individually or in bulk. Each successful item issues a
|
|
1017
|
+
* CourseInvitation that the existing pipeline enrolls.
|
|
1018
|
+
* @returns any Per-item assignment results
|
|
1019
|
+
* @throws ApiError
|
|
1020
|
+
*/
|
|
1021
|
+
public static catalogApplicationsPlatformManageCourseAssignmentsCreate({
|
|
1022
|
+
submissionId,
|
|
1023
|
+
requestBody,
|
|
1024
|
+
}: {
|
|
1025
|
+
submissionId: string,
|
|
1026
|
+
requestBody: PlatformApplicationCourseAssignment,
|
|
1027
|
+
}): CancelablePromise<any> {
|
|
1028
|
+
return __request(OpenAPI, {
|
|
1029
|
+
method: 'POST',
|
|
1030
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/',
|
|
1031
|
+
path: {
|
|
1032
|
+
'submission_id': submissionId,
|
|
1033
|
+
},
|
|
1034
|
+
body: requestBody,
|
|
1035
|
+
mediaType: 'application/json',
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
/**
|
|
1039
|
+
* Remove one course assignment (§9.2 "enrollment changes after the school
|
|
1040
|
+
* year begins" — the record side).
|
|
1041
|
+
*
|
|
1042
|
+
* Deactivates the assignment and cancels its invitation when the student has
|
|
1043
|
+
* not yet been enrolled through it. It never unenrolls an already-enrolled
|
|
1044
|
+
* student: platform admins un-enroll deliberately through the catalog
|
|
1045
|
+
* enrollment endpoints, not from an admissions record.
|
|
1046
|
+
* @returns void
|
|
1047
|
+
* @throws ApiError
|
|
1048
|
+
*/
|
|
1049
|
+
public static catalogApplicationsPlatformManageCourseAssignmentsDestroy({
|
|
1050
|
+
assignmentId,
|
|
1051
|
+
submissionId,
|
|
1052
|
+
}: {
|
|
1053
|
+
assignmentId: string,
|
|
1054
|
+
submissionId: string,
|
|
1055
|
+
}): CancelablePromise<void> {
|
|
1056
|
+
return __request(OpenAPI, {
|
|
1057
|
+
method: 'DELETE',
|
|
1058
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/{assignment_id}/',
|
|
1059
|
+
path: {
|
|
1060
|
+
'assignment_id': assignmentId,
|
|
1061
|
+
'submission_id': submissionId,
|
|
1062
|
+
},
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Reviewer/admin view of a submission's application fee (#2132, §5).
|
|
1067
|
+
*
|
|
1068
|
+
* GET returns the charge and its event history; POST records an out-of-band
|
|
1069
|
+
* payment or a waiver/refund/credit. Money collection through Stripe is a
|
|
1070
|
+
* later segment; this is the domain side.
|
|
1071
|
+
* @returns any Charge + events
|
|
1072
|
+
* @throws ApiError
|
|
1073
|
+
*/
|
|
1074
|
+
public static catalogApplicationsPlatformManageFeeRetrieve({
|
|
1075
|
+
submissionId,
|
|
1076
|
+
}: {
|
|
1077
|
+
submissionId: string,
|
|
1078
|
+
}): CancelablePromise<any> {
|
|
1079
|
+
return __request(OpenAPI, {
|
|
1080
|
+
method: 'GET',
|
|
1081
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/fee/',
|
|
1082
|
+
path: {
|
|
1083
|
+
'submission_id': submissionId,
|
|
1084
|
+
},
|
|
1085
|
+
});
|
|
1086
|
+
}
|
|
1087
|
+
/**
|
|
1088
|
+
* Reviewer/admin view of a submission's application fee (#2132, §5).
|
|
1089
|
+
*
|
|
1090
|
+
* GET returns the charge and its event history; POST records an out-of-band
|
|
1091
|
+
* payment or a waiver/refund/credit. Money collection through Stripe is a
|
|
1092
|
+
* later segment; this is the domain side.
|
|
1093
|
+
* @returns any Charge updated
|
|
1094
|
+
* @throws ApiError
|
|
1095
|
+
*/
|
|
1096
|
+
public static catalogApplicationsPlatformManageFeeCreate({
|
|
1097
|
+
submissionId,
|
|
1098
|
+
requestBody,
|
|
1099
|
+
}: {
|
|
1100
|
+
submissionId: string,
|
|
1101
|
+
requestBody: PlatformApplicationFeeAction,
|
|
1102
|
+
}): CancelablePromise<any> {
|
|
1103
|
+
return __request(OpenAPI, {
|
|
1104
|
+
method: 'POST',
|
|
1105
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/fee/',
|
|
1106
|
+
path: {
|
|
1107
|
+
'submission_id': submissionId,
|
|
1108
|
+
},
|
|
1109
|
+
body: requestBody,
|
|
1110
|
+
mediaType: 'application/json',
|
|
1111
|
+
});
|
|
1112
|
+
}
|
|
1113
|
+
/**
|
|
1114
|
+
* Internal reviewer notes on a submission (#2089, §6). Never surfaced on
|
|
1115
|
+
* applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
|
|
1116
|
+
* @returns any Notes for the submission
|
|
1117
|
+
* @throws ApiError
|
|
1118
|
+
*/
|
|
1119
|
+
public static catalogApplicationsPlatformManageNotesRetrieve({
|
|
1120
|
+
submissionId,
|
|
1121
|
+
platformKey,
|
|
1122
|
+
platformOrg,
|
|
1123
|
+
search,
|
|
1124
|
+
sort,
|
|
1125
|
+
status,
|
|
1126
|
+
}: {
|
|
1127
|
+
submissionId: string,
|
|
1128
|
+
platformKey?: string,
|
|
1129
|
+
platformOrg?: string,
|
|
1130
|
+
search?: string,
|
|
1131
|
+
sort?: string,
|
|
1132
|
+
status?: string,
|
|
1133
|
+
}): CancelablePromise<any> {
|
|
1134
|
+
return __request(OpenAPI, {
|
|
1135
|
+
method: 'GET',
|
|
1136
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
|
|
1137
|
+
path: {
|
|
1138
|
+
'submission_id': submissionId,
|
|
1139
|
+
},
|
|
1140
|
+
query: {
|
|
1141
|
+
'platform_key': platformKey,
|
|
1142
|
+
'platform_org': platformOrg,
|
|
1143
|
+
'search': search,
|
|
1144
|
+
'sort': sort,
|
|
1145
|
+
'status': status,
|
|
1146
|
+
},
|
|
1147
|
+
});
|
|
1148
|
+
}
|
|
1149
|
+
/**
|
|
1150
|
+
* Internal reviewer notes on a submission (#2089, §6). Never surfaced on
|
|
1151
|
+
* applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
|
|
1152
|
+
* @returns any Note created
|
|
1153
|
+
* @throws ApiError
|
|
1154
|
+
*/
|
|
1155
|
+
public static catalogApplicationsPlatformManageNotesCreate({
|
|
1156
|
+
submissionId,
|
|
1157
|
+
requestBody,
|
|
1158
|
+
}: {
|
|
1159
|
+
submissionId: string,
|
|
1160
|
+
requestBody: PlatformApplicationNote,
|
|
1161
|
+
}): CancelablePromise<any> {
|
|
1162
|
+
return __request(OpenAPI, {
|
|
1163
|
+
method: 'POST',
|
|
1164
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
|
|
1165
|
+
path: {
|
|
1166
|
+
'submission_id': submissionId,
|
|
1167
|
+
},
|
|
1168
|
+
body: requestBody,
|
|
1169
|
+
mediaType: 'application/json',
|
|
1170
|
+
});
|
|
1171
|
+
}
|
|
1172
|
+
/**
|
|
1173
|
+
* Edit or remove a single internal reviewer note.
|
|
1174
|
+
* @returns any Note updated
|
|
1175
|
+
* @throws ApiError
|
|
1176
|
+
*/
|
|
1177
|
+
public static catalogApplicationsPlatformManageNotesPartialUpdate({
|
|
1178
|
+
noteId,
|
|
1179
|
+
submissionId,
|
|
1180
|
+
requestBody,
|
|
1181
|
+
}: {
|
|
1182
|
+
noteId: string,
|
|
1183
|
+
submissionId: string,
|
|
1184
|
+
requestBody?: PatchedPlatformApplicationNote,
|
|
1185
|
+
}): CancelablePromise<any> {
|
|
1186
|
+
return __request(OpenAPI, {
|
|
1187
|
+
method: 'PATCH',
|
|
1188
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
|
|
1189
|
+
path: {
|
|
1190
|
+
'note_id': noteId,
|
|
1191
|
+
'submission_id': submissionId,
|
|
1192
|
+
},
|
|
1193
|
+
body: requestBody,
|
|
1194
|
+
mediaType: 'application/json',
|
|
1195
|
+
});
|
|
1196
|
+
}
|
|
1197
|
+
/**
|
|
1198
|
+
* Edit or remove a single internal reviewer note.
|
|
1199
|
+
* @returns void
|
|
1200
|
+
* @throws ApiError
|
|
1201
|
+
*/
|
|
1202
|
+
public static catalogApplicationsPlatformManageNotesDestroy({
|
|
1203
|
+
noteId,
|
|
1204
|
+
submissionId,
|
|
1205
|
+
}: {
|
|
1206
|
+
noteId: string,
|
|
1207
|
+
submissionId: string,
|
|
1208
|
+
}): CancelablePromise<void> {
|
|
1209
|
+
return __request(OpenAPI, {
|
|
1210
|
+
method: 'DELETE',
|
|
1211
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
|
|
1212
|
+
path: {
|
|
1213
|
+
'note_id': noteId,
|
|
1214
|
+
'submission_id': submissionId,
|
|
1215
|
+
},
|
|
1216
|
+
});
|
|
1217
|
+
}
|
|
1218
|
+
/**
|
|
1219
|
+
* Placements for a submission (#2133): list, and assign a new placement
|
|
1220
|
+
* linking an accepted candidate to the placement mentor.
|
|
1221
|
+
* @returns any Placements for the submission
|
|
1222
|
+
* @throws ApiError
|
|
1223
|
+
*/
|
|
1224
|
+
public static catalogApplicationsPlatformManagePlacementsRetrieve({
|
|
1225
|
+
submissionId,
|
|
1226
|
+
}: {
|
|
1227
|
+
submissionId: string,
|
|
1228
|
+
}): CancelablePromise<any> {
|
|
1229
|
+
return __request(OpenAPI, {
|
|
1230
|
+
method: 'GET',
|
|
1231
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
|
|
1232
|
+
path: {
|
|
1233
|
+
'submission_id': submissionId,
|
|
1234
|
+
},
|
|
1235
|
+
});
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Placements for a submission (#2133): list, and assign a new placement
|
|
1239
|
+
* linking an accepted candidate to the placement mentor.
|
|
1240
|
+
* @returns any Per-item placement results
|
|
1241
|
+
* @throws ApiError
|
|
1242
|
+
*/
|
|
1243
|
+
public static catalogApplicationsPlatformManagePlacementsCreate({
|
|
1244
|
+
submissionId,
|
|
1245
|
+
requestBody,
|
|
1246
|
+
}: {
|
|
1247
|
+
submissionId: string,
|
|
1248
|
+
requestBody: PlatformApplicationPlacementCreate,
|
|
1249
|
+
}): CancelablePromise<any> {
|
|
1250
|
+
return __request(OpenAPI, {
|
|
1251
|
+
method: 'POST',
|
|
1252
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
|
|
1253
|
+
path: {
|
|
1254
|
+
'submission_id': submissionId,
|
|
1255
|
+
},
|
|
1256
|
+
body: requestBody,
|
|
1257
|
+
mediaType: 'application/json',
|
|
1258
|
+
});
|
|
1259
|
+
}
|
|
1260
|
+
/**
|
|
1261
|
+
* Advance a single placement: status, the agent's result, admin override.
|
|
1262
|
+
* @returns any Placement updated
|
|
1263
|
+
* @throws ApiError
|
|
1264
|
+
*/
|
|
1265
|
+
public static catalogApplicationsPlatformManagePlacementsPartialUpdate({
|
|
1266
|
+
placementId,
|
|
1267
|
+
submissionId,
|
|
1268
|
+
requestBody,
|
|
1269
|
+
}: {
|
|
1270
|
+
placementId: string,
|
|
1271
|
+
submissionId: string,
|
|
1272
|
+
requestBody?: PatchedPlatformApplicationPlacementUpdate,
|
|
1273
|
+
}): CancelablePromise<any> {
|
|
1274
|
+
return __request(OpenAPI, {
|
|
1275
|
+
method: 'PATCH',
|
|
1276
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/{placement_id}/',
|
|
1277
|
+
path: {
|
|
1278
|
+
'placement_id': placementId,
|
|
1279
|
+
'submission_id': submissionId,
|
|
1280
|
+
},
|
|
1281
|
+
body: requestBody,
|
|
1282
|
+
mediaType: 'application/json',
|
|
1283
|
+
});
|
|
1284
|
+
}
|
|
1285
|
+
/**
|
|
1286
|
+
* Admin submit-with-exceptions (§2.1 "administratively waived"): push a
|
|
1287
|
+
* family's editable application to Submitted, recording a waiver for every
|
|
1288
|
+
* required item still missing and bypassing an unpaid fee gate (the charge
|
|
1289
|
+
* stays payable/waivable). Present-but-invalid answers still block (400).
|
|
1290
|
+
* @returns any Application submitted
|
|
1291
|
+
* @throws ApiError
|
|
1292
|
+
*/
|
|
1293
|
+
public static catalogApplicationsPlatformManageSubmitCreate({
|
|
1294
|
+
submissionId,
|
|
1295
|
+
requestBody,
|
|
1296
|
+
}: {
|
|
1297
|
+
submissionId: string,
|
|
1298
|
+
requestBody?: PlatformApplicationAdminSubmit,
|
|
1299
|
+
}): CancelablePromise<any> {
|
|
1300
|
+
return __request(OpenAPI, {
|
|
1301
|
+
method: 'POST',
|
|
1302
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/submit/',
|
|
1303
|
+
path: {
|
|
1304
|
+
'submission_id': submissionId,
|
|
1305
|
+
},
|
|
1306
|
+
body: requestBody,
|
|
1307
|
+
mediaType: 'application/json',
|
|
1308
|
+
});
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* Advance a submission or a single candidate through the review pipeline
|
|
1312
|
+
* (#2089, §5-6). A ``candidate_id`` scopes the action to one person; without
|
|
1313
|
+
* it the action applies to every candidate that can legally accept it. When
|
|
1314
|
+
* ``action`` is ``decline`` and ``block`` is set, the applicant is also added
|
|
1315
|
+
* to the platform ban-list (deny-with-block).
|
|
1316
|
+
* @returns any Updated submission detail
|
|
1317
|
+
* @throws ApiError
|
|
1318
|
+
*/
|
|
1319
|
+
public static catalogApplicationsPlatformManageTransitionCreate({
|
|
1320
|
+
submissionId,
|
|
1321
|
+
requestBody,
|
|
1322
|
+
}: {
|
|
1323
|
+
submissionId: string,
|
|
1324
|
+
requestBody: PlatformApplicationTransition,
|
|
1325
|
+
}): CancelablePromise<any> {
|
|
1326
|
+
return __request(OpenAPI, {
|
|
1327
|
+
method: 'POST',
|
|
1328
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/transition/',
|
|
1329
|
+
path: {
|
|
1330
|
+
'submission_id': submissionId,
|
|
1331
|
+
},
|
|
1332
|
+
body: requestBody,
|
|
1333
|
+
mediaType: 'application/json',
|
|
1334
|
+
});
|
|
1335
|
+
}
|
|
1336
|
+
/**
|
|
1337
|
+
* Waive a required item on one application (§2.1 "administratively
|
|
1338
|
+
* waived"): POST excuses a missing required field so it no longer blocks
|
|
1339
|
+
* submission; DELETE reinstates it. Waivers excuse absence only — a
|
|
1340
|
+
* present-but-invalid answer still blocks. The fee is waived through its own
|
|
1341
|
+
* fee endpoint action, which also settles the money record.
|
|
1342
|
+
* @returns any Waiver recorded
|
|
1343
|
+
* @throws ApiError
|
|
1344
|
+
*/
|
|
1345
|
+
public static catalogApplicationsPlatformManageWaiversCreate({
|
|
1346
|
+
submissionId,
|
|
1347
|
+
requestBody,
|
|
1348
|
+
}: {
|
|
1349
|
+
submissionId: string,
|
|
1350
|
+
requestBody: PlatformApplicationWaiver,
|
|
1351
|
+
}): CancelablePromise<any> {
|
|
1352
|
+
return __request(OpenAPI, {
|
|
1353
|
+
method: 'POST',
|
|
1354
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
|
|
1355
|
+
path: {
|
|
1356
|
+
'submission_id': submissionId,
|
|
1357
|
+
},
|
|
1358
|
+
body: requestBody,
|
|
1359
|
+
mediaType: 'application/json',
|
|
1360
|
+
});
|
|
1361
|
+
}
|
|
1362
|
+
/**
|
|
1363
|
+
* Waive a required item on one application (§2.1 "administratively
|
|
1364
|
+
* waived"): POST excuses a missing required field so it no longer blocks
|
|
1365
|
+
* submission; DELETE reinstates it. Waivers excuse absence only — a
|
|
1366
|
+
* present-but-invalid answer still blocks. The fee is waived through its own
|
|
1367
|
+
* fee endpoint action, which also settles the money record.
|
|
1368
|
+
* @returns void
|
|
1369
|
+
* @throws ApiError
|
|
1370
|
+
*/
|
|
1371
|
+
public static catalogApplicationsPlatformManageWaiversDestroy({
|
|
1372
|
+
submissionId,
|
|
1373
|
+
}: {
|
|
1374
|
+
submissionId: string,
|
|
1375
|
+
}): CancelablePromise<void> {
|
|
1376
|
+
return __request(OpenAPI, {
|
|
1377
|
+
method: 'DELETE',
|
|
1378
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
|
|
1379
|
+
path: {
|
|
1380
|
+
'submission_id': submissionId,
|
|
1381
|
+
},
|
|
1382
|
+
});
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* List the active application blocks (ban-list) for a platform.
|
|
1386
|
+
* @returns any Active blocks
|
|
1387
|
+
* @throws ApiError
|
|
1388
|
+
*/
|
|
1389
|
+
public static catalogApplicationsPlatformManageBlocksRetrieve({
|
|
1390
|
+
platformKey,
|
|
1391
|
+
platformOrg,
|
|
1392
|
+
search,
|
|
1393
|
+
sort,
|
|
1394
|
+
status,
|
|
1395
|
+
}: {
|
|
1396
|
+
platformKey?: string,
|
|
1397
|
+
platformOrg?: string,
|
|
1398
|
+
search?: string,
|
|
1399
|
+
sort?: string,
|
|
1400
|
+
status?: string,
|
|
1401
|
+
}): CancelablePromise<any> {
|
|
1402
|
+
return __request(OpenAPI, {
|
|
1403
|
+
method: 'GET',
|
|
1404
|
+
url: '/api/catalog/applications/platform/manage/blocks/',
|
|
1405
|
+
query: {
|
|
1406
|
+
'platform_key': platformKey,
|
|
1407
|
+
'platform_org': platformOrg,
|
|
1408
|
+
'search': search,
|
|
1409
|
+
'sort': sort,
|
|
1410
|
+
'status': status,
|
|
1411
|
+
},
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1414
|
+
/**
|
|
1415
|
+
* Lift a single active application block (unblock).
|
|
1416
|
+
* @returns void
|
|
1417
|
+
* @throws ApiError
|
|
1418
|
+
*/
|
|
1419
|
+
public static catalogApplicationsPlatformManageBlocksDestroy({
|
|
1420
|
+
blockId,
|
|
1421
|
+
platformKey,
|
|
1422
|
+
platformOrg,
|
|
1423
|
+
search,
|
|
1424
|
+
sort,
|
|
1425
|
+
status,
|
|
1426
|
+
}: {
|
|
1427
|
+
blockId: string,
|
|
1428
|
+
platformKey?: string,
|
|
1429
|
+
platformOrg?: string,
|
|
1430
|
+
search?: string,
|
|
1431
|
+
sort?: string,
|
|
1432
|
+
status?: string,
|
|
1433
|
+
}): CancelablePromise<void> {
|
|
1434
|
+
return __request(OpenAPI, {
|
|
1435
|
+
method: 'DELETE',
|
|
1436
|
+
url: '/api/catalog/applications/platform/manage/blocks/{block_id}/',
|
|
1437
|
+
path: {
|
|
1438
|
+
'block_id': blockId,
|
|
1439
|
+
},
|
|
1440
|
+
query: {
|
|
1441
|
+
'platform_key': platformKey,
|
|
1442
|
+
'platform_org': platformOrg,
|
|
1443
|
+
'search': search,
|
|
1444
|
+
'sort': sort,
|
|
1445
|
+
'status': status,
|
|
1446
|
+
},
|
|
1447
|
+
});
|
|
1448
|
+
}
|
|
1449
|
+
/**
|
|
1450
|
+
* Wires RBAC into a DRF view.
|
|
1451
|
+
*
|
|
1452
|
+
* Two responsibilities:
|
|
1453
|
+
*
|
|
1454
|
+
* 1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
1455
|
+
* `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
1456
|
+
* semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
1457
|
+
* views that set `token_policies_enabled = True`).
|
|
1458
|
+
*
|
|
1459
|
+
* 2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
1460
|
+
* Server-to-server tokens authenticate as Django auth users with no
|
|
1461
|
+
* relationship to a platform EdxUser. The convention is "we trust this
|
|
1462
|
+
* caller — bypass RBAC and serve the request."
|
|
1463
|
+
*
|
|
1464
|
+
* Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
1465
|
+
* the early exit skips all RBAC prep work:
|
|
1466
|
+
*
|
|
1467
|
+
* if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
1468
|
+
* return
|
|
1469
|
+
*
|
|
1470
|
+
* Use `is_service_account` at any other touch points where caller
|
|
1471
|
+
* identity matters (queryset ownership filters, owner attribution on
|
|
1472
|
+
* create, serializer context, etc.).
|
|
1473
|
+
* @returns any Per-status counts
|
|
1474
|
+
* @throws ApiError
|
|
1475
|
+
*/
|
|
1476
|
+
public static catalogApplicationsPlatformManageStatsRetrieve({
|
|
1477
|
+
platformKey,
|
|
1478
|
+
platformOrg,
|
|
1479
|
+
search,
|
|
1480
|
+
sort,
|
|
1481
|
+
status,
|
|
1482
|
+
}: {
|
|
1483
|
+
platformKey?: string,
|
|
1484
|
+
platformOrg?: string,
|
|
1485
|
+
search?: string,
|
|
1486
|
+
sort?: string,
|
|
1487
|
+
status?: string,
|
|
1488
|
+
}): CancelablePromise<any> {
|
|
1489
|
+
return __request(OpenAPI, {
|
|
1490
|
+
method: 'GET',
|
|
1491
|
+
url: '/api/catalog/applications/platform/manage/stats/',
|
|
1492
|
+
query: {
|
|
1493
|
+
'platform_key': platformKey,
|
|
1494
|
+
'platform_org': platformOrg,
|
|
1495
|
+
'search': search,
|
|
1496
|
+
'sort': sort,
|
|
1497
|
+
'status': status,
|
|
1498
|
+
},
|
|
1499
|
+
});
|
|
1500
|
+
}
|
|
1501
|
+
/**
|
|
1502
|
+
* Start an annual re-enrollment (#2135): a normal draft create whose
|
|
1503
|
+
* responses are pre-filled from the caller's most recent approved submission
|
|
1504
|
+
* (current-schema fields only; signatures, consents, files, and fields the
|
|
1505
|
+
* form flags fresh are re-asked), linked to that prior submission. With no
|
|
1506
|
+
* prior approved submission this behaves as a plain create.
|
|
1507
|
+
* @returns PlatformApplicationDetail
|
|
1508
|
+
* @throws ApiError
|
|
1509
|
+
*/
|
|
1510
|
+
public static catalogApplicationsPlatformRenewCreate({
|
|
1511
|
+
requestBody,
|
|
1512
|
+
}: {
|
|
1513
|
+
requestBody: PlatformApplicationCreate,
|
|
1514
|
+
}): CancelablePromise<PlatformApplicationDetail> {
|
|
1515
|
+
return __request(OpenAPI, {
|
|
1516
|
+
method: 'POST',
|
|
1517
|
+
url: '/api/catalog/applications/platform/renew/',
|
|
1518
|
+
body: requestBody,
|
|
1519
|
+
mediaType: 'application/json',
|
|
1520
|
+
});
|
|
1521
|
+
}
|
|
1522
|
+
/**
|
|
1523
|
+
* Authenticated applicants, including learners on AXD student tokens.
|
|
1524
|
+
*
|
|
1525
|
+
* Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
1526
|
+
* not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
1527
|
+
* request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
1528
|
+
* ``NotAuthenticated`` whenever no authenticator succeeded.
|
|
1529
|
+
* @returns any Gate state
|
|
1530
|
+
* @throws ApiError
|
|
1531
|
+
*/
|
|
1532
|
+
public static catalogApplicationsPlatformStatusRetrieve({
|
|
1533
|
+
formId,
|
|
1534
|
+
platformKey,
|
|
1535
|
+
platformOrg,
|
|
1536
|
+
}: {
|
|
1537
|
+
formId?: number,
|
|
1538
|
+
platformKey?: string,
|
|
1539
|
+
platformOrg?: string,
|
|
1540
|
+
}): CancelablePromise<any> {
|
|
1541
|
+
return __request(OpenAPI, {
|
|
1542
|
+
method: 'GET',
|
|
1543
|
+
url: '/api/catalog/applications/platform/status/',
|
|
1544
|
+
query: {
|
|
1545
|
+
'form_id': formId,
|
|
1546
|
+
'platform_key': platformKey,
|
|
1547
|
+
'platform_org': platformOrg,
|
|
1548
|
+
},
|
|
1549
|
+
});
|
|
1550
|
+
}
|
|
355
1551
|
/**
|
|
356
1552
|
* GET
|
|
357
1553
|
* Retrieve prerequisite eligibility info for user/course
|