@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.
Files changed (71) hide show
  1. package/dist/index.cjs.js +1342 -207
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +1343 -208
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.umd.js +1342 -207
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/types/index.d.ts +25 -1
  8. package/dist/types/models/KindEnum.d.ts +8 -0
  9. package/dist/types/models/NotificationTemplateDetail.d.ts +3 -2
  10. package/dist/types/models/NotificationTemplateList.d.ts +3 -2
  11. package/dist/types/models/PatchedNotificationTemplateDetail.d.ts +3 -2
  12. package/dist/types/models/PatchedPlatformApplicationFormUpdate.d.ts +12 -0
  13. package/dist/types/models/PatchedPlatformApplicationNote.d.ts +8 -0
  14. package/dist/types/models/PatchedPlatformApplicationPlacementUpdate.d.ts +12 -0
  15. package/dist/types/models/PatchedPlatformApplicationUpdate.d.ts +6 -0
  16. package/dist/types/models/PlatformApplicationAdminSubmit.d.ts +6 -0
  17. package/dist/types/models/PlatformApplicationAttachmentUpload.d.ts +8 -0
  18. package/dist/types/models/PlatformApplicationCandidateLink.d.ts +8 -0
  19. package/dist/types/models/PlatformApplicationCourseAssignment.d.ts +7 -0
  20. package/dist/types/models/PlatformApplicationCourseAssignmentItem.d.ts +10 -0
  21. package/dist/types/models/PlatformApplicationCreate.d.ts +8 -0
  22. package/dist/types/models/PlatformApplicationDetail.d.ts +7 -0
  23. package/dist/types/models/PlatformApplicationFeeAction.d.ts +11 -0
  24. package/dist/types/models/PlatformApplicationFeeActionActionEnum.d.ts +12 -0
  25. package/dist/types/models/PlatformApplicationFormCreate.d.ts +12 -0
  26. package/dist/types/models/PlatformApplicationFormDetail.d.ts +9 -0
  27. package/dist/types/models/PlatformApplicationNote.d.ts +8 -0
  28. package/dist/types/models/PlatformApplicationPlacementCreate.d.ts +8 -0
  29. package/dist/types/models/PlatformApplicationPlacementItem.d.ts +11 -0
  30. package/dist/types/models/PlatformApplicationPlacementUpdateStatusEnum.d.ts +16 -0
  31. package/dist/types/models/PlatformApplicationSubmit.d.ts +6 -0
  32. package/dist/types/models/PlatformApplicationTransition.d.ts +11 -0
  33. package/dist/types/models/PlatformApplicationTransitionActionEnum.d.ts +16 -0
  34. package/dist/types/models/PlatformApplicationWaiver.d.ts +9 -0
  35. package/dist/types/models/{Type4b7Enum.d.ts → TypeB29Enum.d.ts} +3 -1
  36. package/dist/types/services/CatalogService.d.ts +648 -0
  37. package/dist/types/services/CoreService.d.ts +14 -0
  38. package/package.json +1 -1
  39. package/sdk_schema.yml +1893 -5
  40. package/src/core/OpenAPI.ts +1 -1
  41. package/src/index.ts +25 -1
  42. package/src/models/KindEnum.ts +12 -0
  43. package/src/models/NotificationTemplateDetail.ts +3 -2
  44. package/src/models/NotificationTemplateList.ts +3 -2
  45. package/src/models/PatchedNotificationTemplateDetail.ts +3 -2
  46. package/src/models/PatchedPlatformApplicationFormUpdate.ts +17 -0
  47. package/src/models/PatchedPlatformApplicationNote.ts +13 -0
  48. package/src/models/PatchedPlatformApplicationPlacementUpdate.ts +17 -0
  49. package/src/models/PatchedPlatformApplicationUpdate.ts +11 -0
  50. package/src/models/PlatformApplicationAdminSubmit.ts +11 -0
  51. package/src/models/PlatformApplicationAttachmentUpload.ts +13 -0
  52. package/src/models/PlatformApplicationCandidateLink.ts +13 -0
  53. package/src/models/PlatformApplicationCourseAssignment.ts +12 -0
  54. package/src/models/PlatformApplicationCourseAssignmentItem.ts +15 -0
  55. package/src/models/PlatformApplicationCreate.ts +13 -0
  56. package/src/models/PlatformApplicationDetail.ts +12 -0
  57. package/src/models/PlatformApplicationFeeAction.ts +16 -0
  58. package/src/models/PlatformApplicationFeeActionActionEnum.ts +16 -0
  59. package/src/models/PlatformApplicationFormCreate.ts +17 -0
  60. package/src/models/PlatformApplicationFormDetail.ts +14 -0
  61. package/src/models/PlatformApplicationNote.ts +13 -0
  62. package/src/models/PlatformApplicationPlacementCreate.ts +13 -0
  63. package/src/models/PlatformApplicationPlacementItem.ts +16 -0
  64. package/src/models/PlatformApplicationPlacementUpdateStatusEnum.ts +20 -0
  65. package/src/models/PlatformApplicationSubmit.ts +11 -0
  66. package/src/models/PlatformApplicationTransition.ts +16 -0
  67. package/src/models/PlatformApplicationTransitionActionEnum.ts +20 -0
  68. package/src/models/PlatformApplicationWaiver.ts +14 -0
  69. package/src/models/{Type4b7Enum.ts → TypeB29Enum.ts} +3 -1
  70. package/src/services/CatalogService.ts +1196 -0
  71. 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