@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
package/dist/index.umd.js CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  const OpenAPI = {
116
116
  BASE: 'https://base.manager.iblai.app',
117
- VERSION: '4.305.0-core',
117
+ VERSION: '4.306.0-core',
118
118
  WITH_CREDENTIALS: false,
119
119
  CREDENTIALS: 'include',
120
120
  TOKEN: undefined,
@@ -551,6 +551,20 @@
551
551
  ItemTypeEnum["ALL"] = "all";
552
552
  })(exports.ItemTypeEnum || (exports.ItemTypeEnum = {}));
553
553
 
554
+ /* generated using openapi-typescript-codegen -- do not edit */
555
+ /* istanbul ignore file */
556
+ /* tslint:disable */
557
+ /* eslint-disable */
558
+ /**
559
+ * * `general` - general
560
+ * * `interview` - interview
561
+ */
562
+ exports.KindEnum = void 0;
563
+ (function (KindEnum) {
564
+ KindEnum["GENERAL"] = "general";
565
+ KindEnum["INTERVIEW"] = "interview";
566
+ })(exports.KindEnum || (exports.KindEnum = {}));
567
+
554
568
  /* generated using openapi-typescript-codegen -- do not edit */
555
569
  /* istanbul ignore file */
556
570
  /* tslint:disable */
@@ -697,6 +711,68 @@
697
711
  PlatformApiKeyModeEnum["TOKEN_POLICIES"] = "token_policies";
698
712
  })(exports.PlatformApiKeyModeEnum || (exports.PlatformApiKeyModeEnum = {}));
699
713
 
714
+ /* generated using openapi-typescript-codegen -- do not edit */
715
+ /* istanbul ignore file */
716
+ /* tslint:disable */
717
+ /* eslint-disable */
718
+ /**
719
+ * * `record_payment` - record_payment
720
+ * * `waive` - waive
721
+ * * `refund` - refund
722
+ * * `credit` - credit
723
+ */
724
+ exports.PlatformApplicationFeeActionActionEnum = void 0;
725
+ (function (PlatformApplicationFeeActionActionEnum) {
726
+ PlatformApplicationFeeActionActionEnum["RECORD_PAYMENT"] = "record_payment";
727
+ PlatformApplicationFeeActionActionEnum["WAIVE"] = "waive";
728
+ PlatformApplicationFeeActionActionEnum["REFUND"] = "refund";
729
+ PlatformApplicationFeeActionActionEnum["CREDIT"] = "credit";
730
+ })(exports.PlatformApplicationFeeActionActionEnum || (exports.PlatformApplicationFeeActionActionEnum = {}));
731
+
732
+ /* generated using openapi-typescript-codegen -- do not edit */
733
+ /* istanbul ignore file */
734
+ /* tslint:disable */
735
+ /* eslint-disable */
736
+ /**
737
+ * * `not_assigned` - not_assigned
738
+ * * `assigned` - assigned
739
+ * * `started` - started
740
+ * * `completed` - completed
741
+ * * `reviewed` - reviewed
742
+ * * `confirmed` - confirmed
743
+ */
744
+ exports.PlatformApplicationPlacementUpdateStatusEnum = void 0;
745
+ (function (PlatformApplicationPlacementUpdateStatusEnum) {
746
+ PlatformApplicationPlacementUpdateStatusEnum["NOT_ASSIGNED"] = "not_assigned";
747
+ PlatformApplicationPlacementUpdateStatusEnum["ASSIGNED"] = "assigned";
748
+ PlatformApplicationPlacementUpdateStatusEnum["STARTED"] = "started";
749
+ PlatformApplicationPlacementUpdateStatusEnum["COMPLETED"] = "completed";
750
+ PlatformApplicationPlacementUpdateStatusEnum["REVIEWED"] = "reviewed";
751
+ PlatformApplicationPlacementUpdateStatusEnum["CONFIRMED"] = "confirmed";
752
+ })(exports.PlatformApplicationPlacementUpdateStatusEnum || (exports.PlatformApplicationPlacementUpdateStatusEnum = {}));
753
+
754
+ /* generated using openapi-typescript-codegen -- do not edit */
755
+ /* istanbul ignore file */
756
+ /* tslint:disable */
757
+ /* eslint-disable */
758
+ /**
759
+ * * `start_review` - start_review
760
+ * * `request_info` - request_info
761
+ * * `require_interview` - require_interview
762
+ * * `waitlist` - waitlist
763
+ * * `accept` - accept
764
+ * * `decline` - decline
765
+ */
766
+ exports.PlatformApplicationTransitionActionEnum = void 0;
767
+ (function (PlatformApplicationTransitionActionEnum) {
768
+ PlatformApplicationTransitionActionEnum["START_REVIEW"] = "start_review";
769
+ PlatformApplicationTransitionActionEnum["REQUEST_INFO"] = "request_info";
770
+ PlatformApplicationTransitionActionEnum["REQUIRE_INTERVIEW"] = "require_interview";
771
+ PlatformApplicationTransitionActionEnum["WAITLIST"] = "waitlist";
772
+ PlatformApplicationTransitionActionEnum["ACCEPT"] = "accept";
773
+ PlatformApplicationTransitionActionEnum["DECLINE"] = "decline";
774
+ })(exports.PlatformApplicationTransitionActionEnum || (exports.PlatformApplicationTransitionActionEnum = {}));
775
+
700
776
  /* generated using openapi-typescript-codegen -- do not edit */
701
777
  /* istanbul ignore file */
702
778
  /* tslint:disable */
@@ -2128,6 +2204,7 @@
2128
2204
  * * `DEFAULT_TEMPLATE` - Default Template
2129
2205
  * * `HUMAN_SUPPORT_NOTIFICATION` - Human Support Notification
2130
2206
  * * `PATHWAY_ENROLLMENT_CONFIRMATION` - Pathway Enrollment Confirmation
2207
+ * * `PLATFORM_APPLICATION_DECISION` - Platform Application Decision
2131
2208
  * * `PLATFORM_INVITATION` - Platform Invitation
2132
2209
  * * `POLICY_ASSIGNMENT` - Policy Assignment
