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