@iblai/iblai-api 4.305.0-core → 4.306.0-core
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1342 -207
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1343 -208
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1342 -207
- package/dist/index.umd.js.map +1 -1
- package/dist/types/index.d.ts +25 -1
- package/dist/types/models/KindEnum.d.ts +8 -0
- package/dist/types/models/NotificationTemplateDetail.d.ts +3 -2
- package/dist/types/models/NotificationTemplateList.d.ts +3 -2
- package/dist/types/models/PatchedNotificationTemplateDetail.d.ts +3 -2
- package/dist/types/models/PatchedPlatformApplicationFormUpdate.d.ts +12 -0
- package/dist/types/models/PatchedPlatformApplicationNote.d.ts +8 -0
- package/dist/types/models/PatchedPlatformApplicationPlacementUpdate.d.ts +12 -0
- package/dist/types/models/PatchedPlatformApplicationUpdate.d.ts +6 -0
- package/dist/types/models/PlatformApplicationAdminSubmit.d.ts +6 -0
- package/dist/types/models/PlatformApplicationAttachmentUpload.d.ts +8 -0
- package/dist/types/models/PlatformApplicationCandidateLink.d.ts +8 -0
- package/dist/types/models/PlatformApplicationCourseAssignment.d.ts +7 -0
- package/dist/types/models/PlatformApplicationCourseAssignmentItem.d.ts +10 -0
- package/dist/types/models/PlatformApplicationCreate.d.ts +8 -0
- package/dist/types/models/PlatformApplicationDetail.d.ts +7 -0
- package/dist/types/models/PlatformApplicationFeeAction.d.ts +11 -0
- package/dist/types/models/PlatformApplicationFeeActionActionEnum.d.ts +12 -0
- package/dist/types/models/PlatformApplicationFormCreate.d.ts +12 -0
- package/dist/types/models/PlatformApplicationFormDetail.d.ts +9 -0
- package/dist/types/models/PlatformApplicationNote.d.ts +8 -0
- package/dist/types/models/PlatformApplicationPlacementCreate.d.ts +8 -0
- package/dist/types/models/PlatformApplicationPlacementItem.d.ts +11 -0
- package/dist/types/models/PlatformApplicationPlacementUpdateStatusEnum.d.ts +16 -0
- package/dist/types/models/PlatformApplicationSubmit.d.ts +6 -0
- package/dist/types/models/PlatformApplicationTransition.d.ts +11 -0
- package/dist/types/models/PlatformApplicationTransitionActionEnum.d.ts +16 -0
- package/dist/types/models/PlatformApplicationWaiver.d.ts +9 -0
- package/dist/types/models/{Type4b7Enum.d.ts → TypeB29Enum.d.ts} +3 -1
- package/dist/types/services/CatalogService.d.ts +648 -0
- package/dist/types/services/CoreService.d.ts +14 -0
- package/package.json +1 -1
- package/sdk_schema.yml +1893 -5
- package/src/core/OpenAPI.ts +1 -1
- package/src/index.ts +25 -1
- package/src/models/KindEnum.ts +12 -0
- package/src/models/NotificationTemplateDetail.ts +3 -2
- package/src/models/NotificationTemplateList.ts +3 -2
- package/src/models/PatchedNotificationTemplateDetail.ts +3 -2
- package/src/models/PatchedPlatformApplicationFormUpdate.ts +17 -0
- package/src/models/PatchedPlatformApplicationNote.ts +13 -0
- package/src/models/PatchedPlatformApplicationPlacementUpdate.ts +17 -0
- package/src/models/PatchedPlatformApplicationUpdate.ts +11 -0
- package/src/models/PlatformApplicationAdminSubmit.ts +11 -0
- package/src/models/PlatformApplicationAttachmentUpload.ts +13 -0
- package/src/models/PlatformApplicationCandidateLink.ts +13 -0
- package/src/models/PlatformApplicationCourseAssignment.ts +12 -0
- package/src/models/PlatformApplicationCourseAssignmentItem.ts +15 -0
- package/src/models/PlatformApplicationCreate.ts +13 -0
- package/src/models/PlatformApplicationDetail.ts +12 -0
- package/src/models/PlatformApplicationFeeAction.ts +16 -0
- package/src/models/PlatformApplicationFeeActionActionEnum.ts +16 -0
- package/src/models/PlatformApplicationFormCreate.ts +17 -0
- package/src/models/PlatformApplicationFormDetail.ts +14 -0
- package/src/models/PlatformApplicationNote.ts +13 -0
- package/src/models/PlatformApplicationPlacementCreate.ts +13 -0
- package/src/models/PlatformApplicationPlacementItem.ts +16 -0
- package/src/models/PlatformApplicationPlacementUpdateStatusEnum.ts +20 -0
- package/src/models/PlatformApplicationSubmit.ts +11 -0
- package/src/models/PlatformApplicationTransition.ts +16 -0
- package/src/models/PlatformApplicationTransitionActionEnum.ts +20 -0
- package/src/models/PlatformApplicationWaiver.ts +14 -0
- package/src/models/{Type4b7Enum.ts → TypeB29Enum.ts} +3 -1
- package/src/services/CatalogService.ts +1196 -0
- package/src/services/CoreService.ts +28 -0
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.
|
|
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.
|
|
2152
|
-
(function (
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
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: '
|
|
7482
|
-
url: '/api/
|
|
8543
|
+
method: 'POST',
|
|
8544
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/fee/',
|
|
7483
8545
|
path: {
|
|
7484
|
-
'
|
|
7485
|
-
|
|
7486
|
-
|
|
8546
|
+
'submission_id': submissionId
|
|
8547
|
+
},
|
|
8548
|
+
body: requestBody,
|
|
8549
|
+
mediaType: 'application/json'
|
|
7487
8550
|
});
|
|
7488
8551
|
}
|
|
7489
8552
|
/**
|
|
7490
|
-
*
|
|
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
|
|
7494
|
-
|
|
7495
|
-
|
|
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/
|
|
8568
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
|
|
7500
8569
|
path: {
|
|
7501
|
-
'
|
|
7502
|
-
|
|
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
|
-
*
|
|
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
|
|
7511
|
-
|
|
7512
|
-
username,
|
|
8587
|
+
static catalogApplicationsPlatformManageNotesCreate({
|
|
8588
|
+
submissionId,
|
|
7513
8589
|
requestBody
|
|
7514
8590
|
}) {
|
|
7515
8591
|
return request(OpenAPI, {
|
|
7516
8592
|
method: 'POST',
|
|
7517
|
-
url: '/api/
|
|
8593
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/',
|
|
7518
8594
|
path: {
|
|
7519
|
-
'
|
|
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
|
-
*
|
|
8602
|
+
* Edit or remove a single internal reviewer note.
|
|
8603
|
+
* @returns any Note updated
|
|
7528
8604
|
* @throws ApiError
|
|
7529
8605
|
*/
|
|
7530
|
-
static
|
|
7531
|
-
|
|
7532
|
-
|
|
8606
|
+
static catalogApplicationsPlatformManageNotesPartialUpdate({
|
|
8607
|
+
noteId,
|
|
8608
|
+
submissionId,
|
|
7533
8609
|
requestBody
|
|
7534
8610
|
}) {
|
|
7535
8611
|
return request(OpenAPI, {
|
|
7536
|
-
method: '
|
|
7537
|
-
url: '/api/
|
|
8612
|
+
method: 'PATCH',
|
|
8613
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
|
|
7538
8614
|
path: {
|
|
7539
|
-
'
|
|
7540
|
-
'
|
|
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
|
|
7551
|
-
|
|
7552
|
-
|
|
8627
|
+
static catalogApplicationsPlatformManageNotesDestroy({
|
|
8628
|
+
noteId,
|
|
8629
|
+
submissionId
|
|
7553
8630
|
}) {
|
|
7554
8631
|
return request(OpenAPI, {
|
|
7555
8632
|
method: 'DELETE',
|
|
7556
|
-
url: '/api/
|
|
8633
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/',
|
|
7557
8634
|
path: {
|
|
7558
|
-
'
|
|
7559
|
-
'
|
|
8635
|
+
'note_id': noteId,
|
|
8636
|
+
'submission_id': submissionId
|
|
7560
8637
|
}
|
|
7561
8638
|
});
|
|
7562
8639
|
}
|
|
7563
8640
|
/**
|
|
7564
|
-
*
|
|
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
|
|
7568
|
-
|
|
7569
|
-
username
|
|
8646
|
+
static catalogApplicationsPlatformManagePlacementsRetrieve({
|
|
8647
|
+
submissionId
|
|
7570
8648
|
}) {
|
|
7571
8649
|
return request(OpenAPI, {
|
|
7572
8650
|
method: 'GET',
|
|
7573
|
-
url: '/api/
|
|
8651
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
|
|
7574
8652
|
path: {
|
|
7575
|
-
'
|
|
7576
|
-
'username': username
|
|
8653
|
+
'submission_id': submissionId
|
|
7577
8654
|
}
|
|
7578
8655
|
});
|
|
7579
8656
|
}
|
|
7580
8657
|
/**
|
|
7581
|
-
*
|
|
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
|
|
7585
|
-
|
|
7586
|
-
username,
|
|
8663
|
+
static catalogApplicationsPlatformManagePlacementsCreate({
|
|
8664
|
+
submissionId,
|
|
7587
8665
|
requestBody
|
|
7588
8666
|
}) {
|
|
7589
8667
|
return request(OpenAPI, {
|
|
7590
8668
|
method: 'POST',
|
|
7591
|
-
url: '/api/
|
|
8669
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/',
|
|
7592
8670
|
path: {
|
|
7593
|
-
'
|
|
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
|
-
*
|
|
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
|
|
7605
|
-
|
|
7606
|
-
|
|
8682
|
+
static catalogApplicationsPlatformManagePlacementsPartialUpdate({
|
|
8683
|
+
placementId,
|
|
8684
|
+
submissionId,
|
|
7607
8685
|
requestBody
|
|
7608
8686
|
}) {
|
|
7609
8687
|
return request(OpenAPI, {
|
|
7610
|
-
method: '
|
|
7611
|
-
url: '/api/
|
|
8688
|
+
method: 'PATCH',
|
|
8689
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/placements/{placement_id}/',
|
|
7612
8690
|
path: {
|
|
7613
|
-
'
|
|
7614
|
-
'
|
|
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
|
-
*
|
|
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
|
|
7625
|
-
|
|
7626
|
-
|
|
8706
|
+
static catalogApplicationsPlatformManageSubmitCreate({
|
|
8707
|
+
submissionId,
|
|
8708
|
+
requestBody
|
|
7627
8709
|
}) {
|
|
7628
8710
|
return request(OpenAPI, {
|
|
7629
|
-
method: '
|
|
7630
|
-
url: '/api/
|
|
8711
|
+
method: 'POST',
|
|
8712
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/submit/',
|
|
7631
8713
|
path: {
|
|
7632
|
-
'
|
|
7633
|
-
|
|
7634
|
-
|
|
8714
|
+
'submission_id': submissionId
|
|
8715
|
+
},
|
|
8716
|
+
body: requestBody,
|
|
8717
|
+
mediaType: 'application/json'
|
|
7635
8718
|
});
|
|
7636
8719
|
}
|
|
7637
8720
|
/**
|
|
7638
|
-
*
|
|
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
|
|
7642
|
-
|
|
7643
|
-
|
|
8729
|
+
static catalogApplicationsPlatformManageTransitionCreate({
|
|
8730
|
+
submissionId,
|
|
8731
|
+
requestBody
|
|
7644
8732
|
}) {
|
|
7645
8733
|
return request(OpenAPI, {
|
|
7646
|
-
method: '
|
|
7647
|
-
url: '/api/
|
|
8734
|
+
method: 'POST',
|
|
8735
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/transition/',
|
|
7648
8736
|
path: {
|
|
7649
|
-
'
|
|
7650
|
-
|
|
7651
|
-
|
|
8737
|
+
'submission_id': submissionId
|
|
8738
|
+
},
|
|
8739
|
+
body: requestBody,
|
|
8740
|
+
mediaType: 'application/json'
|
|
7652
8741
|
});
|
|
7653
8742
|
}
|
|
7654
8743
|
/**
|
|
7655
|
-
*
|
|
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
|
|
7659
|
-
|
|
7660
|
-
|
|
8752
|
+
static catalogApplicationsPlatformManageWaiversCreate({
|
|
8753
|
+
submissionId,
|
|
8754
|
+
requestBody
|
|
7661
8755
|
}) {
|
|
7662
8756
|
return request(OpenAPI, {
|
|
7663
8757
|
method: 'POST',
|
|
7664
|
-
url: '/api/
|
|
8758
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
|
|
7665
8759
|
path: {
|
|
7666
|
-
'
|
|
7667
|
-
|
|
7668
|
-
|
|
8760
|
+
'submission_id': submissionId
|
|
8761
|
+
},
|
|
8762
|
+
body: requestBody,
|
|
8763
|
+
mediaType: 'application/json'
|
|
7669
8764
|
});
|
|
7670
8765
|
}
|
|
7671
8766
|
/**
|
|
7672
|
-
*
|
|
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
|
|
7676
|
-
|
|
7677
|
-
username
|
|
8775
|
+
static catalogApplicationsPlatformManageWaiversDestroy({
|
|
8776
|
+
submissionId
|
|
7678
8777
|
}) {
|
|
7679
8778
|
return request(OpenAPI, {
|
|
7680
|
-
method: '
|
|
7681
|
-
url: '/api/
|
|
8779
|
+
method: 'DELETE',
|
|
8780
|
+
url: '/api/catalog/applications/platform/manage/{submission_id}/waivers/',
|
|
7682
8781
|
path: {
|
|
7683
|
-
'
|
|
7684
|
-
'username': username
|
|
8782
|
+
'submission_id': submissionId
|
|
7685
8783
|
}
|
|
7686
8784
|
});
|
|
7687
8785
|
}
|
|
7688
|
-
}
|
|
7689
|
-
|
|
7690
|
-
class CatalogService {
|
|
7691
8786
|
/**
|
|
7692
|
-
*
|
|
7693
|
-
* @returns
|
|
8787
|
+
* List the active application blocks (ban-list) for a platform.
|
|
8788
|
+
* @returns any Active blocks
|
|
7694
8789
|
* @throws ApiError
|
|
7695
8790
|
*/
|
|
7696
|
-
static
|
|
7697
|
-
page,
|
|
7698
|
-
pageSize,
|
|
8791
|
+
static catalogApplicationsPlatformManageBlocksRetrieve({
|
|
7699
8792
|
platformKey,
|
|
7700
8793
|
platformOrg,
|
|
7701
|
-
|
|
7702
|
-
sort
|
|
8794
|
+
search,
|
|
8795
|
+
sort,
|
|
8796
|
+
status
|
|
7703
8797
|
}) {
|
|
7704
8798
|
return request(OpenAPI, {
|
|
7705
8799
|
method: 'GET',
|
|
7706
|
-
url: '/api/catalog/
|
|
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
|
-
'
|
|
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
|
-
*
|
|
7726
|
-
* @returns
|
|
8811
|
+
* Lift a single active application block (unblock).
|
|
8812
|
+
* @returns void
|
|
7727
8813
|
* @throws ApiError
|
|
7728
8814
|
*/
|
|
7729
|
-
static
|
|
7730
|
-
|
|
7731
|
-
page,
|
|
7732
|
-
pageSize,
|
|
8815
|
+
static catalogApplicationsPlatformManageBlocksDestroy({
|
|
8816
|
+
blockId,
|
|
7733
8817
|
platformKey,
|
|
7734
8818
|
platformOrg,
|
|
7735
|
-
|
|
7736
|
-
sort
|
|
8819
|
+
search,
|
|
8820
|
+
sort,
|
|
8821
|
+
status
|
|
7737
8822
|
}) {
|
|
7738
8823
|
return request(OpenAPI, {
|
|
7739
|
-
method: '
|
|
7740
|
-
url: '/api/catalog/
|
|
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
|
-
'
|
|
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
|
-
*
|
|
7762
|
-
*
|
|
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
|
|
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/
|
|
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
|
-
|
|
7779
|
-
|
|
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
|
-
*
|
|
7788
|
-
*
|
|
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
|
|
7792
|
-
|
|
7793
|
-
|
|
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: '
|
|
7799
|
-
url: '/api/catalog/
|
|
8919
|
+
method: 'GET',
|
|
8920
|
+
url: '/api/catalog/applications/platform/status/',
|
|
7800
8921
|
query: {
|
|
7801
|
-
'
|
|
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.
|