2133
2210
  * * `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
@@ -2148,44 +2225,45 @@
2148
2225
  * * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
2149
2226
  * * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
2150
2227
  */
2151
- exports.Type4b7Enum = void 0;
2152
- (function (Type4b7Enum) {
2153
- Type4b7Enum["ACTIVITY_COURSE_MILESTONE"] = "ACTIVITY_COURSE_MILESTONE";
2154
- Type4b7Enum["ACTIVITY_NEW_CONTENT"] = "ACTIVITY_NEW_CONTENT";
2155
- Type4b7Enum["ADMIN_NOTIF_COURSE_ENROLLMENT"] = "ADMIN_NOTIF_COURSE_ENROLLMENT";
2156
- Type4b7Enum["APP_REGISTRATION"] = "APP_REGISTRATION";
2157
- Type4b7Enum["COURSE_INVITATION"] = "COURSE_INVITATION";
2158
- Type4b7Enum["COURSE_LICENSE_ASSIGNMENT"] = "COURSE_LICENSE_ASSIGNMENT";
2159
- Type4b7Enum["COURSE_LICENSE_GROUP_ASSIGNMENT"] = "COURSE_LICENSE_GROUP_ASSIGNMENT";
2160
- Type4b7Enum["COURSE_SCHEDULE_CHANGE"] = "COURSE_SCHEDULE_CHANGE";
2161
- Type4b7Enum["COURSES_PROGRESS_SUMMARY"] = "COURSES_PROGRESS_SUMMARY";
2162
- Type4b7Enum["CRM_DEAL_STAGE_CHANGED"] = "CRM_DEAL_STAGE_CHANGED";
2163
- Type4b7Enum["CRM_PERSON_CREATED"] = "CRM_PERSON_CREATED";
2164
- Type4b7Enum["CRM_PERSON_LINKED_TO_USER"] = "CRM_PERSON_LINKED_TO_USER";
2165
- Type4b7Enum["CUSTOM_NOTIFICATION"] = "CUSTOM_NOTIFICATION";
2166
- Type4b7Enum["DEFAULT_TEMPLATE"] = "DEFAULT_TEMPLATE";
2167
- Type4b7Enum["HUMAN_SUPPORT_NOTIFICATION"] = "HUMAN_SUPPORT_NOTIFICATION";
2168
- Type4b7Enum["PATHWAY_ENROLLMENT_CONFIRMATION"] = "PATHWAY_ENROLLMENT_CONFIRMATION";
2169
- Type4b7Enum["PLATFORM_INVITATION"] = "PLATFORM_INVITATION";
2170
- Type4b7Enum["POLICY_ASSIGNMENT"] = "POLICY_ASSIGNMENT";
2171
- Type4b7Enum["PROACTIVE_LEARNER_NOTIFICATION"] = "PROACTIVE_LEARNER_NOTIFICATION";
2172
- Type4b7Enum["PROGRAM_ENROLLMENT_CONFIRMATION"] = "PROGRAM_ENROLLMENT_CONFIRMATION";
2173
- Type4b7Enum["PROGRAM_INVITATION"] = "PROGRAM_INVITATION";
2174
- Type4b7Enum["PROGRAM_LICENSE_ASSIGNMENT"] = "PROGRAM_LICENSE_ASSIGNMENT";
2175
- Type4b7Enum["PROGRAM_LICENSE_GROUP_ASSIGNMENT"] = "PROGRAM_LICENSE_GROUP_ASSIGNMENT";
2176
- Type4b7Enum["REPORT_COMPLETED"] = "REPORT_COMPLETED";
2177
- Type4b7Enum["ROLE_CHANGE"] = "ROLE_CHANGE";
2178
- Type4b7Enum["SKILL_MASTERY_CHANGE"] = "SKILL_MASTERY_CHANGE";
2179
- Type4b7Enum["SUBSECTION_GRADE_UPDATE"] = "SUBSECTION_GRADE_UPDATE";
2180
- Type4b7Enum["USER_LICENSE_ASSIGNMENT"] = "USER_LICENSE_ASSIGNMENT";
2181
- Type4b7Enum["USER_LICENSE_GROUP_ASSIGNMENT"] = "USER_LICENSE_GROUP_ASSIGNMENT";
2182
- Type4b7Enum["USER_NOTIF_COURSE_COMPLETION"] = "USER_NOTIF_COURSE_COMPLETION";
2183
- Type4b7Enum["USER_NOTIF_COURSE_ENROLLMENT"] = "USER_NOTIF_COURSE_ENROLLMENT";
2184
- Type4b7Enum["USER_NOTIF_CREDENTIALS"] = "USER_NOTIF_CREDENTIALS";
2185
- Type4b7Enum["USER_NOTIF_LEARNER_PROGRESS"] = "USER_NOTIF_LEARNER_PROGRESS";
2186
- Type4b7Enum["USER_NOTIF_USER_INACTIVITY"] = "USER_NOTIF_USER_INACTIVITY";
2187
- Type4b7Enum["USER_NOTIF_USER_REGISTRATION"] = "USER_NOTIF_USER_REGISTRATION";
2188
- })(exports.Type4b7Enum || (exports.Type4b7Enum = {}));
2228
+ exports.TypeB29Enum = void 0;
2229
+ (function (TypeB29Enum) {
2230
+ TypeB29Enum["ACTIVITY_COURSE_MILESTONE"] = "ACTIVITY_COURSE_MILESTONE";
2231
+ TypeB29Enum["ACTIVITY_NEW_CONTENT"] = "ACTIVITY_NEW_CONTENT";
2232
+ TypeB29Enum["ADMIN_NOTIF_COURSE_ENROLLMENT"] = "ADMIN_NOTIF_COURSE_ENROLLMENT";
2233
+ TypeB29Enum["APP_REGISTRATION"] = "APP_REGISTRATION";
2234
+ TypeB29Enum["COURSE_INVITATION"] = "COURSE_INVITATION";
2235
+ TypeB29Enum["COURSE_LICENSE_ASSIGNMENT"] = "COURSE_LICENSE_ASSIGNMENT";
2236
+ TypeB29Enum["COURSE_LICENSE_GROUP_ASSIGNMENT"] = "COURSE_LICENSE_GROUP_ASSIGNMENT";
2237
+ TypeB29Enum["COURSE_SCHEDULE_CHANGE"] = "COURSE_SCHEDULE_CHANGE";
2238
+ TypeB29Enum["COURSES_PROGRESS_SUMMARY"] = "COURSES_PROGRESS_SUMMARY";
2239
+ TypeB29Enum["CRM_DEAL_STAGE_CHANGED"] = "CRM_DEAL_STAGE_CHANGED";
2240
+ TypeB29Enum["CRM_PERSON_CREATED"] = "CRM_PERSON_CREATED";
2241
+ TypeB29Enum["CRM_PERSON_LINKED_TO_USER"] = "CRM_PERSON_LINKED_TO_USER";
2242
+ TypeB29Enum["CUSTOM_NOTIFICATION"] = "CUSTOM_NOTIFICATION";
2243
+ TypeB29Enum["DEFAULT_TEMPLATE"] = "DEFAULT_TEMPLATE";
2244
+ TypeB29Enum["HUMAN_SUPPORT_NOTIFICATION"] = "HUMAN_SUPPORT_NOTIFICATION";
2245
+ TypeB29Enum["PATHWAY_ENROLLMENT_CONFIRMATION"] = "PATHWAY_ENROLLMENT_CONFIRMATION";
2246
+ TypeB29Enum["PLATFORM_APPLICATION_DECISION"] = "PLATFORM_APPLICATION_DECISION";
2247
+ TypeB29Enum["PLATFORM_INVITATION"] = "PLATFORM_INVITATION";
2248
+ TypeB29Enum["POLICY_ASSIGNMENT"] = "POLICY_ASSIGNMENT";
2249
+ TypeB29Enum["PROACTIVE_LEARNER_NOTIFICATION"] = "PROACTIVE_LEARNER_NOTIFICATION";
2250
+ TypeB29Enum["PROGRAM_ENROLLMENT_CONFIRMATION"] = "PROGRAM_ENROLLMENT_CONFIRMATION";
2251
+ TypeB29Enum["PROGRAM_INVITATION"] = "PROGRAM_INVITATION";
2252
+ TypeB29Enum["PROGRAM_LICENSE_ASSIGNMENT"] = "PROGRAM_LICENSE_ASSIGNMENT";
2253
+ TypeB29Enum["PROGRAM_LICENSE_GROUP_ASSIGNMENT"] = "PROGRAM_LICENSE_GROUP_ASSIGNMENT";
2254
+ TypeB29Enum["REPORT_COMPLETED"] = "REPORT_COMPLETED";
2255
+ TypeB29Enum["ROLE_CHANGE"] = "ROLE_CHANGE";
2256
+ TypeB29Enum["SKILL_MASTERY_CHANGE"] = "SKILL_MASTERY_CHANGE";
2257
+ TypeB29Enum["SUBSECTION_GRADE_UPDATE"] = "SUBSECTION_GRADE_UPDATE";
2258
+ TypeB29Enum["USER_LICENSE_ASSIGNMENT"] = "USER_LICENSE_ASSIGNMENT";
2259
+ TypeB29Enum["USER_LICENSE_GROUP_ASSIGNMENT"] = "USER_LICENSE_GROUP_ASSIGNMENT";
2260
+ TypeB29Enum["USER_NOTIF_COURSE_COMPLETION"] = "USER_NOTIF_COURSE_COMPLETION";
2261
+ TypeB29Enum["USER_NOTIF_COURSE_ENROLLMENT"] = "USER_NOTIF_COURSE_ENROLLMENT";
2262
+ TypeB29Enum["USER_NOTIF_CREDENTIALS"] = "USER_NOTIF_CREDENTIALS";
2263
+ TypeB29Enum["USER_NOTIF_LEARNER_PROGRESS"] = "USER_NOTIF_LEARNER_PROGRESS";
2264
+ TypeB29Enum["USER_NOTIF_USER_INACTIVITY"] = "USER_NOTIF_USER_INACTIVITY";
2265
+ TypeB29Enum["USER_NOTIF_USER_REGISTRATION"] = "USER_NOTIF_USER_REGISTRATION";
2266
+ })(exports.TypeB29Enum || (exports.TypeB29Enum = {}));
2189
2267
 
2190
2268
  /* generated using openapi-typescript-codegen -- do not edit */
2191
2269
  /* istanbul ignore file */
@@ -7473,343 +7551,1377 @@
7473
7551
  * @returns void
7474
7552
  * @throws ApiError
7475
7553
  */
7476
- static careerOrgsExperienceUsersDestroy({
7477
- org,
7478
- username
7554
+ static careerOrgsExperienceUsersDestroy({
7555
+ org,
7556
+ username
7557
+ }) {
7558
+ return request(OpenAPI, {
7559
+ method: 'DELETE',
7560
+ url: '/api/career/orgs/{org}/experience/users/{username}/',
7561
+ path: {
7562
+ 'org': org,
7563
+ 'username': username
7564
+ }
7565
+ });
7566
+ }
7567
+ /**
7568
+ * @returns Institution
7569
+ * @throws ApiError
7570
+ */
7571
+ static careerOrgsInstitutionsUsersRetrieve({
7572
+ org,
7573
+ username
7574
+ }) {
7575
+ return request(OpenAPI, {
7576
+ method: 'GET',
7577
+ url: '/api/career/orgs/{org}/institutions/users/{username}/',
7578
+ path: {
7579
+ 'org': org,
7580
+ 'username': username
7581
+ }
7582
+ });
7583
+ }
7584
+ /**
7585
+ * @returns Institution
7586
+ * @throws ApiError
7587
+ */
7588
+ static careerOrgsInstitutionsUsersCreate({
7589
+ org,
7590
+ username,
7591
+ requestBody
7592
+ }) {
7593
+ return request(OpenAPI, {
7594
+ method: 'POST',
7595
+ url: '/api/career/orgs/{org}/institutions/users/{username}/',
7596
+ path: {
7597
+ 'org': org,
7598
+ 'username': username
7599
+ },
7600
+ body: requestBody,
7601
+ mediaType: 'application/json'
7602
+ });
7603
+ }
7604
+ /**
7605
+ * @returns Institution
7606
+ * @throws ApiError
7607
+ */
7608
+ static careerOrgsInstitutionsUsersUpdate({
7609
+ org,
7610
+ username,
7611
+ requestBody
7612
+ }) {
7613
+ return request(OpenAPI, {
7614
+ method: 'PUT',
7615
+ url: '/api/career/orgs/{org}/institutions/users/{username}/',
7616
+ path: {
7617
+ 'org': org,
7618
+ 'username': username
7619
+ },
7620
+ body: requestBody,
7621
+ mediaType: 'application/json'
7622
+ });
7623
+ }
7624
+ /**
7625
+ * @returns void
7626
+ * @throws ApiError
7627
+ */
7628
+ static careerOrgsInstitutionsUsersDestroy({
7629
+ org,
7630
+ username
7631
+ }) {
7632
+ return request(OpenAPI, {
7633
+ method: 'DELETE',
7634
+ url: '/api/career/orgs/{org}/institutions/users/{username}/',
7635
+ path: {
7636
+ 'org': org,
7637
+ 'username': username
7638
+ }
7639
+ });
7640
+ }
7641
+ /**
7642
+ * @returns Program
7643
+ * @throws ApiError
7644
+ */
7645
+ static careerOrgsProgramsUsersRetrieve({
7646
+ org,
7647
+ username
7648
+ }) {
7649
+ return request(OpenAPI, {
7650
+ method: 'GET',
7651
+ url: '/api/career/orgs/{org}/programs/users/{username}/',
7652
+ path: {
7653
+ 'org': org,
7654
+ 'username': username
7655
+ }
7656
+ });
7657
+ }
7658
+ /**
7659
+ * @returns Program
7660
+ * @throws ApiError
7661
+ */
7662
+ static careerOrgsProgramsUsersCreate({
7663
+ org,
7664
+ username,
7665
+ requestBody
7666
+ }) {
7667
+ return request(OpenAPI, {
7668
+ method: 'POST',
7669
+ url: '/api/career/orgs/{org}/programs/users/{username}/',
7670
+ path: {
7671
+ 'org': org,
7672
+ 'username': username
7673
+ },
7674
+ body: requestBody,
7675
+ mediaType: 'application/json'
7676
+ });
7677
+ }
7678
+ /**
7679
+ * @returns Program
7680
+ * @throws ApiError
7681
+ */
7682
+ static careerOrgsProgramsUsersUpdate({
7683
+ org,
7684
+ username,
7685
+ requestBody
7686
+ }) {
7687
+ return request(OpenAPI, {
7688
+ method: 'PUT',
7689
+ url: '/api/career/orgs/{org}/programs/users/{username}/',
7690
+ path: {
7691
+ 'org': org,
7692
+ 'username': username
7693
+ },
7694
+ body: requestBody,
7695
+ mediaType: 'application/json'
7696
+ });
7697
+ }
7698
+ /**
7699
+ * @returns void
7700
+ * @throws ApiError
7701
+ */
7702
+ static careerOrgsProgramsUsersDestroy({
7703
+ org,
7704
+ username
7705
+ }) {
7706
+ return request(OpenAPI, {
7707
+ method: 'DELETE',
7708
+ url: '/api/career/orgs/{org}/programs/users/{username}/',
7709
+ path: {
7710
+ 'org': org,
7711
+ 'username': username
7712
+ }
7713
+ });
7714
+ }
7715
+ /**
7716
+ * @returns any No response body
7717
+ * @throws ApiError
7718
+ */
7719
+ static careerResumeOrgsUsersRetrieve({
7720
+ org,
7721
+ username
7722
+ }) {
7723
+ return request(OpenAPI, {
7724
+ method: 'GET',
7725
+ url: '/api/career/resume/orgs/{org}/users/{username}/',
7726
+ path: {
7727
+ 'org': org,
7728
+ 'username': username
7729
+ }
7730
+ });
7731
+ }
7732
+ /**
7733
+ * @returns any No response body
7734
+ * @throws ApiError
7735
+ */
7736
+ static careerResumeOrgsUsersCreate({
7737
+ org,
7738
+ username
7739
+ }) {
7740
+ return request(OpenAPI, {
7741
+ method: 'POST',
7742
+ url: '/api/career/resume/orgs/{org}/users/{username}/',
7743
+ path: {
7744
+ 'org': org,
7745
+ 'username': username
7746
+ }
7747
+ });
7748
+ }
7749
+ /**
7750
+ * @returns any No response body
7751
+ * @throws ApiError
7752
+ */
7753
+ static careerResumeOrgsUsersUpdate({
7754
+ org,
7755
+ username
7756
+ }) {
7757
+ return request(OpenAPI, {
7758
+ method: 'PUT',
7759
+ url: '/api/career/resume/orgs/{org}/users/{username}/',
7760
+ path: {
7761
+ 'org': org,
7762
+ 'username': username
7763
+ }
7764
+ });
7765
+ }
7766
+ }
7767
+
7768
+ class CatalogService {
7769
+ /**
7770
+ * Retrieve a paginated list of access requests
7771
+ * @returns PaginatedCourseAccessRequest
7772
+ * @throws ApiError
7773
+ */
7774
+ static catalogAccessRequestsCourseManageRetrieve({
7775
+ page,
7776
+ pageSize,
7777
+ platformKey,
7778
+ platformOrg,
7779
+ reviewed,
7780
+ sort = '-id'
7781
+ }) {
7782
+ return request(OpenAPI, {
7783
+ method: 'GET',
7784
+ url: '/api/catalog/access_requests/course/manage/',
7785
+ query: {
7786
+ 'page': page,
7787
+ 'page_size': pageSize,
7788
+ 'platform_key': platformKey,
7789
+ 'platform_org': platformOrg,
7790
+ 'reviewed': reviewed,
7791
+ 'sort': sort
7792
+ },
7793
+ errors: {
7794
+ 400: `Bad request - missing or invalid parameters`,
7795
+ 401: `Unauthorized`,
7796
+ 403: `Forbidden`,
7797
+ 404: `Not found - platform doesn't exist`,
7798
+ 500: `Internal server error`
7799
+ }
7800
+ });
7801
+ }
7802
+ /**
7803
+ * Update an existing access request (approve/reject)
7804
+ * @returns CourseAccessRequestDetail
7805
+ * @throws ApiError
7806
+ */
7807
+ static catalogAccessRequestsCourseManageCreate({
7808
+ requestBody,
7809
+ page,
7810
+ pageSize,
7811
+ platformKey,
7812
+ platformOrg,
7813
+ reviewed,
7814
+ sort = '-id'
7815
+ }) {
7816
+ return request(OpenAPI, {
7817
+ method: 'POST',
7818
+ url: '/api/catalog/access_requests/course/manage/',
7819
+ query: {
7820
+ 'page': page,
7821
+ 'page_size': pageSize,
7822
+ 'platform_key': platformKey,
7823
+ 'platform_org': platformOrg,
7824
+ 'reviewed': reviewed,
7825
+ 'sort': sort
7826
+ },
7827
+ body: requestBody,
7828
+ mediaType: 'application/json',
7829
+ errors: {
7830
+ 400: `Bad request - missing or invalid parameters`,
7831
+ 401: `Unauthorized`,
7832
+ 403: `Forbidden`,
7833
+ 404: `Not found - platform or access request doesn't exist`,
7834
+ 500: `Internal server error`
7835
+ }
7836
+ });
7837
+ }
7838
+ /**
7839
+ * Check if the user has an active access request for a course
7840
+ * @returns CourseAccessRequestStatusResponse
7841
+ * @throws ApiError
7842
+ */
7843
+ static catalogAccessRequestsCourseRequestRetrieve({
7844
+ courseId,
7845
+ platformKey,
7846
+ platformOrg
7847
+ }) {
7848
+ return request(OpenAPI, {
7849
+ method: 'GET',
7850
+ url: '/api/catalog/access_requests/course/request/',
7851
+ query: {
7852
+ 'course_id': courseId,
7853
+ 'platform_key': platformKey,
7854
+ 'platform_org': platformOrg
7855
+ },
7856
+ errors: {
7857
+ 400: `Bad request - missing or invalid parameters`,
7858
+ 401: `Unauthorized`,
7859
+ 403: `Forbidden`,
7860
+ 404: `Not found - platform or course doesn't exist`
7861
+ }
7862
+ });
7863
+ }
7864
+ /**
7865
+ * Create a new access request for a course
7866
+ * @returns CourseAccessRequestDetail
7867
+ * @throws ApiError
7868
+ */
7869
+ static catalogAccessRequestsCourseRequestCreate({
7870
+ courseId,
7871
+ requestBody,
7872
+ platformKey,
7873
+ platformOrg
7874
+ }) {
7875
+ return request(OpenAPI, {
7876
+ method: 'POST',
7877
+ url: '/api/catalog/access_requests/course/request/',
7878
+ query: {
7879
+ 'course_id': courseId,
7880
+ 'platform_key': platformKey,
7881
+ 'platform_org': platformOrg
7882
+ },
7883
+ body: requestBody,
7884
+ mediaType: 'application/json',
7885
+ errors: {
7886
+ 400: `Bad request - missing or invalid parameters`,
7887
+ 401: `Unauthorized`,
7888
+ 403: `Forbidden`,
7889
+ 404: `Not found - platform or course doesn't exist`,
7890
+ 500: `Internal server error`
7891
+ }
7892
+ });
7893
+ }
7894
+ /**
7895
+ * Authenticated applicants, including learners on AXD student tokens.
7896
+ *
7897
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
7898
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
7899
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
7900
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
7901
+ * @returns any Own submissions
7902
+ * @throws ApiError
7903
+ */
7904
+ static catalogApplicationsPlatformRetrieve({
7905
+ formId,
7906
+ platformKey,
7907
+ platformOrg
7908
+ }) {
7909
+ return request(OpenAPI, {
7910
+ method: 'GET',
7911
+ url: '/api/catalog/applications/platform/',
7912
+ query: {
7913
+ 'form_id': formId,
7914
+ 'platform_key': platformKey,
7915
+ 'platform_org': platformOrg
7916
+ }
7917
+ });
7918
+ }
7919
+ /**
7920
+ * Authenticated applicants, including learners on AXD student tokens.
7921
+ *
7922
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
7923
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
7924
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
7925
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
7926
+ * @returns PlatformApplicationDetail
7927
+ * @throws ApiError
7928
+ */
7929
+ static catalogApplicationsPlatformCreate({
7930
+ requestBody
7931
+ }) {
7932
+ return request(OpenAPI, {
7933
+ method: 'POST',
7934
+ url: '/api/catalog/applications/platform/',
7935
+ body: requestBody,
7936
+ mediaType: 'application/json'
7937
+ });
7938
+ }
7939
+ /**
7940
+ * Authenticated applicants, including learners on AXD student tokens.
7941
+ *
7942
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
7943
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
7944
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
7945
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
7946
+ * @returns PlatformApplicationDetail
7947
+ * @throws ApiError
7948
+ */
7949
+ static catalogApplicationsPlatformRetrieve2({
7950
+ submissionId
7951
+ }) {
7952
+ return request(OpenAPI, {
7953
+ method: 'GET',
7954
+ url: '/api/catalog/applications/platform/{submission_id}/',
7955
+ path: {
7956
+ 'submission_id': submissionId
7957
+ }
7958
+ });
7959
+ }
7960
+ /**
7961
+ * Authenticated applicants, including learners on AXD student tokens.
7962
+ *
7963
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
7964
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
7965
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
7966
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
7967
+ * @returns PlatformApplicationDetail
7968
+ * @throws ApiError
7969
+ */
7970
+ static catalogApplicationsPlatformPartialUpdate({
7971
+ submissionId,
7972
+ requestBody
7973
+ }) {
7974
+ return request(OpenAPI, {
7975
+ method: 'PATCH',
7976
+ url: '/api/catalog/applications/platform/{submission_id}/',
7977
+ path: {
7978
+ 'submission_id': submissionId
7979
+ },
7980
+ body: requestBody,
7981
+ mediaType: 'application/json'
7982
+ });
7983
+ }
7984
+ /**
7985
+ * Authenticated applicants, including learners on AXD student tokens.
7986
+ *
7987
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
7988
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
7989
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
7990
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
7991
+ * @returns any Attachment stored
7992
+ * @throws ApiError
7993
+ */
7994
+ static catalogApplicationsPlatformAttachmentsCreate({
7995
+ submissionId,
7996
+ formData
7997
+ }) {
7998
+ return request(OpenAPI, {
7999
+ method: 'POST',
8000
+ url: '/api/catalog/applications/platform/{submission_id}/attachments/',
8001
+ path: {
8002
+ 'submission_id': submissionId
8003
+ },
8004
+ formData: formData,
8005
+ mediaType: 'multipart/form-data'
8006
+ });
8007
+ }
8008
+ /**
8009
+ * Authenticated applicants, including learners on AXD student tokens.
8010
+ *
8011
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
8012
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
8013
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
8014
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
8015
+ * @returns void
8016
+ * @throws ApiError
8017
+ */
8018
+ static catalogApplicationsPlatformAttachmentsDestroy({
8019
+ attachmentId,
8020
+ submissionId
8021
+ }) {
8022
+ return request(OpenAPI, {
8023
+ method: 'DELETE',
8024
+ url: '/api/catalog/applications/platform/{submission_id}/attachments/{attachment_id}/',
8025
+ path: {
8026
+ 'attachment_id': attachmentId,
8027
+ 'submission_id': submissionId
8028
+ }
8029
+ });
8030
+ }
8031
+ /**
8032
+ * Authenticated applicants, including learners on AXD student tokens.
8033
+ *
8034
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
8035
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
8036
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
8037
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
8038
+ * @returns PlatformApplicationDetail
8039
+ * @throws ApiError
8040
+ */
8041
+ static catalogApplicationsPlatformSubmitCreate({
8042
+ submissionId,
8043
+ requestBody
8044
+ }) {
8045
+ return request(OpenAPI, {
8046
+ method: 'POST',
8047
+ url: '/api/catalog/applications/platform/{submission_id}/submit/',
8048
+ path: {
8049
+ 'submission_id': submissionId
8050
+ },
8051
+ body: requestBody,
8052
+ mediaType: 'application/json'
8053
+ });
8054
+ }
8055
+ /**
8056
+ * Authenticated applicants, including learners on AXD student tokens.
8057
+ *
8058
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
8059
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
8060
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
8061
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
8062
+ * @returns PlatformApplicationDetail
8063
+ * @throws ApiError
8064
+ */
8065
+ static catalogApplicationsPlatformWithdrawCreate({
8066
+ submissionId
8067
+ }) {
8068
+ return request(OpenAPI, {
8069
+ method: 'POST',
8070
+ url: '/api/catalog/applications/platform/{submission_id}/withdraw/',
8071
+ path: {
8072
+ 'submission_id': submissionId
8073
+ }
8074
+ });
8075
+ }
8076
+ /**
8077
+ * Authenticated applicants, including learners on AXD student tokens.
8078
+ *
8079
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
8080
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
8081
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
8082
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
8083
+ * @returns any Active form
8084
+ * @throws ApiError
8085
+ */
8086
+ static catalogApplicationsPlatformFormRetrieve({
8087
+ formId,
8088
+ platformKey,
8089
+ platformOrg
8090
+ }) {
8091
+ return request(OpenAPI, {
8092
+ method: 'GET',
8093
+ url: '/api/catalog/applications/platform/form/',
8094
+ query: {
8095
+ 'form_id': formId,
8096
+ 'platform_key': platformKey,
8097
+ 'platform_org': platformOrg
8098
+ }
8099
+ });
8100
+ }
8101
+ /**
8102
+ * Wires RBAC into a DRF view.
8103
+ *
8104
+ * Two responsibilities:
8105
+ *
8106
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8107
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8108
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8109
+ * views that set `token_policies_enabled = True`).
8110
+ *
8111
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8112
+ * Server-to-server tokens authenticate as Django auth users with no
8113
+ * relationship to a platform EdxUser. The convention is "we trust this
8114
+ * caller — bypass RBAC and serve the request."
8115
+ *
8116
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8117
+ * the early exit skips all RBAC prep work:
8118
+ *
8119
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8120
+ * return
8121
+ *
8122
+ * Use `is_service_account` at any other touch points where caller
8123
+ * identity matters (queryset ownership filters, owner attribution on
8124
+ * create, serializer context, etc.).
8125
+ * @returns any Forms for the platform
8126
+ * @throws ApiError
8127
+ */
8128
+ static catalogApplicationsPlatformFormsManageRetrieve({
8129
+ platformKey,
8130
+ platformOrg,
8131
+ sort
8132
+ }) {
8133
+ return request(OpenAPI, {
8134
+ method: 'GET',
8135
+ url: '/api/catalog/applications/platform/forms/manage/',
8136
+ query: {
8137
+ 'platform_key': platformKey,
8138
+ 'platform_org': platformOrg,
8139
+ 'sort': sort
8140
+ }
8141
+ });
8142
+ }
8143
+ /**
8144
+ * Wires RBAC into a DRF view.
8145
+ *
8146
+ * Two responsibilities:
8147
+ *
8148
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8149
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8150
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8151
+ * views that set `token_policies_enabled = True`).
8152
+ *
8153
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8154
+ * Server-to-server tokens authenticate as Django auth users with no
8155
+ * relationship to a platform EdxUser. The convention is "we trust this
8156
+ * caller — bypass RBAC and serve the request."
8157
+ *
8158
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8159
+ * the early exit skips all RBAC prep work:
8160
+ *
8161
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8162
+ * return
8163
+ *
8164
+ * Use `is_service_account` at any other touch points where caller
8165
+ * identity matters (queryset ownership filters, owner attribution on
8166
+ * create, serializer context, etc.).
8167
+ * @returns PlatformApplicationFormDetail
8168
+ * @throws ApiError
8169
+ */
8170
+ static catalogApplicationsPlatformFormsManageCreate({
8171
+ requestBody,
8172
+ platformKey,
8173
+ platformOrg,
8174
+ sort
8175
+ }) {
8176
+ return request(OpenAPI, {
8177
+ method: 'POST',
8178
+ url: '/api/catalog/applications/platform/forms/manage/',
8179
+ query: {
8180
+ 'platform_key': platformKey,
8181
+ 'platform_org': platformOrg,
8182
+ 'sort': sort
8183
+ },
8184
+ body: requestBody,
8185
+ mediaType: 'application/json'
8186
+ });
8187
+ }
8188
+ /**
8189
+ * Wires RBAC into a DRF view.
8190
+ *
8191
+ * Two responsibilities:
8192
+ *
8193
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8194
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8195
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8196
+ * views that set `token_policies_enabled = True`).
8197
+ *
8198
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8199
+ * Server-to-server tokens authenticate as Django auth users with no
8200
+ * relationship to a platform EdxUser. The convention is "we trust this
8201
+ * caller — bypass RBAC and serve the request."
8202
+ *
8203
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8204
+ * the early exit skips all RBAC prep work:
8205
+ *
8206
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8207
+ * return
8208
+ *
8209
+ * Use `is_service_account` at any other touch points where caller
8210
+ * identity matters (queryset ownership filters, owner attribution on
8211
+ * create, serializer context, etc.).
8212
+ * @returns PlatformApplicationFormDetail
8213
+ * @throws ApiError
8214
+ */
8215
+ static catalogApplicationsPlatformFormsManageRetrieve2({
8216
+ formId,
8217
+ platformKey,
8218
+ platformOrg,
8219
+ sort
8220
+ }) {
8221
+ return request(OpenAPI, {
8222
+ method: 'GET',
8223
+ url: '/api/catalog/applications/platform/forms/manage/{form_id}/',
8224
+ path: {
8225
+ 'form_id': formId
8226
+ },
8227
+ query: {
8228
+ 'platform_key': platformKey,
8229
+ 'platform_org': platformOrg,
8230
+ 'sort': sort
8231
+ }
8232
+ });
8233
+ }
8234
+ /**
8235
+ * Wires RBAC into a DRF view.
8236
+ *
8237
+ * Two responsibilities:
8238
+ *
8239
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8240
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8241
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8242
+ * views that set `token_policies_enabled = True`).
8243
+ *
8244
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8245
+ * Server-to-server tokens authenticate as Django auth users with no
8246
+ * relationship to a platform EdxUser. The convention is "we trust this
8247
+ * caller — bypass RBAC and serve the request."
8248
+ *
8249
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8250
+ * the early exit skips all RBAC prep work:
8251
+ *
8252
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8253
+ * return
8254
+ *
8255
+ * Use `is_service_account` at any other touch points where caller
8256
+ * identity matters (queryset ownership filters, owner attribution on
8257
+ * create, serializer context, etc.).
8258
+ * @returns PlatformApplicationFormDetail
8259
+ * @throws ApiError
8260
+ */
8261
+ static catalogApplicationsPlatformFormsManagePartialUpdate({
8262
+ formId,
8263
+ platformKey,
8264
+ platformOrg,
8265
+ sort,
8266
+ requestBody
8267
+ }) {
8268
+ return request(OpenAPI, {
8269
+ method: 'PATCH',
8270
+ url: '/api/catalog/applications/platform/forms/manage/{form_id}/',
8271
+ path: {
8272
+ 'form_id': formId
8273
+ },
8274
+ query: {
8275
+ 'platform_key': platformKey,
8276
+ 'platform_org': platformOrg,
8277
+ 'sort': sort
8278
+ },
8279
+ body: requestBody,
8280
+ mediaType: 'application/json'
8281
+ });
8282
+ }
8283
+ /**
8284
+ * Wires RBAC into a DRF view.
8285
+ *
8286
+ * Two responsibilities:
8287
+ *
8288
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8289
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8290
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8291
+ * views that set `token_policies_enabled = True`).
8292
+ *
8293
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8294
+ * Server-to-server tokens authenticate as Django auth users with no
8295
+ * relationship to a platform EdxUser. The convention is "we trust this
8296
+ * caller — bypass RBAC and serve the request."
8297
+ *
8298
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8299
+ * the early exit skips all RBAC prep work:
8300
+ *
8301
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8302
+ * return
8303
+ *
8304
+ * Use `is_service_account` at any other touch points where caller
8305
+ * identity matters (queryset ownership filters, owner attribution on
8306
+ * create, serializer context, etc.).
8307
+ * @returns any Submissions for the platform
8308
+ * @throws ApiError
8309
+ */
8310
+ static catalogApplicationsPlatformManageRetrieve({
8311
+ platformKey,
8312
+ platformOrg,
8313
+ search,
8314
+ sort,
8315
+ status
8316
+ }) {
8317
+ return request(OpenAPI, {
8318
+ method: 'GET',
8319
+ url: '/api/catalog/applications/platform/manage/',
8320
+ query: {
8321
+ 'platform_key': platformKey,
8322
+ 'platform_org': platformOrg,
8323
+ 'search': search,
8324
+ 'sort': sort,
8325
+ 'status': status
8326
+ }
8327
+ });
8328
+ }
8329
+ /**
8330
+ * Wires RBAC into a DRF view.
8331
+ *
8332
+ * Two responsibilities:
8333
+ *
8334
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8335
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8336
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8337
+ * views that set `token_policies_enabled = True`).
8338
+ *
8339
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8340
+ * Server-to-server tokens authenticate as Django auth users with no
8341
+ * relationship to a platform EdxUser. The convention is "we trust this
8342
+ * caller — bypass RBAC and serve the request."
8343
+ *
8344
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8345
+ * the early exit skips all RBAC prep work:
8346
+ *
8347
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8348
+ * return
8349
+ *
8350
+ * Use `is_service_account` at any other touch points where caller
8351
+ * identity matters (queryset ownership filters, owner attribution on
8352
+ * create, serializer context, etc.).
8353
+ * @returns any Full submission detail
8354
+ * @throws ApiError
8355
+ */
8356
+ static catalogApplicationsPlatformManageRetrieve2({
8357
+ submissionId,
8358
+ platformKey,
8359
+ platformOrg,
8360
+ search,
8361
+ sort,
8362
+ status
8363
+ }) {
8364
+ return request(OpenAPI, {
8365
+ method: 'GET',
8366
+ url: '/api/catalog/applications/platform/manage/{submission_id}/',
8367
+ path: {
8368
+ 'submission_id': submissionId
8369
+ },
8370
+ query: {
8371
+ 'platform_key': platformKey,
8372
+ 'platform_org': platformOrg,
8373
+ 'search': search,
8374
+ 'sort': sort,
8375
+ 'status': status
8376
+ }
8377
+ });
8378
+ }
8379
+ /**
8380
+ * Reviewer download: redirect to the storage's (signed, on S3) file URL.
8381
+ *
8382
+ * Gated by ``IsDMAdmin | IsPlatformAdmin`` plus the RBAC verb check on the
8383
+ * attachment's own platform when RBAC is enabled.
8384
+ * @returns void
8385
+ * @throws ApiError
8386
+ */
8387
+ static catalogApplicationsPlatformManageAttachmentsDownloadRetrieve({
8388
+ attachmentId,
8389
+ submissionId
8390
+ }) {
8391
+ return request(OpenAPI, {
8392
+ method: 'GET',
8393
+ url: '/api/catalog/applications/platform/manage/{submission_id}/attachments/{attachment_id}/download/',
8394
+ path: {
8395
+ 'attachment_id': attachmentId,
8396
+ 'submission_id': submissionId
8397
+ },
8398
+ errors: {
8399
+ 302: `Redirect to the file URL`
8400
+ }
8401
+ });
8402
+ }
8403
+ /**
8404
+ * Re-run settlement provisioning for one accepted candidate: links them
8405
+ * if an account with their designated email now exists, or re-issues the
8406
+ * platform invitation if none is active. Covers the invite-missing state.
8407
+ * @returns any Candidate after provisioning
8408
+ * @throws ApiError
8409
+ */
8410
+ static catalogApplicationsPlatformManageCandidatesInviteCreate({
8411
+ candidateId,
8412
+ submissionId
8413
+ }) {
8414
+ return request(OpenAPI, {
8415
+ method: 'POST',
8416
+ url: '/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/invite/',
8417
+ path: {
8418
+ 'candidate_id': candidateId,
8419
+ 'submission_id': submissionId
8420
+ }
8421
+ });
8422
+ }
8423
+ /**
8424
+ * Manually link an accepted candidate to an existing account (the
8425
+ * account-unlinked state: the family signed up outside invitation
8426
+ * redemption, or under a different email than designated).
8427
+ * @returns any Candidate linked
8428
+ * @throws ApiError
8429
+ */
8430
+ static catalogApplicationsPlatformManageCandidatesLinkCreate({
8431
+ candidateId,
8432
+ submissionId,
8433
+ requestBody
8434
+ }) {
8435
+ return request(OpenAPI, {
8436
+ method: 'POST',
8437
+ url: '/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/link/',
8438
+ path: {
8439
+ 'candidate_id': candidateId,
8440
+ 'submission_id': submissionId
8441
+ },
8442
+ body: requestBody,
8443
+ mediaType: 'application/json'
8444
+ });
8445
+ }
8446
+ /**
8447
+ * Course assignments for a submission (#2134): list, and assign courses to
8448
+ * accepted candidates individually or in bulk. Each successful item issues a
8449
+ * CourseInvitation that the existing pipeline enrolls.
8450
+ * @returns any Assignments for the submission
8451
+ * @throws ApiError
8452
+ */
8453
+ static catalogApplicationsPlatformManageCourseAssignmentsRetrieve({
8454
+ submissionId
8455
+ }) {
8456
+ return request(OpenAPI, {
8457
+ method: 'GET',
8458
+ url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/',
8459
+ path: {
8460
+ 'submission_id': submissionId
8461
+ }
8462
+ });
8463
+ }
8464
+ /**
8465
+ * Course assignments for a submission (#2134): list, and assign courses to
8466
+ * accepted candidates individually or in bulk. Each successful item issues a
8467
+ * CourseInvitation that the existing pipeline enrolls.
8468
+ * @returns any Per-item assignment results
8469
+ * @throws ApiError
8470
+ */
8471
+ static catalogApplicationsPlatformManageCourseAssignmentsCreate({
8472
+ submissionId,
8473
+ requestBody
8474
+ }) {
8475
+ return request(OpenAPI, {
8476
+ method: 'POST',
8477
+ url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/',
8478
+ path: {
8479
+ 'submission_id': submissionId
8480
+ },
8481
+ body: requestBody,
8482
+ mediaType: 'application/json'
8483
+ });
8484
+ }
8485
+ /**
8486
+ * Remove one course assignment (§9.2 "enrollment changes after the school
8487
+ * year begins" — the record side).
8488
+ *
8489
+ * Deactivates the assignment and cancels its invitation when the student has
8490
+ * not yet been enrolled through it. It never unenrolls an already-enrolled
8491
+ * student: platform admins un-enroll deliberately through the catalog
8492
+ * enrollment endpoints, not from an admissions record.
8493
+ * @returns void
8494
+ * @throws ApiError
8495
+ */
8496
+ static catalogApplicationsPlatformManageCourseAssignmentsDestroy({
8497
+ assignmentId,
8498
+ submissionId
8499
+ }) {
8500
+ return request(OpenAPI, {
8501
+ method: 'DELETE',
8502
+ url: '/api/catalog/applications/platform/manage/{submission_id}/course-assignments/{assignment_id}/',
8503
+ path: {
8504
+ 'assignment_id': assignmentId,
8505
+ 'submission_id': submissionId
8506
+ }
8507
+ });
8508
+ }
8509
+ /**
8510
+ * Reviewer/admin view of a submission's application fee (#2132, §5).
8511
+ *
8512
+ * GET returns the charge and its event history; POST records an out-of-band
8513
+ * payment or a waiver/refund/credit. Money collection through Stripe is a
8514
+ * later segment; this is the domain side.
8515
+ * @returns any Charge + events
8516
+ * @throws ApiError
8517
+ */
8518
+ static catalogApplicationsPlatformManageFeeRetrieve({
8519
+ submissionId
8520
+ }) {
8521
+ return request(OpenAPI, {
8522
+ method: 'GET',
8523
+ url: '/api/catalog/applications/platform/manage/{submission_id}/fee/',
8524
+ path: {
8525
+ 'submission_id': submissionId
8526
+ }
8527
+ });
8528
+ }
8529
+ /**
8530
+ * Reviewer/admin view of a submission's application fee (#2132, §5).
8531
+ *
8532
+ * GET returns the charge and its event history; POST records an out-of-band
8533
+ * payment or a waiver/refund/credit. Money collection through Stripe is a
8534
+ * later segment; this is the domain side.
8535
+ * @returns any Charge updated
8536
+ * @throws ApiError
8537
+ */
8538
+ static catalogApplicationsPlatformManageFeeCreate({
8539
+ submissionId,
8540
+ requestBody
7479
8541
  }) {
7480
8542
  return request(OpenAPI, {
7481
- method: 'DELETE',
7482
- url: '/api/career/orgs/{org}/experience/users/{username}/',
8543
+ method: 'POST',
8544
+ url: '/api/catalog/applications/platform/manage/{submission_id}/fee/',
7483
8545
  path: {
7484
- 'org': org,
7485
- 'username': username
7486
- }
8546
+ 'submission_id': submissionId
8547
+ },
8548
+ body: requestBody,
8549
+ mediaType: 'application/json'
7487
8550
  });
7488
8551
  }
7489
8552
  /**
7490
- * @returns Institution
8553
+ * Internal reviewer notes on a submission (#2089, §6). Never surfaced on
8554
+ * applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
8555
+ * @returns any Notes for the submission
7491
8556
  * @throws ApiError
7492
8557
  */
7493
- static careerOrgsInstitutionsUsersRetrieve({
7494
- org,
7495
- username
8558
+ static catalogApplicationsPlatformManageNotesRetrieve({
8559
+ submissionId,
8560
+ platformKey,
8561
+ platformOrg,
8562
+ search,
8563
+ sort,
8564
+ status
7496
8565
  }) {
7497
8566
  return request(OpenAPI, {
7498
8567
  method: 'GET',
7499
- url: '/api/career/orgs/{org}/institutions/users/{username}/',
8568
+ url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
7500
8569
  path: {
7501
- 'org': org,
7502
- 'username': username
8570
+ 'submission_id': submissionId
8571
+ },
8572
+ query: {
8573
+ 'platform_key': platformKey,
8574
+ 'platform_org': platformOrg,
8575
+ 'search': search,
8576
+ 'sort': sort,
8577
+ 'status': status
7503
8578
  }
7504
8579
  });
7505
8580
  }
7506
8581
  /**
7507
- * @returns Institution
8582
+ * Internal reviewer notes on a submission (#2089, §6). Never surfaced on
8583
+ * applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
8584
+ * @returns any Note created
7508
8585
  * @throws ApiError
7509
8586
  */
7510
- static careerOrgsInstitutionsUsersCreate({
7511
- org,
7512
- username,
8587
+ static catalogApplicationsPlatformManageNotesCreate({
8588
+ submissionId,
7513
8589
  requestBody
7514
8590
  }) {
7515
8591
  return request(OpenAPI, {
7516
8592
  method: 'POST',
7517
- url: '/api/career/orgs/{org}/institutions/users/{username}/',
8593
+ url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
7518
8594
  path: {
7519
- 'org': org,
7520
- 'username': username
8595
+ 'submission_id': submissionId
7521
8596
  },
7522
8597
  body: requestBody,
7523
8598
  mediaType: 'application/json'
7524
8599
  });
7525
8600
  }
7526
8601
  /**
7527
- * @returns Institution
8602
+ * Edit or remove a single internal reviewer note.
8603
+ * @returns any Note updated
7528
8604
  * @throws ApiError
7529
8605
  */
7530
- static careerOrgsInstitutionsUsersUpdate({
7531
- org,
7532
- username,
8606
+ static catalogApplicationsPlatformManageNotesPartialUpdate({
8607
+ noteId,
8608
+ submissionId,
7533
8609
  requestBody
7534
8610
  }) {
7535
8611
  return request(OpenAPI, {
7536
- method: 'PUT',
7537
- url: '/api/career/orgs/{org}/institutions/users/{username}/',
8612
+ method: 'PATCH',
8613
+ url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
7538
8614
  path: {
7539
- 'org': org,
7540
- 'username': username
8615
+ 'note_id': noteId,
8616
+ 'submission_id': submissionId
7541
8617
  },
7542
8618
  body: requestBody,
7543
8619
  mediaType: 'application/json'
7544
8620
  });
7545
8621
  }
7546
8622
  /**
8623
+ * Edit or remove a single internal reviewer note.
7547
8624
  * @returns void
7548
8625
  * @throws ApiError
7549
8626
  */
7550
- static careerOrgsInstitutionsUsersDestroy({
7551
- org,
7552
- username
8627
+ static catalogApplicationsPlatformManageNotesDestroy({
8628
+ noteId,
8629
+ submissionId
7553
8630
  }) {
7554
8631
  return request(OpenAPI, {
7555
8632
  method: 'DELETE',
7556
- url: '/api/career/orgs/{org}/institutions/users/{username}/',
8633
+ url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
7557
8634
  path: {
7558
- 'org': org,
7559
- 'username': username
8635
+ 'note_id': noteId,
8636
+ 'submission_id': submissionId
7560
8637
  }
7561
8638
  });
7562
8639
  }
7563
8640
  /**
7564
- * @returns Program
8641
+ * Placements for a submission (#2133): list, and assign a new placement
8642
+ * linking an accepted candidate to the placement mentor.
8643
+ * @returns any Placements for the submission
7565
8644
  * @throws ApiError
7566
8645
  */
7567
- static careerOrgsProgramsUsersRetrieve({
7568
- org,
7569
- username
8646
+ static catalogApplicationsPlatformManagePlacementsRetrieve({
8647
+ submissionId
7570
8648
  }) {
7571
8649
  return request(OpenAPI, {
7572
8650
  method: 'GET',
7573
- url: '/api/career/orgs/{org}/programs/users/{username}/',
8651
+ url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
7574
8652
  path: {
7575
- 'org': org,
7576
- 'username': username
8653
+ 'submission_id': submissionId
7577
8654
  }
7578
8655
  });
7579
8656
  }
7580
8657
  /**
7581
- * @returns Program
8658
+ * Placements for a submission (#2133): list, and assign a new placement
8659
+ * linking an accepted candidate to the placement mentor.
8660
+ * @returns any Per-item placement results
7582
8661
  * @throws ApiError
7583
8662
  */
7584
- static careerOrgsProgramsUsersCreate({
7585
- org,
7586
- username,
8663
+ static catalogApplicationsPlatformManagePlacementsCreate({
8664
+ submissionId,
7587
8665
  requestBody
7588
8666
  }) {
7589
8667
  return request(OpenAPI, {
7590
8668
  method: 'POST',
7591
- url: '/api/career/orgs/{org}/programs/users/{username}/',
8669
+ url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
7592
8670
  path: {
7593
- 'org': org,
7594
- 'username': username
8671
+ 'submission_id': submissionId
7595
8672
  },
7596
8673
  body: requestBody,
7597
8674
  mediaType: 'application/json'
7598
8675
  });
7599
8676
  }
7600
8677
  /**
7601
- * @returns Program
8678
+ * Advance a single placement: status, the agent's result, admin override.
8679
+ * @returns any Placement updated
7602
8680
  * @throws ApiError
7603
8681
  */
7604
- static careerOrgsProgramsUsersUpdate({
7605
- org,
7606
- username,
8682
+ static catalogApplicationsPlatformManagePlacementsPartialUpdate({
8683
+ placementId,
8684
+ submissionId,
7607
8685
  requestBody
7608
8686
  }) {
7609
8687
  return request(OpenAPI, {
7610
- method: 'PUT',
7611
- url: '/api/career/orgs/{org}/programs/users/{username}/',
8688
+ method: 'PATCH',
8689
+ url: '/api/catalog/applications/platform/manage/{submission_id}/placements/{placement_id}/',
7612
8690
  path: {
7613
- 'org': org,
7614
- 'username': username
8691
+ 'placement_id': placementId,
8692
+ 'submission_id': submissionId
7615
8693
  },
7616
8694
  body: requestBody,
7617
8695
  mediaType: 'application/json'
7618
8696
  });
7619
8697
  }
7620
8698
  /**
7621
- * @returns void
8699
+ * Admin submit-with-exceptions (§2.1 "administratively waived"): push a
8700
+ * family's editable application to Submitted, recording a waiver for every
8701
+ * required item still missing and bypassing an unpaid fee gate (the charge
8702
+ * stays payable/waivable). Present-but-invalid answers still block (400).
8703
+ * @returns any Application submitted
7622
8704
  * @throws ApiError
7623
8705
  */
7624
- static careerOrgsProgramsUsersDestroy({
7625
- org,
7626
- username
8706
+ static catalogApplicationsPlatformManageSubmitCreate({
8707
+ submissionId,
8708
+ requestBody
7627
8709
  }) {
7628
8710
  return request(OpenAPI, {
7629
- method: 'DELETE',
7630
- url: '/api/career/orgs/{org}/programs/users/{username}/',
8711
+ method: 'POST',
8712
+ url: '/api/catalog/applications/platform/manage/{submission_id}/submit/',
7631
8713
  path: {
7632
- 'org': org,
7633
- 'username': username
7634
- }
8714
+ 'submission_id': submissionId
8715
+ },
8716
+ body: requestBody,
8717
+ mediaType: 'application/json'
7635
8718
  });
7636
8719
  }
7637
8720
  /**
7638
- * @returns any No response body
8721
+ * Advance a submission or a single candidate through the review pipeline
8722
+ * (#2089, §5-6). A ``candidate_id`` scopes the action to one person; without
8723
+ * it the action applies to every candidate that can legally accept it. When
8724
+ * ``action`` is ``decline`` and ``block`` is set, the applicant is also added
8725
+ * to the platform ban-list (deny-with-block).
8726
+ * @returns any Updated submission detail
7639
8727
  * @throws ApiError
7640
8728
  */
7641
- static careerResumeOrgsUsersRetrieve({
7642
- org,
7643
- username
8729
+ static catalogApplicationsPlatformManageTransitionCreate({
8730
+ submissionId,
8731
+ requestBody
7644
8732
  }) {
7645
8733
  return request(OpenAPI, {
7646
- method: 'GET',
7647
- url: '/api/career/resume/orgs/{org}/users/{username}/',
8734
+ method: 'POST',
8735
+ url: '/api/catalog/applications/platform/manage/{submission_id}/transition/',
7648
8736
  path: {
7649
- 'org': org,
7650
- 'username': username
7651
- }
8737
+ 'submission_id': submissionId
8738
+ },
8739
+ body: requestBody,
8740
+ mediaType: 'application/json'
7652
8741
  });
7653
8742
  }
7654
8743
  /**
7655
- * @returns any No response body
8744
+ * Waive a required item on one application (§2.1 "administratively
8745
+ * waived"): POST excuses a missing required field so it no longer blocks
8746
+ * submission; DELETE reinstates it. Waivers excuse absence only — a
8747
+ * present-but-invalid answer still blocks. The fee is waived through its own
8748
+ * fee endpoint action, which also settles the money record.
8749
+ * @returns any Waiver recorded
7656
8750
  * @throws ApiError
7657
8751
  */
7658
- static careerResumeOrgsUsersCreate({
7659
- org,
7660
- username
8752
+ static catalogApplicationsPlatformManageWaiversCreate({
8753
+ submissionId,
8754
+ requestBody
7661
8755
  }) {
7662
8756
  return request(OpenAPI, {
7663
8757
  method: 'POST',
7664
- url: '/api/career/resume/orgs/{org}/users/{username}/',
8758
+ url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
7665
8759
  path: {
7666
- 'org': org,
7667
- 'username': username
7668
- }
8760
+ 'submission_id': submissionId
8761
+ },
8762
+ body: requestBody,
8763
+ mediaType: 'application/json'
7669
8764
  });
7670
8765
  }
7671
8766
  /**
7672
- * @returns any No response body
8767
+ * Waive a required item on one application (§2.1 "administratively
8768
+ * waived"): POST excuses a missing required field so it no longer blocks
8769
+ * submission; DELETE reinstates it. Waivers excuse absence only — a
8770
+ * present-but-invalid answer still blocks. The fee is waived through its own
8771
+ * fee endpoint action, which also settles the money record.
8772
+ * @returns void
7673
8773
  * @throws ApiError
7674
8774
  */
7675
- static careerResumeOrgsUsersUpdate({
7676
- org,
7677
- username
8775
+ static catalogApplicationsPlatformManageWaiversDestroy({
8776
+ submissionId
7678
8777
  }) {
7679
8778
  return request(OpenAPI, {
7680
- method: 'PUT',
7681
- url: '/api/career/resume/orgs/{org}/users/{username}/',
8779
+ method: 'DELETE',
8780
+ url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
7682
8781
  path: {
7683
- 'org': org,
7684
- 'username': username
8782
+ 'submission_id': submissionId
7685
8783
  }
7686
8784
  });
7687
8785
  }
7688
- }
7689
-
7690
- class CatalogService {
7691
8786
  /**
7692
- * Retrieve a paginated list of access requests
7693
- * @returns PaginatedCourseAccessRequest
8787
+ * List the active application blocks (ban-list) for a platform.
8788
+ * @returns any Active blocks
7694
8789
  * @throws ApiError
7695
8790
  */
7696
- static catalogAccessRequestsCourseManageRetrieve({
7697
- page,
7698
- pageSize,
8791
+ static catalogApplicationsPlatformManageBlocksRetrieve({
7699
8792
  platformKey,
7700
8793
  platformOrg,
7701
- reviewed,
7702
- sort = '-id'
8794
+ search,
8795
+ sort,
8796
+ status
7703
8797
  }) {
7704
8798
  return request(OpenAPI, {
7705
8799
  method: 'GET',
7706
- url: '/api/catalog/access_requests/course/manage/',
8800
+ url: '/api/catalog/applications/platform/manage/blocks/',
7707
8801
  query: {
7708
- 'page': page,
7709
- 'page_size': pageSize,
7710
8802
  'platform_key': platformKey,
7711
8803
  'platform_org': platformOrg,
7712
- 'reviewed': reviewed,
7713
- 'sort': sort
7714
- },
7715
- errors: {
7716
- 400: `Bad request - missing or invalid parameters`,
7717
- 401: `Unauthorized`,
7718
- 403: `Forbidden`,
7719
- 404: `Not found - platform doesn't exist`,
7720
- 500: `Internal server error`
8804
+ 'search': search,
8805
+ 'sort': sort,
8806
+ 'status': status
7721
8807
  }
7722
8808
  });
7723
8809
  }
7724
8810
  /**
7725
- * Update an existing access request (approve/reject)
7726
- * @returns CourseAccessRequestDetail
8811
+ * Lift a single active application block (unblock).
8812
+ * @returns void
7727
8813
  * @throws ApiError
7728
8814
  */
7729
- static catalogAccessRequestsCourseManageCreate({
7730
- requestBody,
7731
- page,
7732
- pageSize,
8815
+ static catalogApplicationsPlatformManageBlocksDestroy({
8816
+ blockId,
7733
8817
  platformKey,
7734
8818
  platformOrg,
7735
- reviewed,
7736
- sort = '-id'
8819
+ search,
8820
+ sort,
8821
+ status
7737
8822
  }) {
7738
8823
  return request(OpenAPI, {
7739
- method: 'POST',
7740
- url: '/api/catalog/access_requests/course/manage/',
8824
+ method: 'DELETE',
8825
+ url: '/api/catalog/applications/platform/manage/blocks/{block_id}/',
8826
+ path: {
8827
+ 'block_id': blockId
8828
+ },
7741
8829
  query: {
7742
- 'page': page,
7743
- 'page_size': pageSize,
7744
8830
  'platform_key': platformKey,
7745
8831
  'platform_org': platformOrg,
7746
- 'reviewed': reviewed,
7747
- 'sort': sort
7748
- },
7749
- body: requestBody,
7750
- mediaType: 'application/json',
7751
- errors: {
7752
- 400: `Bad request - missing or invalid parameters`,
7753
- 401: `Unauthorized`,
7754
- 403: `Forbidden`,
7755
- 404: `Not found - platform or access request doesn't exist`,
7756
- 500: `Internal server error`
8832
+ 'search': search,
8833
+ 'sort': sort,
8834
+ 'status': status
7757
8835
  }
7758
8836
  });
7759
8837
  }
7760
8838
  /**
7761
- * Check if the user has an active access request for a course
7762
- * @returns CourseAccessRequestStatusResponse
8839
+ * Wires RBAC into a DRF view.
8840
+ *
8841
+ * Two responsibilities:
8842
+ *
8843
+ * 1. When RBAC is enabled, replace the view's `permission_classes` with
8844
+ * `RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
8845
+ * semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
8846
+ * views that set `token_policies_enabled = True`).
8847
+ *
8848
+ * 2. Detect server-to-server (Django auth) callers via `is_service_account`.
8849
+ * Server-to-server tokens authenticate as Django auth users with no
8850
+ * relationship to a platform EdxUser. The convention is "we trust this
8851
+ * caller — bypass RBAC and serve the request."
8852
+ *
8853
+ * Combine it with the RBAC-disabled check at the top of `initial()` so
8854
+ * the early exit skips all RBAC prep work:
8855
+ *
8856
+ * if not ConfigFlags.rbac_enabled() or self.is_service_account:
8857
+ * return
8858
+ *
8859
+ * Use `is_service_account` at any other touch points where caller
8860
+ * identity matters (queryset ownership filters, owner attribution on
8861
+ * create, serializer context, etc.).
8862
+ * @returns any Per-status counts
7763
8863
  * @throws ApiError
7764
8864
  */
7765
- static catalogAccessRequestsCourseRequestRetrieve({
7766
- courseId,
8865
+ static catalogApplicationsPlatformManageStatsRetrieve({
7767
8866
  platformKey,
7768
- platformOrg
8867
+ platformOrg,
8868
+ search,
8869
+ sort,
8870
+ status
7769
8871
  }) {
7770
8872
  return request(OpenAPI, {
7771
8873
  method: 'GET',
7772
- url: '/api/catalog/access_requests/course/request/',
8874
+ url: '/api/catalog/applications/platform/manage/stats/',
7773
8875
  query: {
7774
- 'course_id': courseId,
7775
8876
  'platform_key': platformKey,
7776
- 'platform_org': platformOrg
7777
- },
7778
- errors: {
7779
- 400: `Bad request - missing or invalid parameters`,
7780
- 401: `Unauthorized`,
7781
- 403: `Forbidden`,
7782
- 404: `Not found - platform or course doesn't exist`
8877
+ 'platform_org': platformOrg,
8878
+ 'search': search,
8879
+ 'sort': sort,
8880
+ 'status': status
7783
8881
  }
7784
8882
  });
7785
8883
  }
7786
8884
  /**
7787
- * Create a new access request for a course
7788
- * @returns CourseAccessRequestDetail
8885
+ * Start an annual re-enrollment (#2135): a normal draft create whose
8886
+ * responses are pre-filled from the caller's most recent approved submission
8887
+ * (current-schema fields only; signatures, consents, files, and fields the
8888
+ * form flags fresh are re-asked), linked to that prior submission. With no
8889
+ * prior approved submission this behaves as a plain create.
8890
+ * @returns PlatformApplicationDetail
7789
8891
  * @throws ApiError
7790
8892
  */
7791
- static catalogAccessRequestsCourseRequestCreate({
7792
- courseId,
7793
- requestBody,
8893
+ static catalogApplicationsPlatformRenewCreate({
8894
+ requestBody
8895
+ }) {
8896
+ return request(OpenAPI, {
8897
+ method: 'POST',
8898
+ url: '/api/catalog/applications/platform/renew/',
8899
+ body: requestBody,
8900
+ mediaType: 'application/json'
8901
+ });
8902
+ }
8903
+ /**
8904
+ * Authenticated applicants, including learners on AXD student tokens.
8905
+ *
8906
+ * Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
8907
+ * not in the DRF defaults, but learners self-applying use it). An anonymous
8908
+ * request returns 401, not 403: DRF's ``permission_denied`` raises
8909
+ * ``NotAuthenticated`` whenever no authenticator succeeded.
8910
+ * @returns any Gate state
8911
+ * @throws ApiError
8912
+ */
8913
+ static catalogApplicationsPlatformStatusRetrieve({
8914
+ formId,
7794
8915
  platformKey,
7795
8916
  platformOrg
7796
8917
  }) {
7797
8918
  return request(OpenAPI, {
7798
- method: 'POST',
7799
- url: '/api/catalog/access_requests/course/request/',
8919
+ method: 'GET',
8920
+ url: '/api/catalog/applications/platform/status/',
7800
8921
  query: {
7801
- 'course_id': courseId,
8922
+ 'form_id': formId,
7802
8923
  'platform_key': platformKey,
7803
8924
  'platform_org': platformOrg
7804
- },
7805
- body: requestBody,
7806
- mediaType: 'application/json',
7807
- errors: {
7808
- 400: `Bad request - missing or invalid parameters`,
7809
- 401: `Unauthorized`,
7810
- 403: `Forbidden`,
7811
- 404: `Not found - platform or course doesn't exist`,
7812
- 500: `Internal server error`
7813
8925
  }
7814
8926
  });
7815
8927
  }
@@ -17806,6 +18918,29 @@
17806
18918
  }
17807
18919
  });
17808
18920
  }
18921
+ /**
18922
+ * Discover resources for policy building
18923
+ * GET the resource tree node at `path`.
18924
+ *
18925
+ * Platform comes from the request token (service accounts pass platform_key).
18926
+ * @returns any An entity node (child collections) or a collection node (list_url + search_qps + result_fields).
18927
+ * @throws ApiError
18928
+ */
18929
+ static coreRbacResourcesRetrieve({
18930
+ path = '/'
18931
+ }) {
18932
+ return request(OpenAPI, {
18933
+ method: 'GET',
18934
+ url: '/api/core/rbac/resources/',
18935
+ query: {
18936
+ 'path': path
18937
+ },
18938
+ errors: {
18939
+ 400: `Invalid path or unknown platform`,
18940
+ 403: `Missing resource-discovery access`
18941
+ }
18942
+ });
18943
+ }
17809
18944
  /**
17810
18945
  * List RBAC roles
17811
18946
  * Retrieve a list of RBAC roles. Can be filtered by platform_key and name.