@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/sdk_schema.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ibl-data-manager
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.306.0-core
|
|
5
5
|
description: API for iblai
|
|
6
6
|
paths:
|
|
7
7
|
/api/analytics/content/:
|
|
@@ -4752,6 +4752,1549 @@ paths:
|
|
|
4752
4752
|
description: Not found - platform or course doesn't exist
|
|
4753
4753
|
'500':
|
|
4754
4754
|
description: Internal server error
|
|
4755
|
+
/api/catalog/applications/platform/:
|
|
4756
|
+
get:
|
|
4757
|
+
operationId: catalog_applications_platform_retrieve
|
|
4758
|
+
description: |-
|
|
4759
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4760
|
+
|
|
4761
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4762
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4763
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4764
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4765
|
+
parameters:
|
|
4766
|
+
- in: query
|
|
4767
|
+
name: form_id
|
|
4768
|
+
schema:
|
|
4769
|
+
type: integer
|
|
4770
|
+
- in: query
|
|
4771
|
+
name: platform_key
|
|
4772
|
+
schema:
|
|
4773
|
+
type: string
|
|
4774
|
+
minLength: 1
|
|
4775
|
+
- in: query
|
|
4776
|
+
name: platform_org
|
|
4777
|
+
schema:
|
|
4778
|
+
type: string
|
|
4779
|
+
minLength: 1
|
|
4780
|
+
tags:
|
|
4781
|
+
- catalog
|
|
4782
|
+
security:
|
|
4783
|
+
- PlatformApiKeyAuthentication: []
|
|
4784
|
+
responses:
|
|
4785
|
+
'200':
|
|
4786
|
+
description: Own submissions
|
|
4787
|
+
post:
|
|
4788
|
+
operationId: catalog_applications_platform_create
|
|
4789
|
+
description: |-
|
|
4790
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4791
|
+
|
|
4792
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4793
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4794
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4795
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4796
|
+
tags:
|
|
4797
|
+
- catalog
|
|
4798
|
+
requestBody:
|
|
4799
|
+
content:
|
|
4800
|
+
application/json:
|
|
4801
|
+
schema:
|
|
4802
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
4803
|
+
application/scim+json:
|
|
4804
|
+
schema:
|
|
4805
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
4806
|
+
application/x-www-form-urlencoded:
|
|
4807
|
+
schema:
|
|
4808
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
4809
|
+
multipart/form-data:
|
|
4810
|
+
schema:
|
|
4811
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
4812
|
+
'*/*':
|
|
4813
|
+
schema:
|
|
4814
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
4815
|
+
required: true
|
|
4816
|
+
security:
|
|
4817
|
+
- PlatformApiKeyAuthentication: []
|
|
4818
|
+
responses:
|
|
4819
|
+
'201':
|
|
4820
|
+
content:
|
|
4821
|
+
application/json:
|
|
4822
|
+
schema:
|
|
4823
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
4824
|
+
description: ''
|
|
4825
|
+
/api/catalog/applications/platform/{submission_id}/:
|
|
4826
|
+
get:
|
|
4827
|
+
operationId: catalog_applications_platform_retrieve_2
|
|
4828
|
+
description: |-
|
|
4829
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4830
|
+
|
|
4831
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4832
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4833
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4834
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4835
|
+
parameters:
|
|
4836
|
+
- in: path
|
|
4837
|
+
name: submission_id
|
|
4838
|
+
schema:
|
|
4839
|
+
type: string
|
|
4840
|
+
pattern: ^\d+$
|
|
4841
|
+
required: true
|
|
4842
|
+
tags:
|
|
4843
|
+
- catalog
|
|
4844
|
+
security:
|
|
4845
|
+
- PlatformApiKeyAuthentication: []
|
|
4846
|
+
responses:
|
|
4847
|
+
'200':
|
|
4848
|
+
content:
|
|
4849
|
+
application/json:
|
|
4850
|
+
schema:
|
|
4851
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
4852
|
+
description: ''
|
|
4853
|
+
patch:
|
|
4854
|
+
operationId: catalog_applications_platform_partial_update
|
|
4855
|
+
description: |-
|
|
4856
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4857
|
+
|
|
4858
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4859
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4860
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4861
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4862
|
+
parameters:
|
|
4863
|
+
- in: path
|
|
4864
|
+
name: submission_id
|
|
4865
|
+
schema:
|
|
4866
|
+
type: string
|
|
4867
|
+
pattern: ^\d+$
|
|
4868
|
+
required: true
|
|
4869
|
+
tags:
|
|
4870
|
+
- catalog
|
|
4871
|
+
requestBody:
|
|
4872
|
+
content:
|
|
4873
|
+
application/json:
|
|
4874
|
+
schema:
|
|
4875
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationUpdate'
|
|
4876
|
+
application/scim+json:
|
|
4877
|
+
schema:
|
|
4878
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationUpdate'
|
|
4879
|
+
application/x-www-form-urlencoded:
|
|
4880
|
+
schema:
|
|
4881
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationUpdate'
|
|
4882
|
+
multipart/form-data:
|
|
4883
|
+
schema:
|
|
4884
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationUpdate'
|
|
4885
|
+
'*/*':
|
|
4886
|
+
schema:
|
|
4887
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationUpdate'
|
|
4888
|
+
security:
|
|
4889
|
+
- PlatformApiKeyAuthentication: []
|
|
4890
|
+
responses:
|
|
4891
|
+
'200':
|
|
4892
|
+
content:
|
|
4893
|
+
application/json:
|
|
4894
|
+
schema:
|
|
4895
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
4896
|
+
description: ''
|
|
4897
|
+
/api/catalog/applications/platform/{submission_id}/attachments/:
|
|
4898
|
+
post:
|
|
4899
|
+
operationId: catalog_applications_platform_attachments_create
|
|
4900
|
+
description: |-
|
|
4901
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4902
|
+
|
|
4903
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4904
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4905
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4906
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4907
|
+
parameters:
|
|
4908
|
+
- in: path
|
|
4909
|
+
name: submission_id
|
|
4910
|
+
schema:
|
|
4911
|
+
type: string
|
|
4912
|
+
pattern: ^\d+$
|
|
4913
|
+
required: true
|
|
4914
|
+
tags:
|
|
4915
|
+
- catalog
|
|
4916
|
+
requestBody:
|
|
4917
|
+
content:
|
|
4918
|
+
multipart/form-data:
|
|
4919
|
+
schema:
|
|
4920
|
+
$ref: '#/components/schemas/PlatformApplicationAttachmentUpload'
|
|
4921
|
+
application/x-www-form-urlencoded:
|
|
4922
|
+
schema:
|
|
4923
|
+
$ref: '#/components/schemas/PlatformApplicationAttachmentUpload'
|
|
4924
|
+
required: true
|
|
4925
|
+
security:
|
|
4926
|
+
- PlatformApiKeyAuthentication: []
|
|
4927
|
+
responses:
|
|
4928
|
+
'201':
|
|
4929
|
+
description: Attachment stored
|
|
4930
|
+
/api/catalog/applications/platform/{submission_id}/attachments/{attachment_id}/:
|
|
4931
|
+
delete:
|
|
4932
|
+
operationId: catalog_applications_platform_attachments_destroy
|
|
4933
|
+
description: |-
|
|
4934
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4935
|
+
|
|
4936
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4937
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4938
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4939
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4940
|
+
parameters:
|
|
4941
|
+
- in: path
|
|
4942
|
+
name: attachment_id
|
|
4943
|
+
schema:
|
|
4944
|
+
type: string
|
|
4945
|
+
pattern: ^\d+$
|
|
4946
|
+
required: true
|
|
4947
|
+
- in: path
|
|
4948
|
+
name: submission_id
|
|
4949
|
+
schema:
|
|
4950
|
+
type: string
|
|
4951
|
+
pattern: ^\d+$
|
|
4952
|
+
required: true
|
|
4953
|
+
tags:
|
|
4954
|
+
- catalog
|
|
4955
|
+
security:
|
|
4956
|
+
- PlatformApiKeyAuthentication: []
|
|
4957
|
+
responses:
|
|
4958
|
+
'204':
|
|
4959
|
+
description: Attachment removed
|
|
4960
|
+
/api/catalog/applications/platform/{submission_id}/submit/:
|
|
4961
|
+
post:
|
|
4962
|
+
operationId: catalog_applications_platform_submit_create
|
|
4963
|
+
description: |-
|
|
4964
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
4965
|
+
|
|
4966
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
4967
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
4968
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
4969
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
4970
|
+
parameters:
|
|
4971
|
+
- in: path
|
|
4972
|
+
name: submission_id
|
|
4973
|
+
schema:
|
|
4974
|
+
type: string
|
|
4975
|
+
pattern: ^\d+$
|
|
4976
|
+
required: true
|
|
4977
|
+
tags:
|
|
4978
|
+
- catalog
|
|
4979
|
+
requestBody:
|
|
4980
|
+
content:
|
|
4981
|
+
application/json:
|
|
4982
|
+
schema:
|
|
4983
|
+
$ref: '#/components/schemas/PlatformApplicationSubmit'
|
|
4984
|
+
application/scim+json:
|
|
4985
|
+
schema:
|
|
4986
|
+
$ref: '#/components/schemas/PlatformApplicationSubmit'
|
|
4987
|
+
application/x-www-form-urlencoded:
|
|
4988
|
+
schema:
|
|
4989
|
+
$ref: '#/components/schemas/PlatformApplicationSubmit'
|
|
4990
|
+
multipart/form-data:
|
|
4991
|
+
schema:
|
|
4992
|
+
$ref: '#/components/schemas/PlatformApplicationSubmit'
|
|
4993
|
+
'*/*':
|
|
4994
|
+
schema:
|
|
4995
|
+
$ref: '#/components/schemas/PlatformApplicationSubmit'
|
|
4996
|
+
security:
|
|
4997
|
+
- PlatformApiKeyAuthentication: []
|
|
4998
|
+
responses:
|
|
4999
|
+
'200':
|
|
5000
|
+
content:
|
|
5001
|
+
application/json:
|
|
5002
|
+
schema:
|
|
5003
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
5004
|
+
description: ''
|
|
5005
|
+
/api/catalog/applications/platform/{submission_id}/withdraw/:
|
|
5006
|
+
post:
|
|
5007
|
+
operationId: catalog_applications_platform_withdraw_create
|
|
5008
|
+
description: |-
|
|
5009
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
5010
|
+
|
|
5011
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
5012
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
5013
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
5014
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
5015
|
+
parameters:
|
|
5016
|
+
- in: path
|
|
5017
|
+
name: submission_id
|
|
5018
|
+
schema:
|
|
5019
|
+
type: string
|
|
5020
|
+
pattern: ^\d+$
|
|
5021
|
+
required: true
|
|
5022
|
+
tags:
|
|
5023
|
+
- catalog
|
|
5024
|
+
security:
|
|
5025
|
+
- PlatformApiKeyAuthentication: []
|
|
5026
|
+
responses:
|
|
5027
|
+
'200':
|
|
5028
|
+
content:
|
|
5029
|
+
application/json:
|
|
5030
|
+
schema:
|
|
5031
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
5032
|
+
description: ''
|
|
5033
|
+
/api/catalog/applications/platform/form/:
|
|
5034
|
+
get:
|
|
5035
|
+
operationId: catalog_applications_platform_form_retrieve
|
|
5036
|
+
description: |-
|
|
5037
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
5038
|
+
|
|
5039
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
5040
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
5041
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
5042
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
5043
|
+
parameters:
|
|
5044
|
+
- in: query
|
|
5045
|
+
name: form_id
|
|
5046
|
+
schema:
|
|
5047
|
+
type: integer
|
|
5048
|
+
- in: query
|
|
5049
|
+
name: platform_key
|
|
5050
|
+
schema:
|
|
5051
|
+
type: string
|
|
5052
|
+
minLength: 1
|
|
5053
|
+
- in: query
|
|
5054
|
+
name: platform_org
|
|
5055
|
+
schema:
|
|
5056
|
+
type: string
|
|
5057
|
+
minLength: 1
|
|
5058
|
+
tags:
|
|
5059
|
+
- catalog
|
|
5060
|
+
security:
|
|
5061
|
+
- PlatformApiKeyAuthentication: []
|
|
5062
|
+
responses:
|
|
5063
|
+
'200':
|
|
5064
|
+
description: Active form
|
|
5065
|
+
/api/catalog/applications/platform/forms/manage/:
|
|
5066
|
+
get:
|
|
5067
|
+
operationId: catalog_applications_platform_forms_manage_retrieve
|
|
5068
|
+
description: |-
|
|
5069
|
+
Wires RBAC into a DRF view.
|
|
5070
|
+
|
|
5071
|
+
Two responsibilities:
|
|
5072
|
+
|
|
5073
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5074
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5075
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5076
|
+
views that set `token_policies_enabled = True`).
|
|
5077
|
+
|
|
5078
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5079
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5080
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5081
|
+
caller — bypass RBAC and serve the request."
|
|
5082
|
+
|
|
5083
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5084
|
+
the early exit skips all RBAC prep work:
|
|
5085
|
+
|
|
5086
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5087
|
+
return
|
|
5088
|
+
|
|
5089
|
+
Use `is_service_account` at any other touch points where caller
|
|
5090
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5091
|
+
create, serializer context, etc.).
|
|
5092
|
+
parameters:
|
|
5093
|
+
- in: query
|
|
5094
|
+
name: platform_key
|
|
5095
|
+
schema:
|
|
5096
|
+
type: string
|
|
5097
|
+
minLength: 1
|
|
5098
|
+
- in: query
|
|
5099
|
+
name: platform_org
|
|
5100
|
+
schema:
|
|
5101
|
+
type: string
|
|
5102
|
+
minLength: 1
|
|
5103
|
+
- in: query
|
|
5104
|
+
name: sort
|
|
5105
|
+
schema:
|
|
5106
|
+
type: string
|
|
5107
|
+
minLength: 1
|
|
5108
|
+
tags:
|
|
5109
|
+
- catalog
|
|
5110
|
+
security:
|
|
5111
|
+
- PlatformApiKeyAuthentication: []
|
|
5112
|
+
responses:
|
|
5113
|
+
'200':
|
|
5114
|
+
description: Forms for the platform
|
|
5115
|
+
post:
|
|
5116
|
+
operationId: catalog_applications_platform_forms_manage_create
|
|
5117
|
+
description: |-
|
|
5118
|
+
Wires RBAC into a DRF view.
|
|
5119
|
+
|
|
5120
|
+
Two responsibilities:
|
|
5121
|
+
|
|
5122
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5123
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5124
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5125
|
+
views that set `token_policies_enabled = True`).
|
|
5126
|
+
|
|
5127
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5128
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5129
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5130
|
+
caller — bypass RBAC and serve the request."
|
|
5131
|
+
|
|
5132
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5133
|
+
the early exit skips all RBAC prep work:
|
|
5134
|
+
|
|
5135
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5136
|
+
return
|
|
5137
|
+
|
|
5138
|
+
Use `is_service_account` at any other touch points where caller
|
|
5139
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5140
|
+
create, serializer context, etc.).
|
|
5141
|
+
parameters:
|
|
5142
|
+
- in: query
|
|
5143
|
+
name: platform_key
|
|
5144
|
+
schema:
|
|
5145
|
+
type: string
|
|
5146
|
+
minLength: 1
|
|
5147
|
+
- in: query
|
|
5148
|
+
name: platform_org
|
|
5149
|
+
schema:
|
|
5150
|
+
type: string
|
|
5151
|
+
minLength: 1
|
|
5152
|
+
- in: query
|
|
5153
|
+
name: sort
|
|
5154
|
+
schema:
|
|
5155
|
+
type: string
|
|
5156
|
+
minLength: 1
|
|
5157
|
+
tags:
|
|
5158
|
+
- catalog
|
|
5159
|
+
requestBody:
|
|
5160
|
+
content:
|
|
5161
|
+
application/json:
|
|
5162
|
+
schema:
|
|
5163
|
+
$ref: '#/components/schemas/PlatformApplicationFormCreate'
|
|
5164
|
+
application/scim+json:
|
|
5165
|
+
schema:
|
|
5166
|
+
$ref: '#/components/schemas/PlatformApplicationFormCreate'
|
|
5167
|
+
application/x-www-form-urlencoded:
|
|
5168
|
+
schema:
|
|
5169
|
+
$ref: '#/components/schemas/PlatformApplicationFormCreate'
|
|
5170
|
+
multipart/form-data:
|
|
5171
|
+
schema:
|
|
5172
|
+
$ref: '#/components/schemas/PlatformApplicationFormCreate'
|
|
5173
|
+
'*/*':
|
|
5174
|
+
schema:
|
|
5175
|
+
$ref: '#/components/schemas/PlatformApplicationFormCreate'
|
|
5176
|
+
required: true
|
|
5177
|
+
security:
|
|
5178
|
+
- PlatformApiKeyAuthentication: []
|
|
5179
|
+
responses:
|
|
5180
|
+
'201':
|
|
5181
|
+
content:
|
|
5182
|
+
application/json:
|
|
5183
|
+
schema:
|
|
5184
|
+
$ref: '#/components/schemas/PlatformApplicationFormDetail'
|
|
5185
|
+
description: ''
|
|
5186
|
+
/api/catalog/applications/platform/forms/manage/{form_id}/:
|
|
5187
|
+
get:
|
|
5188
|
+
operationId: catalog_applications_platform_forms_manage_retrieve_2
|
|
5189
|
+
description: |-
|
|
5190
|
+
Wires RBAC into a DRF view.
|
|
5191
|
+
|
|
5192
|
+
Two responsibilities:
|
|
5193
|
+
|
|
5194
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5195
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5196
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5197
|
+
views that set `token_policies_enabled = True`).
|
|
5198
|
+
|
|
5199
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5200
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5201
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5202
|
+
caller — bypass RBAC and serve the request."
|
|
5203
|
+
|
|
5204
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5205
|
+
the early exit skips all RBAC prep work:
|
|
5206
|
+
|
|
5207
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5208
|
+
return
|
|
5209
|
+
|
|
5210
|
+
Use `is_service_account` at any other touch points where caller
|
|
5211
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5212
|
+
create, serializer context, etc.).
|
|
5213
|
+
parameters:
|
|
5214
|
+
- in: path
|
|
5215
|
+
name: form_id
|
|
5216
|
+
schema:
|
|
5217
|
+
type: string
|
|
5218
|
+
pattern: ^\d+$
|
|
5219
|
+
required: true
|
|
5220
|
+
- in: query
|
|
5221
|
+
name: platform_key
|
|
5222
|
+
schema:
|
|
5223
|
+
type: string
|
|
5224
|
+
minLength: 1
|
|
5225
|
+
- in: query
|
|
5226
|
+
name: platform_org
|
|
5227
|
+
schema:
|
|
5228
|
+
type: string
|
|
5229
|
+
minLength: 1
|
|
5230
|
+
- in: query
|
|
5231
|
+
name: sort
|
|
5232
|
+
schema:
|
|
5233
|
+
type: string
|
|
5234
|
+
minLength: 1
|
|
5235
|
+
tags:
|
|
5236
|
+
- catalog
|
|
5237
|
+
security:
|
|
5238
|
+
- PlatformApiKeyAuthentication: []
|
|
5239
|
+
responses:
|
|
5240
|
+
'200':
|
|
5241
|
+
content:
|
|
5242
|
+
application/json:
|
|
5243
|
+
schema:
|
|
5244
|
+
$ref: '#/components/schemas/PlatformApplicationFormDetail'
|
|
5245
|
+
description: ''
|
|
5246
|
+
patch:
|
|
5247
|
+
operationId: catalog_applications_platform_forms_manage_partial_update
|
|
5248
|
+
description: |-
|
|
5249
|
+
Wires RBAC into a DRF view.
|
|
5250
|
+
|
|
5251
|
+
Two responsibilities:
|
|
5252
|
+
|
|
5253
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5254
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5255
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5256
|
+
views that set `token_policies_enabled = True`).
|
|
5257
|
+
|
|
5258
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5259
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5260
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5261
|
+
caller — bypass RBAC and serve the request."
|
|
5262
|
+
|
|
5263
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5264
|
+
the early exit skips all RBAC prep work:
|
|
5265
|
+
|
|
5266
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5267
|
+
return
|
|
5268
|
+
|
|
5269
|
+
Use `is_service_account` at any other touch points where caller
|
|
5270
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5271
|
+
create, serializer context, etc.).
|
|
5272
|
+
parameters:
|
|
5273
|
+
- in: path
|
|
5274
|
+
name: form_id
|
|
5275
|
+
schema:
|
|
5276
|
+
type: string
|
|
5277
|
+
pattern: ^\d+$
|
|
5278
|
+
required: true
|
|
5279
|
+
- in: query
|
|
5280
|
+
name: platform_key
|
|
5281
|
+
schema:
|
|
5282
|
+
type: string
|
|
5283
|
+
minLength: 1
|
|
5284
|
+
- in: query
|
|
5285
|
+
name: platform_org
|
|
5286
|
+
schema:
|
|
5287
|
+
type: string
|
|
5288
|
+
minLength: 1
|
|
5289
|
+
- in: query
|
|
5290
|
+
name: sort
|
|
5291
|
+
schema:
|
|
5292
|
+
type: string
|
|
5293
|
+
minLength: 1
|
|
5294
|
+
tags:
|
|
5295
|
+
- catalog
|
|
5296
|
+
requestBody:
|
|
5297
|
+
content:
|
|
5298
|
+
application/json:
|
|
5299
|
+
schema:
|
|
5300
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationFormUpdate'
|
|
5301
|
+
application/scim+json:
|
|
5302
|
+
schema:
|
|
5303
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationFormUpdate'
|
|
5304
|
+
application/x-www-form-urlencoded:
|
|
5305
|
+
schema:
|
|
5306
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationFormUpdate'
|
|
5307
|
+
multipart/form-data:
|
|
5308
|
+
schema:
|
|
5309
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationFormUpdate'
|
|
5310
|
+
'*/*':
|
|
5311
|
+
schema:
|
|
5312
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationFormUpdate'
|
|
5313
|
+
security:
|
|
5314
|
+
- PlatformApiKeyAuthentication: []
|
|
5315
|
+
responses:
|
|
5316
|
+
'200':
|
|
5317
|
+
content:
|
|
5318
|
+
application/json:
|
|
5319
|
+
schema:
|
|
5320
|
+
$ref: '#/components/schemas/PlatformApplicationFormDetail'
|
|
5321
|
+
description: ''
|
|
5322
|
+
/api/catalog/applications/platform/manage/:
|
|
5323
|
+
get:
|
|
5324
|
+
operationId: catalog_applications_platform_manage_retrieve
|
|
5325
|
+
description: |-
|
|
5326
|
+
Wires RBAC into a DRF view.
|
|
5327
|
+
|
|
5328
|
+
Two responsibilities:
|
|
5329
|
+
|
|
5330
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5331
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5332
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5333
|
+
views that set `token_policies_enabled = True`).
|
|
5334
|
+
|
|
5335
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5336
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5337
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5338
|
+
caller — bypass RBAC and serve the request."
|
|
5339
|
+
|
|
5340
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5341
|
+
the early exit skips all RBAC prep work:
|
|
5342
|
+
|
|
5343
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5344
|
+
return
|
|
5345
|
+
|
|
5346
|
+
Use `is_service_account` at any other touch points where caller
|
|
5347
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5348
|
+
create, serializer context, etc.).
|
|
5349
|
+
parameters:
|
|
5350
|
+
- in: query
|
|
5351
|
+
name: platform_key
|
|
5352
|
+
schema:
|
|
5353
|
+
type: string
|
|
5354
|
+
minLength: 1
|
|
5355
|
+
- in: query
|
|
5356
|
+
name: platform_org
|
|
5357
|
+
schema:
|
|
5358
|
+
type: string
|
|
5359
|
+
minLength: 1
|
|
5360
|
+
- in: query
|
|
5361
|
+
name: search
|
|
5362
|
+
schema:
|
|
5363
|
+
type: string
|
|
5364
|
+
minLength: 1
|
|
5365
|
+
- in: query
|
|
5366
|
+
name: sort
|
|
5367
|
+
schema:
|
|
5368
|
+
type: string
|
|
5369
|
+
minLength: 1
|
|
5370
|
+
- in: query
|
|
5371
|
+
name: status
|
|
5372
|
+
schema:
|
|
5373
|
+
type: string
|
|
5374
|
+
minLength: 1
|
|
5375
|
+
tags:
|
|
5376
|
+
- catalog
|
|
5377
|
+
security:
|
|
5378
|
+
- PlatformApiKeyAuthentication: []
|
|
5379
|
+
responses:
|
|
5380
|
+
'200':
|
|
5381
|
+
description: Submissions for the platform
|
|
5382
|
+
/api/catalog/applications/platform/manage/{submission_id}/:
|
|
5383
|
+
get:
|
|
5384
|
+
operationId: catalog_applications_platform_manage_retrieve_2
|
|
5385
|
+
description: |-
|
|
5386
|
+
Wires RBAC into a DRF view.
|
|
5387
|
+
|
|
5388
|
+
Two responsibilities:
|
|
5389
|
+
|
|
5390
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
5391
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
5392
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
5393
|
+
views that set `token_policies_enabled = True`).
|
|
5394
|
+
|
|
5395
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
5396
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
5397
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
5398
|
+
caller — bypass RBAC and serve the request."
|
|
5399
|
+
|
|
5400
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
5401
|
+
the early exit skips all RBAC prep work:
|
|
5402
|
+
|
|
5403
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
5404
|
+
return
|
|
5405
|
+
|
|
5406
|
+
Use `is_service_account` at any other touch points where caller
|
|
5407
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
5408
|
+
create, serializer context, etc.).
|
|
5409
|
+
parameters:
|
|
5410
|
+
- in: query
|
|
5411
|
+
name: platform_key
|
|
5412
|
+
schema:
|
|
5413
|
+
type: string
|
|
5414
|
+
minLength: 1
|
|
5415
|
+
- in: query
|
|
5416
|
+
name: platform_org
|
|
5417
|
+
schema:
|
|
5418
|
+
type: string
|
|
5419
|
+
minLength: 1
|
|
5420
|
+
- in: query
|
|
5421
|
+
name: search
|
|
5422
|
+
schema:
|
|
5423
|
+
type: string
|
|
5424
|
+
minLength: 1
|
|
5425
|
+
- in: query
|
|
5426
|
+
name: sort
|
|
5427
|
+
schema:
|
|
5428
|
+
type: string
|
|
5429
|
+
minLength: 1
|
|
5430
|
+
- in: query
|
|
5431
|
+
name: status
|
|
5432
|
+
schema:
|
|
5433
|
+
type: string
|
|
5434
|
+
minLength: 1
|
|
5435
|
+
- in: path
|
|
5436
|
+
name: submission_id
|
|
5437
|
+
schema:
|
|
5438
|
+
type: string
|
|
5439
|
+
pattern: ^\d+$
|
|
5440
|
+
required: true
|
|
5441
|
+
tags:
|
|
5442
|
+
- catalog
|
|
5443
|
+
security:
|
|
5444
|
+
- PlatformApiKeyAuthentication: []
|
|
5445
|
+
responses:
|
|
5446
|
+
'200':
|
|
5447
|
+
description: Full submission detail
|
|
5448
|
+
/api/catalog/applications/platform/manage/{submission_id}/attachments/{attachment_id}/download/:
|
|
5449
|
+
get:
|
|
5450
|
+
operationId: catalog_applications_platform_manage_attachments_download_retrieve
|
|
5451
|
+
description: |-
|
|
5452
|
+
Reviewer download: redirect to the storage's (signed, on S3) file URL.
|
|
5453
|
+
|
|
5454
|
+
Gated by ``IsDMAdmin | IsPlatformAdmin`` plus the RBAC verb check on the
|
|
5455
|
+
attachment's own platform when RBAC is enabled.
|
|
5456
|
+
parameters:
|
|
5457
|
+
- in: path
|
|
5458
|
+
name: attachment_id
|
|
5459
|
+
schema:
|
|
5460
|
+
type: string
|
|
5461
|
+
pattern: ^\d+$
|
|
5462
|
+
required: true
|
|
5463
|
+
- in: path
|
|
5464
|
+
name: submission_id
|
|
5465
|
+
schema:
|
|
5466
|
+
type: string
|
|
5467
|
+
pattern: ^\d+$
|
|
5468
|
+
required: true
|
|
5469
|
+
tags:
|
|
5470
|
+
- catalog
|
|
5471
|
+
security:
|
|
5472
|
+
- PlatformApiKeyAuthentication: []
|
|
5473
|
+
responses:
|
|
5474
|
+
'302':
|
|
5475
|
+
description: Redirect to the file URL
|
|
5476
|
+
/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/invite/:
|
|
5477
|
+
post:
|
|
5478
|
+
operationId: catalog_applications_platform_manage_candidates_invite_create
|
|
5479
|
+
description: |-
|
|
5480
|
+
Re-run settlement provisioning for one accepted candidate: links them
|
|
5481
|
+
if an account with their designated email now exists, or re-issues the
|
|
5482
|
+
platform invitation if none is active. Covers the invite-missing state.
|
|
5483
|
+
parameters:
|
|
5484
|
+
- in: path
|
|
5485
|
+
name: candidate_id
|
|
5486
|
+
schema:
|
|
5487
|
+
type: string
|
|
5488
|
+
pattern: ^\d+$
|
|
5489
|
+
required: true
|
|
5490
|
+
- in: path
|
|
5491
|
+
name: submission_id
|
|
5492
|
+
schema:
|
|
5493
|
+
type: string
|
|
5494
|
+
pattern: ^\d+$
|
|
5495
|
+
required: true
|
|
5496
|
+
tags:
|
|
5497
|
+
- catalog
|
|
5498
|
+
security:
|
|
5499
|
+
- PlatformApiKeyAuthentication: []
|
|
5500
|
+
responses:
|
|
5501
|
+
'200':
|
|
5502
|
+
description: Candidate after provisioning
|
|
5503
|
+
/api/catalog/applications/platform/manage/{submission_id}/candidates/{candidate_id}/link/:
|
|
5504
|
+
post:
|
|
5505
|
+
operationId: catalog_applications_platform_manage_candidates_link_create
|
|
5506
|
+
description: |-
|
|
5507
|
+
Manually link an accepted candidate to an existing account (the
|
|
5508
|
+
account-unlinked state: the family signed up outside invitation
|
|
5509
|
+
redemption, or under a different email than designated).
|
|
5510
|
+
parameters:
|
|
5511
|
+
- in: path
|
|
5512
|
+
name: candidate_id
|
|
5513
|
+
schema:
|
|
5514
|
+
type: string
|
|
5515
|
+
pattern: ^\d+$
|
|
5516
|
+
required: true
|
|
5517
|
+
- in: path
|
|
5518
|
+
name: submission_id
|
|
5519
|
+
schema:
|
|
5520
|
+
type: string
|
|
5521
|
+
pattern: ^\d+$
|
|
5522
|
+
required: true
|
|
5523
|
+
tags:
|
|
5524
|
+
- catalog
|
|
5525
|
+
requestBody:
|
|
5526
|
+
content:
|
|
5527
|
+
application/json:
|
|
5528
|
+
schema:
|
|
5529
|
+
$ref: '#/components/schemas/PlatformApplicationCandidateLink'
|
|
5530
|
+
application/scim+json:
|
|
5531
|
+
schema:
|
|
5532
|
+
$ref: '#/components/schemas/PlatformApplicationCandidateLink'
|
|
5533
|
+
application/x-www-form-urlencoded:
|
|
5534
|
+
schema:
|
|
5535
|
+
$ref: '#/components/schemas/PlatformApplicationCandidateLink'
|
|
5536
|
+
multipart/form-data:
|
|
5537
|
+
schema:
|
|
5538
|
+
$ref: '#/components/schemas/PlatformApplicationCandidateLink'
|
|
5539
|
+
'*/*':
|
|
5540
|
+
schema:
|
|
5541
|
+
$ref: '#/components/schemas/PlatformApplicationCandidateLink'
|
|
5542
|
+
security:
|
|
5543
|
+
- PlatformApiKeyAuthentication: []
|
|
5544
|
+
responses:
|
|
5545
|
+
'200':
|
|
5546
|
+
description: Candidate linked
|
|
5547
|
+
/api/catalog/applications/platform/manage/{submission_id}/course-assignments/:
|
|
5548
|
+
get:
|
|
5549
|
+
operationId: catalog_applications_platform_manage_course_assignments_retrieve
|
|
5550
|
+
description: |-
|
|
5551
|
+
Course assignments for a submission (#2134): list, and assign courses to
|
|
5552
|
+
accepted candidates individually or in bulk. Each successful item issues a
|
|
5553
|
+
CourseInvitation that the existing pipeline enrolls.
|
|
5554
|
+
parameters:
|
|
5555
|
+
- in: path
|
|
5556
|
+
name: submission_id
|
|
5557
|
+
schema:
|
|
5558
|
+
type: string
|
|
5559
|
+
pattern: ^\d+$
|
|
5560
|
+
required: true
|
|
5561
|
+
tags:
|
|
5562
|
+
- catalog
|
|
5563
|
+
security:
|
|
5564
|
+
- PlatformApiKeyAuthentication: []
|
|
5565
|
+
responses:
|
|
5566
|
+
'200':
|
|
5567
|
+
description: Assignments for the submission
|
|
5568
|
+
post:
|
|
5569
|
+
operationId: catalog_applications_platform_manage_course_assignments_create
|
|
5570
|
+
description: |-
|
|
5571
|
+
Course assignments for a submission (#2134): list, and assign courses to
|
|
5572
|
+
accepted candidates individually or in bulk. Each successful item issues a
|
|
5573
|
+
CourseInvitation that the existing pipeline enrolls.
|
|
5574
|
+
parameters:
|
|
5575
|
+
- in: path
|
|
5576
|
+
name: submission_id
|
|
5577
|
+
schema:
|
|
5578
|
+
type: string
|
|
5579
|
+
pattern: ^\d+$
|
|
5580
|
+
required: true
|
|
5581
|
+
tags:
|
|
5582
|
+
- catalog
|
|
5583
|
+
requestBody:
|
|
5584
|
+
content:
|
|
5585
|
+
application/json:
|
|
5586
|
+
schema:
|
|
5587
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignment'
|
|
5588
|
+
application/scim+json:
|
|
5589
|
+
schema:
|
|
5590
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignment'
|
|
5591
|
+
application/x-www-form-urlencoded:
|
|
5592
|
+
schema:
|
|
5593
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignment'
|
|
5594
|
+
multipart/form-data:
|
|
5595
|
+
schema:
|
|
5596
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignment'
|
|
5597
|
+
'*/*':
|
|
5598
|
+
schema:
|
|
5599
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignment'
|
|
5600
|
+
required: true
|
|
5601
|
+
security:
|
|
5602
|
+
- PlatformApiKeyAuthentication: []
|
|
5603
|
+
responses:
|
|
5604
|
+
'200':
|
|
5605
|
+
description: Per-item assignment results
|
|
5606
|
+
/api/catalog/applications/platform/manage/{submission_id}/course-assignments/{assignment_id}/:
|
|
5607
|
+
delete:
|
|
5608
|
+
operationId: catalog_applications_platform_manage_course_assignments_destroy
|
|
5609
|
+
description: |-
|
|
5610
|
+
Remove one course assignment (§9.2 "enrollment changes after the school
|
|
5611
|
+
year begins" — the record side).
|
|
5612
|
+
|
|
5613
|
+
Deactivates the assignment and cancels its invitation when the student has
|
|
5614
|
+
not yet been enrolled through it. It never unenrolls an already-enrolled
|
|
5615
|
+
student: platform admins un-enroll deliberately through the catalog
|
|
5616
|
+
enrollment endpoints, not from an admissions record.
|
|
5617
|
+
parameters:
|
|
5618
|
+
- in: path
|
|
5619
|
+
name: assignment_id
|
|
5620
|
+
schema:
|
|
5621
|
+
type: string
|
|
5622
|
+
pattern: ^\d+$
|
|
5623
|
+
required: true
|
|
5624
|
+
- in: path
|
|
5625
|
+
name: submission_id
|
|
5626
|
+
schema:
|
|
5627
|
+
type: string
|
|
5628
|
+
pattern: ^\d+$
|
|
5629
|
+
required: true
|
|
5630
|
+
tags:
|
|
5631
|
+
- catalog
|
|
5632
|
+
security:
|
|
5633
|
+
- PlatformApiKeyAuthentication: []
|
|
5634
|
+
responses:
|
|
5635
|
+
'204':
|
|
5636
|
+
description: Assignment removed
|
|
5637
|
+
/api/catalog/applications/platform/manage/{submission_id}/fee/:
|
|
5638
|
+
get:
|
|
5639
|
+
operationId: catalog_applications_platform_manage_fee_retrieve
|
|
5640
|
+
description: |-
|
|
5641
|
+
Reviewer/admin view of a submission's application fee (#2132, §5).
|
|
5642
|
+
|
|
5643
|
+
GET returns the charge and its event history; POST records an out-of-band
|
|
5644
|
+
payment or a waiver/refund/credit. Money collection through Stripe is a
|
|
5645
|
+
later segment; this is the domain side.
|
|
5646
|
+
parameters:
|
|
5647
|
+
- in: path
|
|
5648
|
+
name: submission_id
|
|
5649
|
+
schema:
|
|
5650
|
+
type: string
|
|
5651
|
+
pattern: ^\d+$
|
|
5652
|
+
required: true
|
|
5653
|
+
tags:
|
|
5654
|
+
- catalog
|
|
5655
|
+
security:
|
|
5656
|
+
- PlatformApiKeyAuthentication: []
|
|
5657
|
+
responses:
|
|
5658
|
+
'200':
|
|
5659
|
+
description: Charge + events
|
|
5660
|
+
post:
|
|
5661
|
+
operationId: catalog_applications_platform_manage_fee_create
|
|
5662
|
+
description: |-
|
|
5663
|
+
Reviewer/admin view of a submission's application fee (#2132, §5).
|
|
5664
|
+
|
|
5665
|
+
GET returns the charge and its event history; POST records an out-of-band
|
|
5666
|
+
payment or a waiver/refund/credit. Money collection through Stripe is a
|
|
5667
|
+
later segment; this is the domain side.
|
|
5668
|
+
parameters:
|
|
5669
|
+
- in: path
|
|
5670
|
+
name: submission_id
|
|
5671
|
+
schema:
|
|
5672
|
+
type: string
|
|
5673
|
+
pattern: ^\d+$
|
|
5674
|
+
required: true
|
|
5675
|
+
tags:
|
|
5676
|
+
- catalog
|
|
5677
|
+
requestBody:
|
|
5678
|
+
content:
|
|
5679
|
+
application/json:
|
|
5680
|
+
schema:
|
|
5681
|
+
$ref: '#/components/schemas/PlatformApplicationFeeAction'
|
|
5682
|
+
application/scim+json:
|
|
5683
|
+
schema:
|
|
5684
|
+
$ref: '#/components/schemas/PlatformApplicationFeeAction'
|
|
5685
|
+
application/x-www-form-urlencoded:
|
|
5686
|
+
schema:
|
|
5687
|
+
$ref: '#/components/schemas/PlatformApplicationFeeAction'
|
|
5688
|
+
multipart/form-data:
|
|
5689
|
+
schema:
|
|
5690
|
+
$ref: '#/components/schemas/PlatformApplicationFeeAction'
|
|
5691
|
+
'*/*':
|
|
5692
|
+
schema:
|
|
5693
|
+
$ref: '#/components/schemas/PlatformApplicationFeeAction'
|
|
5694
|
+
required: true
|
|
5695
|
+
security:
|
|
5696
|
+
- PlatformApiKeyAuthentication: []
|
|
5697
|
+
responses:
|
|
5698
|
+
'200':
|
|
5699
|
+
description: Charge updated
|
|
5700
|
+
/api/catalog/applications/platform/manage/{submission_id}/notes/:
|
|
5701
|
+
get:
|
|
5702
|
+
operationId: catalog_applications_platform_manage_notes_retrieve
|
|
5703
|
+
description: |-
|
|
5704
|
+
Internal reviewer notes on a submission (#2089, §6). Never surfaced on
|
|
5705
|
+
applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
|
|
5706
|
+
parameters:
|
|
5707
|
+
- in: query
|
|
5708
|
+
name: platform_key
|
|
5709
|
+
schema:
|
|
5710
|
+
type: string
|
|
5711
|
+
minLength: 1
|
|
5712
|
+
- in: query
|
|
5713
|
+
name: platform_org
|
|
5714
|
+
schema:
|
|
5715
|
+
type: string
|
|
5716
|
+
minLength: 1
|
|
5717
|
+
- in: query
|
|
5718
|
+
name: search
|
|
5719
|
+
schema:
|
|
5720
|
+
type: string
|
|
5721
|
+
minLength: 1
|
|
5722
|
+
- in: query
|
|
5723
|
+
name: sort
|
|
5724
|
+
schema:
|
|
5725
|
+
type: string
|
|
5726
|
+
minLength: 1
|
|
5727
|
+
- in: query
|
|
5728
|
+
name: status
|
|
5729
|
+
schema:
|
|
5730
|
+
type: string
|
|
5731
|
+
minLength: 1
|
|
5732
|
+
- in: path
|
|
5733
|
+
name: submission_id
|
|
5734
|
+
schema:
|
|
5735
|
+
type: string
|
|
5736
|
+
pattern: ^\d+$
|
|
5737
|
+
required: true
|
|
5738
|
+
tags:
|
|
5739
|
+
- catalog
|
|
5740
|
+
security:
|
|
5741
|
+
- PlatformApiKeyAuthentication: []
|
|
5742
|
+
responses:
|
|
5743
|
+
'200':
|
|
5744
|
+
description: Notes for the submission
|
|
5745
|
+
post:
|
|
5746
|
+
operationId: catalog_applications_platform_manage_notes_create
|
|
5747
|
+
description: |-
|
|
5748
|
+
Internal reviewer notes on a submission (#2089, §6). Never surfaced on
|
|
5749
|
+
applicant endpoints. GET lists (optional ``kind`` filter); POST adds one.
|
|
5750
|
+
parameters:
|
|
5751
|
+
- in: path
|
|
5752
|
+
name: submission_id
|
|
5753
|
+
schema:
|
|
5754
|
+
type: string
|
|
5755
|
+
pattern: ^\d+$
|
|
5756
|
+
required: true
|
|
5757
|
+
tags:
|
|
5758
|
+
- catalog
|
|
5759
|
+
requestBody:
|
|
5760
|
+
content:
|
|
5761
|
+
application/json:
|
|
5762
|
+
schema:
|
|
5763
|
+
$ref: '#/components/schemas/PlatformApplicationNote'
|
|
5764
|
+
application/scim+json:
|
|
5765
|
+
schema:
|
|
5766
|
+
$ref: '#/components/schemas/PlatformApplicationNote'
|
|
5767
|
+
application/x-www-form-urlencoded:
|
|
5768
|
+
schema:
|
|
5769
|
+
$ref: '#/components/schemas/PlatformApplicationNote'
|
|
5770
|
+
multipart/form-data:
|
|
5771
|
+
schema:
|
|
5772
|
+
$ref: '#/components/schemas/PlatformApplicationNote'
|
|
5773
|
+
'*/*':
|
|
5774
|
+
schema:
|
|
5775
|
+
$ref: '#/components/schemas/PlatformApplicationNote'
|
|
5776
|
+
required: true
|
|
5777
|
+
security:
|
|
5778
|
+
- PlatformApiKeyAuthentication: []
|
|
5779
|
+
responses:
|
|
5780
|
+
'201':
|
|
5781
|
+
description: Note created
|
|
5782
|
+
/api/catalog/applications/platform/manage/{submission_id}/notes/{note_id}/:
|
|
5783
|
+
patch:
|
|
5784
|
+
operationId: catalog_applications_platform_manage_notes_partial_update
|
|
5785
|
+
description: Edit or remove a single internal reviewer note.
|
|
5786
|
+
parameters:
|
|
5787
|
+
- in: path
|
|
5788
|
+
name: note_id
|
|
5789
|
+
schema:
|
|
5790
|
+
type: string
|
|
5791
|
+
pattern: ^\d+$
|
|
5792
|
+
required: true
|
|
5793
|
+
- in: path
|
|
5794
|
+
name: submission_id
|
|
5795
|
+
schema:
|
|
5796
|
+
type: string
|
|
5797
|
+
pattern: ^\d+$
|
|
5798
|
+
required: true
|
|
5799
|
+
tags:
|
|
5800
|
+
- catalog
|
|
5801
|
+
requestBody:
|
|
5802
|
+
content:
|
|
5803
|
+
application/json:
|
|
5804
|
+
schema:
|
|
5805
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationNote'
|
|
5806
|
+
application/scim+json:
|
|
5807
|
+
schema:
|
|
5808
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationNote'
|
|
5809
|
+
application/x-www-form-urlencoded:
|
|
5810
|
+
schema:
|
|
5811
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationNote'
|
|
5812
|
+
multipart/form-data:
|
|
5813
|
+
schema:
|
|
5814
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationNote'
|
|
5815
|
+
'*/*':
|
|
5816
|
+
schema:
|
|
5817
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationNote'
|
|
5818
|
+
security:
|
|
5819
|
+
- PlatformApiKeyAuthentication: []
|
|
5820
|
+
responses:
|
|
5821
|
+
'200':
|
|
5822
|
+
description: Note updated
|
|
5823
|
+
delete:
|
|
5824
|
+
operationId: catalog_applications_platform_manage_notes_destroy
|
|
5825
|
+
description: Edit or remove a single internal reviewer note.
|
|
5826
|
+
parameters:
|
|
5827
|
+
- in: path
|
|
5828
|
+
name: note_id
|
|
5829
|
+
schema:
|
|
5830
|
+
type: string
|
|
5831
|
+
pattern: ^\d+$
|
|
5832
|
+
required: true
|
|
5833
|
+
- in: path
|
|
5834
|
+
name: submission_id
|
|
5835
|
+
schema:
|
|
5836
|
+
type: string
|
|
5837
|
+
pattern: ^\d+$
|
|
5838
|
+
required: true
|
|
5839
|
+
tags:
|
|
5840
|
+
- catalog
|
|
5841
|
+
security:
|
|
5842
|
+
- PlatformApiKeyAuthentication: []
|
|
5843
|
+
responses:
|
|
5844
|
+
'204':
|
|
5845
|
+
description: Note removed
|
|
5846
|
+
/api/catalog/applications/platform/manage/{submission_id}/placements/:
|
|
5847
|
+
get:
|
|
5848
|
+
operationId: catalog_applications_platform_manage_placements_retrieve
|
|
5849
|
+
description: |-
|
|
5850
|
+
Placements for a submission (#2133): list, and assign a new placement
|
|
5851
|
+
linking an accepted candidate to the placement mentor.
|
|
5852
|
+
parameters:
|
|
5853
|
+
- in: path
|
|
5854
|
+
name: submission_id
|
|
5855
|
+
schema:
|
|
5856
|
+
type: string
|
|
5857
|
+
pattern: ^\d+$
|
|
5858
|
+
required: true
|
|
5859
|
+
tags:
|
|
5860
|
+
- catalog
|
|
5861
|
+
security:
|
|
5862
|
+
- PlatformApiKeyAuthentication: []
|
|
5863
|
+
responses:
|
|
5864
|
+
'200':
|
|
5865
|
+
description: Placements for the submission
|
|
5866
|
+
post:
|
|
5867
|
+
operationId: catalog_applications_platform_manage_placements_create
|
|
5868
|
+
description: |-
|
|
5869
|
+
Placements for a submission (#2133): list, and assign a new placement
|
|
5870
|
+
linking an accepted candidate to the placement mentor.
|
|
5871
|
+
parameters:
|
|
5872
|
+
- in: path
|
|
5873
|
+
name: submission_id
|
|
5874
|
+
schema:
|
|
5875
|
+
type: string
|
|
5876
|
+
pattern: ^\d+$
|
|
5877
|
+
required: true
|
|
5878
|
+
tags:
|
|
5879
|
+
- catalog
|
|
5880
|
+
requestBody:
|
|
5881
|
+
content:
|
|
5882
|
+
application/json:
|
|
5883
|
+
schema:
|
|
5884
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementCreate'
|
|
5885
|
+
application/scim+json:
|
|
5886
|
+
schema:
|
|
5887
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementCreate'
|
|
5888
|
+
application/x-www-form-urlencoded:
|
|
5889
|
+
schema:
|
|
5890
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementCreate'
|
|
5891
|
+
multipart/form-data:
|
|
5892
|
+
schema:
|
|
5893
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementCreate'
|
|
5894
|
+
'*/*':
|
|
5895
|
+
schema:
|
|
5896
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementCreate'
|
|
5897
|
+
required: true
|
|
5898
|
+
security:
|
|
5899
|
+
- PlatformApiKeyAuthentication: []
|
|
5900
|
+
responses:
|
|
5901
|
+
'200':
|
|
5902
|
+
description: Per-item placement results
|
|
5903
|
+
/api/catalog/applications/platform/manage/{submission_id}/placements/{placement_id}/:
|
|
5904
|
+
patch:
|
|
5905
|
+
operationId: catalog_applications_platform_manage_placements_partial_update
|
|
5906
|
+
description: 'Advance a single placement: status, the agent''s result, admin
|
|
5907
|
+
override.'
|
|
5908
|
+
parameters:
|
|
5909
|
+
- in: path
|
|
5910
|
+
name: placement_id
|
|
5911
|
+
schema:
|
|
5912
|
+
type: string
|
|
5913
|
+
pattern: ^\d+$
|
|
5914
|
+
required: true
|
|
5915
|
+
- in: path
|
|
5916
|
+
name: submission_id
|
|
5917
|
+
schema:
|
|
5918
|
+
type: string
|
|
5919
|
+
pattern: ^\d+$
|
|
5920
|
+
required: true
|
|
5921
|
+
tags:
|
|
5922
|
+
- catalog
|
|
5923
|
+
requestBody:
|
|
5924
|
+
content:
|
|
5925
|
+
application/json:
|
|
5926
|
+
schema:
|
|
5927
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationPlacementUpdate'
|
|
5928
|
+
application/scim+json:
|
|
5929
|
+
schema:
|
|
5930
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationPlacementUpdate'
|
|
5931
|
+
application/x-www-form-urlencoded:
|
|
5932
|
+
schema:
|
|
5933
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationPlacementUpdate'
|
|
5934
|
+
multipart/form-data:
|
|
5935
|
+
schema:
|
|
5936
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationPlacementUpdate'
|
|
5937
|
+
'*/*':
|
|
5938
|
+
schema:
|
|
5939
|
+
$ref: '#/components/schemas/PatchedPlatformApplicationPlacementUpdate'
|
|
5940
|
+
security:
|
|
5941
|
+
- PlatformApiKeyAuthentication: []
|
|
5942
|
+
responses:
|
|
5943
|
+
'200':
|
|
5944
|
+
description: Placement updated
|
|
5945
|
+
/api/catalog/applications/platform/manage/{submission_id}/submit/:
|
|
5946
|
+
post:
|
|
5947
|
+
operationId: catalog_applications_platform_manage_submit_create
|
|
5948
|
+
description: |-
|
|
5949
|
+
Admin submit-with-exceptions (§2.1 "administratively waived"): push a
|
|
5950
|
+
family's editable application to Submitted, recording a waiver for every
|
|
5951
|
+
required item still missing and bypassing an unpaid fee gate (the charge
|
|
5952
|
+
stays payable/waivable). Present-but-invalid answers still block (400).
|
|
5953
|
+
parameters:
|
|
5954
|
+
- in: path
|
|
5955
|
+
name: submission_id
|
|
5956
|
+
schema:
|
|
5957
|
+
type: string
|
|
5958
|
+
pattern: ^\d+$
|
|
5959
|
+
required: true
|
|
5960
|
+
tags:
|
|
5961
|
+
- catalog
|
|
5962
|
+
requestBody:
|
|
5963
|
+
content:
|
|
5964
|
+
application/json:
|
|
5965
|
+
schema:
|
|
5966
|
+
$ref: '#/components/schemas/PlatformApplicationAdminSubmit'
|
|
5967
|
+
application/scim+json:
|
|
5968
|
+
schema:
|
|
5969
|
+
$ref: '#/components/schemas/PlatformApplicationAdminSubmit'
|
|
5970
|
+
application/x-www-form-urlencoded:
|
|
5971
|
+
schema:
|
|
5972
|
+
$ref: '#/components/schemas/PlatformApplicationAdminSubmit'
|
|
5973
|
+
multipart/form-data:
|
|
5974
|
+
schema:
|
|
5975
|
+
$ref: '#/components/schemas/PlatformApplicationAdminSubmit'
|
|
5976
|
+
'*/*':
|
|
5977
|
+
schema:
|
|
5978
|
+
$ref: '#/components/schemas/PlatformApplicationAdminSubmit'
|
|
5979
|
+
security:
|
|
5980
|
+
- PlatformApiKeyAuthentication: []
|
|
5981
|
+
responses:
|
|
5982
|
+
'200':
|
|
5983
|
+
description: Application submitted
|
|
5984
|
+
/api/catalog/applications/platform/manage/{submission_id}/transition/:
|
|
5985
|
+
post:
|
|
5986
|
+
operationId: catalog_applications_platform_manage_transition_create
|
|
5987
|
+
description: |-
|
|
5988
|
+
Advance a submission or a single candidate through the review pipeline
|
|
5989
|
+
(#2089, §5-6). A ``candidate_id`` scopes the action to one person; without
|
|
5990
|
+
it the action applies to every candidate that can legally accept it. When
|
|
5991
|
+
``action`` is ``decline`` and ``block`` is set, the applicant is also added
|
|
5992
|
+
to the platform ban-list (deny-with-block).
|
|
5993
|
+
parameters:
|
|
5994
|
+
- in: path
|
|
5995
|
+
name: submission_id
|
|
5996
|
+
schema:
|
|
5997
|
+
type: string
|
|
5998
|
+
pattern: ^\d+$
|
|
5999
|
+
required: true
|
|
6000
|
+
tags:
|
|
6001
|
+
- catalog
|
|
6002
|
+
requestBody:
|
|
6003
|
+
content:
|
|
6004
|
+
application/json:
|
|
6005
|
+
schema:
|
|
6006
|
+
$ref: '#/components/schemas/PlatformApplicationTransition'
|
|
6007
|
+
application/scim+json:
|
|
6008
|
+
schema:
|
|
6009
|
+
$ref: '#/components/schemas/PlatformApplicationTransition'
|
|
6010
|
+
application/x-www-form-urlencoded:
|
|
6011
|
+
schema:
|
|
6012
|
+
$ref: '#/components/schemas/PlatformApplicationTransition'
|
|
6013
|
+
multipart/form-data:
|
|
6014
|
+
schema:
|
|
6015
|
+
$ref: '#/components/schemas/PlatformApplicationTransition'
|
|
6016
|
+
'*/*':
|
|
6017
|
+
schema:
|
|
6018
|
+
$ref: '#/components/schemas/PlatformApplicationTransition'
|
|
6019
|
+
required: true
|
|
6020
|
+
security:
|
|
6021
|
+
- PlatformApiKeyAuthentication: []
|
|
6022
|
+
responses:
|
|
6023
|
+
'200':
|
|
6024
|
+
description: Updated submission detail
|
|
6025
|
+
/api/catalog/applications/platform/manage/{submission_id}/waivers/:
|
|
6026
|
+
post:
|
|
6027
|
+
operationId: catalog_applications_platform_manage_waivers_create
|
|
6028
|
+
description: |-
|
|
6029
|
+
Waive a required item on one application (§2.1 "administratively
|
|
6030
|
+
waived"): POST excuses a missing required field so it no longer blocks
|
|
6031
|
+
submission; DELETE reinstates it. Waivers excuse absence only — a
|
|
6032
|
+
present-but-invalid answer still blocks. The fee is waived through its own
|
|
6033
|
+
fee endpoint action, which also settles the money record.
|
|
6034
|
+
parameters:
|
|
6035
|
+
- in: path
|
|
6036
|
+
name: submission_id
|
|
6037
|
+
schema:
|
|
6038
|
+
type: string
|
|
6039
|
+
pattern: ^\d+$
|
|
6040
|
+
required: true
|
|
6041
|
+
tags:
|
|
6042
|
+
- catalog
|
|
6043
|
+
requestBody:
|
|
6044
|
+
content:
|
|
6045
|
+
application/json:
|
|
6046
|
+
schema:
|
|
6047
|
+
$ref: '#/components/schemas/PlatformApplicationWaiver'
|
|
6048
|
+
application/scim+json:
|
|
6049
|
+
schema:
|
|
6050
|
+
$ref: '#/components/schemas/PlatformApplicationWaiver'
|
|
6051
|
+
application/x-www-form-urlencoded:
|
|
6052
|
+
schema:
|
|
6053
|
+
$ref: '#/components/schemas/PlatformApplicationWaiver'
|
|
6054
|
+
multipart/form-data:
|
|
6055
|
+
schema:
|
|
6056
|
+
$ref: '#/components/schemas/PlatformApplicationWaiver'
|
|
6057
|
+
'*/*':
|
|
6058
|
+
schema:
|
|
6059
|
+
$ref: '#/components/schemas/PlatformApplicationWaiver'
|
|
6060
|
+
required: true
|
|
6061
|
+
security:
|
|
6062
|
+
- PlatformApiKeyAuthentication: []
|
|
6063
|
+
responses:
|
|
6064
|
+
'200':
|
|
6065
|
+
description: Waiver recorded
|
|
6066
|
+
delete:
|
|
6067
|
+
operationId: catalog_applications_platform_manage_waivers_destroy
|
|
6068
|
+
description: |-
|
|
6069
|
+
Waive a required item on one application (§2.1 "administratively
|
|
6070
|
+
waived"): POST excuses a missing required field so it no longer blocks
|
|
6071
|
+
submission; DELETE reinstates it. Waivers excuse absence only — a
|
|
6072
|
+
present-but-invalid answer still blocks. The fee is waived through its own
|
|
6073
|
+
fee endpoint action, which also settles the money record.
|
|
6074
|
+
parameters:
|
|
6075
|
+
- in: path
|
|
6076
|
+
name: submission_id
|
|
6077
|
+
schema:
|
|
6078
|
+
type: string
|
|
6079
|
+
pattern: ^\d+$
|
|
6080
|
+
required: true
|
|
6081
|
+
tags:
|
|
6082
|
+
- catalog
|
|
6083
|
+
security:
|
|
6084
|
+
- PlatformApiKeyAuthentication: []
|
|
6085
|
+
responses:
|
|
6086
|
+
'204':
|
|
6087
|
+
description: Waiver removed
|
|
6088
|
+
/api/catalog/applications/platform/manage/blocks/:
|
|
6089
|
+
get:
|
|
6090
|
+
operationId: catalog_applications_platform_manage_blocks_retrieve
|
|
6091
|
+
description: List the active application blocks (ban-list) for a platform.
|
|
6092
|
+
parameters:
|
|
6093
|
+
- in: query
|
|
6094
|
+
name: platform_key
|
|
6095
|
+
schema:
|
|
6096
|
+
type: string
|
|
6097
|
+
minLength: 1
|
|
6098
|
+
- in: query
|
|
6099
|
+
name: platform_org
|
|
6100
|
+
schema:
|
|
6101
|
+
type: string
|
|
6102
|
+
minLength: 1
|
|
6103
|
+
- in: query
|
|
6104
|
+
name: search
|
|
6105
|
+
schema:
|
|
6106
|
+
type: string
|
|
6107
|
+
minLength: 1
|
|
6108
|
+
- in: query
|
|
6109
|
+
name: sort
|
|
6110
|
+
schema:
|
|
6111
|
+
type: string
|
|
6112
|
+
minLength: 1
|
|
6113
|
+
- in: query
|
|
6114
|
+
name: status
|
|
6115
|
+
schema:
|
|
6116
|
+
type: string
|
|
6117
|
+
minLength: 1
|
|
6118
|
+
tags:
|
|
6119
|
+
- catalog
|
|
6120
|
+
security:
|
|
6121
|
+
- PlatformApiKeyAuthentication: []
|
|
6122
|
+
responses:
|
|
6123
|
+
'200':
|
|
6124
|
+
description: Active blocks
|
|
6125
|
+
/api/catalog/applications/platform/manage/blocks/{block_id}/:
|
|
6126
|
+
delete:
|
|
6127
|
+
operationId: catalog_applications_platform_manage_blocks_destroy
|
|
6128
|
+
description: Lift a single active application block (unblock).
|
|
6129
|
+
parameters:
|
|
6130
|
+
- in: path
|
|
6131
|
+
name: block_id
|
|
6132
|
+
schema:
|
|
6133
|
+
type: string
|
|
6134
|
+
pattern: ^\d+$
|
|
6135
|
+
required: true
|
|
6136
|
+
- in: query
|
|
6137
|
+
name: platform_key
|
|
6138
|
+
schema:
|
|
6139
|
+
type: string
|
|
6140
|
+
minLength: 1
|
|
6141
|
+
- in: query
|
|
6142
|
+
name: platform_org
|
|
6143
|
+
schema:
|
|
6144
|
+
type: string
|
|
6145
|
+
minLength: 1
|
|
6146
|
+
- in: query
|
|
6147
|
+
name: search
|
|
6148
|
+
schema:
|
|
6149
|
+
type: string
|
|
6150
|
+
minLength: 1
|
|
6151
|
+
- in: query
|
|
6152
|
+
name: sort
|
|
6153
|
+
schema:
|
|
6154
|
+
type: string
|
|
6155
|
+
minLength: 1
|
|
6156
|
+
- in: query
|
|
6157
|
+
name: status
|
|
6158
|
+
schema:
|
|
6159
|
+
type: string
|
|
6160
|
+
minLength: 1
|
|
6161
|
+
tags:
|
|
6162
|
+
- catalog
|
|
6163
|
+
security:
|
|
6164
|
+
- PlatformApiKeyAuthentication: []
|
|
6165
|
+
responses:
|
|
6166
|
+
'204':
|
|
6167
|
+
description: Block lifted
|
|
6168
|
+
/api/catalog/applications/platform/manage/stats/:
|
|
6169
|
+
get:
|
|
6170
|
+
operationId: catalog_applications_platform_manage_stats_retrieve
|
|
6171
|
+
description: |-
|
|
6172
|
+
Wires RBAC into a DRF view.
|
|
6173
|
+
|
|
6174
|
+
Two responsibilities:
|
|
6175
|
+
|
|
6176
|
+
1. When RBAC is enabled, replace the view's `permission_classes` with
|
|
6177
|
+
`RbacAuthGate` (the gate the RBAC layer assumes — `IsEdxAuthenticated`
|
|
6178
|
+
semantics, plus opt-in acceptance of token-policies PlatformApiKeys for
|
|
6179
|
+
views that set `token_policies_enabled = True`).
|
|
6180
|
+
|
|
6181
|
+
2. Detect server-to-server (Django auth) callers via `is_service_account`.
|
|
6182
|
+
Server-to-server tokens authenticate as Django auth users with no
|
|
6183
|
+
relationship to a platform EdxUser. The convention is "we trust this
|
|
6184
|
+
caller — bypass RBAC and serve the request."
|
|
6185
|
+
|
|
6186
|
+
Combine it with the RBAC-disabled check at the top of `initial()` so
|
|
6187
|
+
the early exit skips all RBAC prep work:
|
|
6188
|
+
|
|
6189
|
+
if not ConfigFlags.rbac_enabled() or self.is_service_account:
|
|
6190
|
+
return
|
|
6191
|
+
|
|
6192
|
+
Use `is_service_account` at any other touch points where caller
|
|
6193
|
+
identity matters (queryset ownership filters, owner attribution on
|
|
6194
|
+
create, serializer context, etc.).
|
|
6195
|
+
parameters:
|
|
6196
|
+
- in: query
|
|
6197
|
+
name: platform_key
|
|
6198
|
+
schema:
|
|
6199
|
+
type: string
|
|
6200
|
+
minLength: 1
|
|
6201
|
+
- in: query
|
|
6202
|
+
name: platform_org
|
|
6203
|
+
schema:
|
|
6204
|
+
type: string
|
|
6205
|
+
minLength: 1
|
|
6206
|
+
- in: query
|
|
6207
|
+
name: search
|
|
6208
|
+
schema:
|
|
6209
|
+
type: string
|
|
6210
|
+
minLength: 1
|
|
6211
|
+
- in: query
|
|
6212
|
+
name: sort
|
|
6213
|
+
schema:
|
|
6214
|
+
type: string
|
|
6215
|
+
minLength: 1
|
|
6216
|
+
- in: query
|
|
6217
|
+
name: status
|
|
6218
|
+
schema:
|
|
6219
|
+
type: string
|
|
6220
|
+
minLength: 1
|
|
6221
|
+
tags:
|
|
6222
|
+
- catalog
|
|
6223
|
+
security:
|
|
6224
|
+
- PlatformApiKeyAuthentication: []
|
|
6225
|
+
responses:
|
|
6226
|
+
'200':
|
|
6227
|
+
description: Per-status counts
|
|
6228
|
+
/api/catalog/applications/platform/renew/:
|
|
6229
|
+
post:
|
|
6230
|
+
operationId: catalog_applications_platform_renew_create
|
|
6231
|
+
description: |-
|
|
6232
|
+
Start an annual re-enrollment (#2135): a normal draft create whose
|
|
6233
|
+
responses are pre-filled from the caller's most recent approved submission
|
|
6234
|
+
(current-schema fields only; signatures, consents, files, and fields the
|
|
6235
|
+
form flags fresh are re-asked), linked to that prior submission. With no
|
|
6236
|
+
prior approved submission this behaves as a plain create.
|
|
6237
|
+
tags:
|
|
6238
|
+
- catalog
|
|
6239
|
+
requestBody:
|
|
6240
|
+
content:
|
|
6241
|
+
application/json:
|
|
6242
|
+
schema:
|
|
6243
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
6244
|
+
application/scim+json:
|
|
6245
|
+
schema:
|
|
6246
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
6247
|
+
application/x-www-form-urlencoded:
|
|
6248
|
+
schema:
|
|
6249
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
6250
|
+
multipart/form-data:
|
|
6251
|
+
schema:
|
|
6252
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
6253
|
+
'*/*':
|
|
6254
|
+
schema:
|
|
6255
|
+
$ref: '#/components/schemas/PlatformApplicationCreate'
|
|
6256
|
+
required: true
|
|
6257
|
+
security:
|
|
6258
|
+
- PlatformApiKeyAuthentication: []
|
|
6259
|
+
responses:
|
|
6260
|
+
'201':
|
|
6261
|
+
content:
|
|
6262
|
+
application/json:
|
|
6263
|
+
schema:
|
|
6264
|
+
$ref: '#/components/schemas/PlatformApplicationDetail'
|
|
6265
|
+
description: ''
|
|
6266
|
+
/api/catalog/applications/platform/status/:
|
|
6267
|
+
get:
|
|
6268
|
+
operationId: catalog_applications_platform_status_retrieve
|
|
6269
|
+
description: |-
|
|
6270
|
+
Authenticated applicants, including learners on AXD student tokens.
|
|
6271
|
+
|
|
6272
|
+
Prepends StudentTokenAuthentication like core UserPlatformSelfLinkView (it is
|
|
6273
|
+
not in the DRF defaults, but learners self-applying use it). An anonymous
|
|
6274
|
+
request returns 401, not 403: DRF's ``permission_denied`` raises
|
|
6275
|
+
``NotAuthenticated`` whenever no authenticator succeeded.
|
|
6276
|
+
parameters:
|
|
6277
|
+
- in: query
|
|
6278
|
+
name: form_id
|
|
6279
|
+
schema:
|
|
6280
|
+
type: integer
|
|
6281
|
+
- in: query
|
|
6282
|
+
name: platform_key
|
|
6283
|
+
schema:
|
|
6284
|
+
type: string
|
|
6285
|
+
minLength: 1
|
|
6286
|
+
- in: query
|
|
6287
|
+
name: platform_org
|
|
6288
|
+
schema:
|
|
6289
|
+
type: string
|
|
6290
|
+
minLength: 1
|
|
6291
|
+
tags:
|
|
6292
|
+
- catalog
|
|
6293
|
+
security:
|
|
6294
|
+
- PlatformApiKeyAuthentication: []
|
|
6295
|
+
responses:
|
|
6296
|
+
'200':
|
|
6297
|
+
description: Gate state
|
|
4755
6298
|
/api/catalog/conditionals/course/eligibility/:
|
|
4756
6299
|
get:
|
|
4757
6300
|
operationId: catalog_conditionals_course_eligibility_retrieve
|
|
@@ -20160,6 +21703,34 @@ paths:
|
|
|
20160
21703
|
description: Permission denied - insufficient RBAC permissions
|
|
20161
21704
|
'404':
|
|
20162
21705
|
description: Policy not found
|
|
21706
|
+
/api/core/rbac/resources/:
|
|
21707
|
+
get:
|
|
21708
|
+
operationId: core_rbac_resources_retrieve
|
|
21709
|
+
description: |-
|
|
21710
|
+
GET the resource tree node at `path`.
|
|
21711
|
+
|
|
21712
|
+
Platform comes from the request token (service accounts pass platform_key).
|
|
21713
|
+
summary: Discover resources for policy building
|
|
21714
|
+
parameters:
|
|
21715
|
+
- in: query
|
|
21716
|
+
name: path
|
|
21717
|
+
schema:
|
|
21718
|
+
type: string
|
|
21719
|
+
default: /
|
|
21720
|
+
minLength: 1
|
|
21721
|
+
description: Discovery path, e.g. '/', '/mentors/', '/mentors/5/'.
|
|
21722
|
+
tags:
|
|
21723
|
+
- core
|
|
21724
|
+
security:
|
|
21725
|
+
- PlatformApiKeyAuthentication: []
|
|
21726
|
+
responses:
|
|
21727
|
+
'200':
|
|
21728
|
+
description: An entity node (child collections) or a collection node (list_url
|
|
21729
|
+
+ search_qps + result_fields).
|
|
21730
|
+
'400':
|
|
21731
|
+
description: Invalid path or unknown platform
|
|
21732
|
+
'403':
|
|
21733
|
+
description: Missing resource-discovery access
|
|
20163
21734
|
/api/core/rbac/roles/:
|
|
20164
21735
|
get:
|
|
20165
21736
|
operationId: core_rbac_roles_list
|
|
@@ -45920,6 +47491,14 @@ components:
|
|
|
45920
47491
|
* `course_resource` - Course and Resource
|
|
45921
47492
|
* `unit_resource` - Unit and Resource
|
|
45922
47493
|
* `all` - Course, Unit, and Resource
|
|
47494
|
+
KindEnum:
|
|
47495
|
+
enum:
|
|
47496
|
+
- general
|
|
47497
|
+
- interview
|
|
47498
|
+
type: string
|
|
47499
|
+
description: |-
|
|
47500
|
+
* `general` - general
|
|
47501
|
+
* `interview` - interview
|
|
45923
47502
|
LauncherViewPostRequest:
|
|
45924
47503
|
type: object
|
|
45925
47504
|
properties:
|
|
@@ -47065,6 +48644,7 @@ components:
|
|
|
47065
48644
|
* `DEFAULT_TEMPLATE` - Default Template
|
|
47066
48645
|
* `HUMAN_SUPPORT_NOTIFICATION` - Human Support Notification
|
|
47067
48646
|
* `PATHWAY_ENROLLMENT_CONFIRMATION` - Pathway Enrollment Confirmation
|
|
48647
|
+
* `PLATFORM_APPLICATION_DECISION` - Platform Application Decision
|
|
47068
48648
|
* `PLATFORM_INVITATION` - Platform Invitation
|
|
47069
48649
|
* `POLICY_ASSIGNMENT` - Policy Assignment
|
|
47070
48650
|
* `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
|
|
@@ -47085,7 +48665,7 @@ components:
|
|
|
47085
48665
|
* `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
|
|
47086
48666
|
* `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
|
|
47087
48667
|
oneOf:
|
|
47088
|
-
- $ref: '#/components/schemas/
|
|
48668
|
+
- $ref: '#/components/schemas/TypeB29Enum'
|
|
47089
48669
|
- $ref: '#/components/schemas/NullEnum'
|
|
47090
48670
|
name:
|
|
47091
48671
|
type: string
|
|
@@ -47474,6 +49054,7 @@ components:
|
|
|
47474
49054
|
* `DEFAULT_TEMPLATE` - Default Template
|
|
47475
49055
|
* `HUMAN_SUPPORT_NOTIFICATION` - Human Support Notification
|
|
47476
49056
|
* `PATHWAY_ENROLLMENT_CONFIRMATION` - Pathway Enrollment Confirmation
|
|
49057
|
+
* `PLATFORM_APPLICATION_DECISION` - Platform Application Decision
|
|
47477
49058
|
* `PLATFORM_INVITATION` - Platform Invitation
|
|
47478
49059
|
* `POLICY_ASSIGNMENT` - Policy Assignment
|
|
47479
49060
|
* `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
|
|
@@ -47494,7 +49075,7 @@ components:
|
|
|
47494
49075
|
* `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
|
|
47495
49076
|
* `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
|
|
47496
49077
|
oneOf:
|
|
47497
|
-
- $ref: '#/components/schemas/
|
|
49078
|
+
- $ref: '#/components/schemas/TypeB29Enum'
|
|
47498
49079
|
- $ref: '#/components/schemas/BlankEnum'
|
|
47499
49080
|
- $ref: '#/components/schemas/NullEnum'
|
|
47500
49081
|
name:
|
|
@@ -49497,6 +51078,7 @@ components:
|
|
|
49497
51078
|
* `DEFAULT_TEMPLATE` - Default Template
|
|
49498
51079
|
* `HUMAN_SUPPORT_NOTIFICATION` - Human Support Notification
|
|
49499
51080
|
* `PATHWAY_ENROLLMENT_CONFIRMATION` - Pathway Enrollment Confirmation
|
|
51081
|
+
* `PLATFORM_APPLICATION_DECISION` - Platform Application Decision
|
|
49500
51082
|
* `PLATFORM_INVITATION` - Platform Invitation
|
|
49501
51083
|
* `POLICY_ASSIGNMENT` - Policy Assignment
|
|
49502
51084
|
* `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
|
|
@@ -49517,7 +51099,7 @@ components:
|
|
|
49517
51099
|
* `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
|
|
49518
51100
|
* `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
|
|
49519
51101
|
oneOf:
|
|
49520
|
-
- $ref: '#/components/schemas/
|
|
51102
|
+
- $ref: '#/components/schemas/TypeB29Enum'
|
|
49521
51103
|
- $ref: '#/components/schemas/NullEnum'
|
|
49522
51104
|
name:
|
|
49523
51105
|
type: string
|
|
@@ -50200,6 +51782,49 @@ components:
|
|
|
50200
51782
|
type: integer
|
|
50201
51783
|
writeOnly: true
|
|
50202
51784
|
description: RbacGroup IDs to disassociate from this token (mode=token_policies)
|
|
51785
|
+
PatchedPlatformApplicationFormUpdate:
|
|
51786
|
+
type: object
|
|
51787
|
+
description: Body for updating a platform's application form.
|
|
51788
|
+
properties:
|
|
51789
|
+
platform_key:
|
|
51790
|
+
type: string
|
|
51791
|
+
platform_org:
|
|
51792
|
+
type: string
|
|
51793
|
+
name:
|
|
51794
|
+
type: string
|
|
51795
|
+
schema: {}
|
|
51796
|
+
config: {}
|
|
51797
|
+
enabled:
|
|
51798
|
+
type: boolean
|
|
51799
|
+
is_default:
|
|
51800
|
+
type: boolean
|
|
51801
|
+
PatchedPlatformApplicationNote:
|
|
51802
|
+
type: object
|
|
51803
|
+
description: Body for adding/updating an internal reviewer note.
|
|
51804
|
+
properties:
|
|
51805
|
+
body:
|
|
51806
|
+
type: string
|
|
51807
|
+
kind:
|
|
51808
|
+
$ref: '#/components/schemas/KindEnum'
|
|
51809
|
+
PatchedPlatformApplicationPlacementUpdate:
|
|
51810
|
+
type: object
|
|
51811
|
+
description: |-
|
|
51812
|
+
Body for advancing a placement: status, the agent's result, an admin
|
|
51813
|
+
override, or a note. All optional; at least one must be present.
|
|
51814
|
+
properties:
|
|
51815
|
+
status:
|
|
51816
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementUpdateStatusEnum'
|
|
51817
|
+
result: {}
|
|
51818
|
+
override: {}
|
|
51819
|
+
session_id:
|
|
51820
|
+
type: string
|
|
51821
|
+
note:
|
|
51822
|
+
type: string
|
|
51823
|
+
PatchedPlatformApplicationUpdate:
|
|
51824
|
+
type: object
|
|
51825
|
+
description: Body for updating a draft's responses.
|
|
51826
|
+
properties:
|
|
51827
|
+
responses: {}
|
|
50203
51828
|
PatchedPlatformPublicImageAsset:
|
|
50204
51829
|
type: object
|
|
50205
51830
|
properties:
|
|
@@ -52634,6 +54259,267 @@ components:
|
|
|
52634
54259
|
type: boolean
|
|
52635
54260
|
required:
|
|
52636
54261
|
- write
|
|
54262
|
+
PlatformApplicationAdminSubmit:
|
|
54263
|
+
type: object
|
|
54264
|
+
description: Body for the admin submit-with-exceptions action.
|
|
54265
|
+
properties:
|
|
54266
|
+
note:
|
|
54267
|
+
type: string
|
|
54268
|
+
PlatformApplicationAttachmentUpload:
|
|
54269
|
+
type: object
|
|
54270
|
+
description: Multipart body for uploading an attachment against a file field.
|
|
54271
|
+
properties:
|
|
54272
|
+
field:
|
|
54273
|
+
type: string
|
|
54274
|
+
item_id:
|
|
54275
|
+
type: string
|
|
54276
|
+
file:
|
|
54277
|
+
type: string
|
|
54278
|
+
format: uri
|
|
54279
|
+
required:
|
|
54280
|
+
- field
|
|
54281
|
+
- file
|
|
54282
|
+
PlatformApplicationCandidateLink:
|
|
54283
|
+
type: object
|
|
54284
|
+
description: |-
|
|
54285
|
+
Manually link an accepted candidate to an existing account; provide
|
|
54286
|
+
one of user_id or email.
|
|
54287
|
+
properties:
|
|
54288
|
+
user_id:
|
|
54289
|
+
type: integer
|
|
54290
|
+
email:
|
|
54291
|
+
type: string
|
|
54292
|
+
format: email
|
|
54293
|
+
PlatformApplicationCourseAssignment:
|
|
54294
|
+
type: object
|
|
54295
|
+
description: 'Body for assigning courses (#2134): one or many items in a single
|
|
54296
|
+
call.'
|
|
54297
|
+
properties:
|
|
54298
|
+
assignments:
|
|
54299
|
+
type: array
|
|
54300
|
+
items:
|
|
54301
|
+
$ref: '#/components/schemas/PlatformApplicationCourseAssignmentItem'
|
|
54302
|
+
required:
|
|
54303
|
+
- assignments
|
|
54304
|
+
PlatformApplicationCourseAssignmentItem:
|
|
54305
|
+
type: object
|
|
54306
|
+
description: 'One course assignment: which candidate, which course, and the
|
|
54307
|
+
dates.'
|
|
54308
|
+
properties:
|
|
54309
|
+
candidate_id:
|
|
54310
|
+
type: integer
|
|
54311
|
+
course_id:
|
|
54312
|
+
type: string
|
|
54313
|
+
started:
|
|
54314
|
+
type: string
|
|
54315
|
+
format: date-time
|
|
54316
|
+
expired:
|
|
54317
|
+
type: string
|
|
54318
|
+
format: date-time
|
|
54319
|
+
placement_id:
|
|
54320
|
+
type: integer
|
|
54321
|
+
required:
|
|
54322
|
+
- candidate_id
|
|
54323
|
+
- course_id
|
|
54324
|
+
PlatformApplicationCreate:
|
|
54325
|
+
type: object
|
|
54326
|
+
description: Body for creating an application draft.
|
|
54327
|
+
properties:
|
|
54328
|
+
platform_key:
|
|
54329
|
+
type: string
|
|
54330
|
+
responses: {}
|
|
54331
|
+
form_id:
|
|
54332
|
+
type: integer
|
|
54333
|
+
required:
|
|
54334
|
+
- platform_key
|
|
54335
|
+
PlatformApplicationDetail:
|
|
54336
|
+
type: object
|
|
54337
|
+
description: Minimal schema for a submission response object.
|
|
54338
|
+
properties:
|
|
54339
|
+
id:
|
|
54340
|
+
type: integer
|
|
54341
|
+
status:
|
|
54342
|
+
type: string
|
|
54343
|
+
required:
|
|
54344
|
+
- id
|
|
54345
|
+
- status
|
|
54346
|
+
PlatformApplicationFeeAction:
|
|
54347
|
+
type: object
|
|
54348
|
+
description: Admin action on a submission's application fee.
|
|
54349
|
+
properties:
|
|
54350
|
+
action:
|
|
54351
|
+
$ref: '#/components/schemas/PlatformApplicationFeeActionActionEnum'
|
|
54352
|
+
amount:
|
|
54353
|
+
type: string
|
|
54354
|
+
format: decimal
|
|
54355
|
+
pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
|
|
54356
|
+
method:
|
|
54357
|
+
type: string
|
|
54358
|
+
funding_source:
|
|
54359
|
+
type: string
|
|
54360
|
+
note:
|
|
54361
|
+
type: string
|
|
54362
|
+
required:
|
|
54363
|
+
- action
|
|
54364
|
+
PlatformApplicationFeeActionActionEnum:
|
|
54365
|
+
enum:
|
|
54366
|
+
- record_payment
|
|
54367
|
+
- waive
|
|
54368
|
+
- refund
|
|
54369
|
+
- credit
|
|
54370
|
+
type: string
|
|
54371
|
+
description: |-
|
|
54372
|
+
* `record_payment` - record_payment
|
|
54373
|
+
* `waive` - waive
|
|
54374
|
+
* `refund` - refund
|
|
54375
|
+
* `credit` - credit
|
|
54376
|
+
PlatformApplicationFormCreate:
|
|
54377
|
+
type: object
|
|
54378
|
+
description: Body for creating a platform's application form.
|
|
54379
|
+
properties:
|
|
54380
|
+
platform_key:
|
|
54381
|
+
type: string
|
|
54382
|
+
platform_org:
|
|
54383
|
+
type: string
|
|
54384
|
+
name:
|
|
54385
|
+
type: string
|
|
54386
|
+
schema: {}
|
|
54387
|
+
config: {}
|
|
54388
|
+
enabled:
|
|
54389
|
+
type: boolean
|
|
54390
|
+
default: false
|
|
54391
|
+
is_default:
|
|
54392
|
+
type: boolean
|
|
54393
|
+
required:
|
|
54394
|
+
- platform_key
|
|
54395
|
+
- schema
|
|
54396
|
+
PlatformApplicationFormDetail:
|
|
54397
|
+
type: object
|
|
54398
|
+
description: Minimal schema for a form response object.
|
|
54399
|
+
properties:
|
|
54400
|
+
id:
|
|
54401
|
+
type: integer
|
|
54402
|
+
name:
|
|
54403
|
+
type: string
|
|
54404
|
+
version:
|
|
54405
|
+
type: integer
|
|
54406
|
+
enabled:
|
|
54407
|
+
type: boolean
|
|
54408
|
+
required:
|
|
54409
|
+
- enabled
|
|
54410
|
+
- id
|
|
54411
|
+
- name
|
|
54412
|
+
- version
|
|
54413
|
+
PlatformApplicationNote:
|
|
54414
|
+
type: object
|
|
54415
|
+
description: Body for adding/updating an internal reviewer note.
|
|
54416
|
+
properties:
|
|
54417
|
+
body:
|
|
54418
|
+
type: string
|
|
54419
|
+
kind:
|
|
54420
|
+
$ref: '#/components/schemas/KindEnum'
|
|
54421
|
+
required:
|
|
54422
|
+
- body
|
|
54423
|
+
PlatformApplicationPlacementCreate:
|
|
54424
|
+
type: object
|
|
54425
|
+
description: |-
|
|
54426
|
+
Body for assigning placements (#2133): one or many in a single call
|
|
54427
|
+
("individually or in bulk", PDF §9.1).
|
|
54428
|
+
properties:
|
|
54429
|
+
placements:
|
|
54430
|
+
type: array
|
|
54431
|
+
items:
|
|
54432
|
+
$ref: '#/components/schemas/PlatformApplicationPlacementItem'
|
|
54433
|
+
required:
|
|
54434
|
+
- placements
|
|
54435
|
+
PlatformApplicationPlacementItem:
|
|
54436
|
+
type: object
|
|
54437
|
+
description: 'One placement assignment: which candidate, which mentor.'
|
|
54438
|
+
properties:
|
|
54439
|
+
candidate_id:
|
|
54440
|
+
type: integer
|
|
54441
|
+
mentor_unique_id:
|
|
54442
|
+
type: string
|
|
54443
|
+
mentor_label:
|
|
54444
|
+
type: string
|
|
54445
|
+
label:
|
|
54446
|
+
type: string
|
|
54447
|
+
session_id:
|
|
54448
|
+
type: string
|
|
54449
|
+
note:
|
|
54450
|
+
type: string
|
|
54451
|
+
required:
|
|
54452
|
+
- candidate_id
|
|
54453
|
+
- mentor_unique_id
|
|
54454
|
+
PlatformApplicationPlacementUpdateStatusEnum:
|
|
54455
|
+
enum:
|
|
54456
|
+
- not_assigned
|
|
54457
|
+
- assigned
|
|
54458
|
+
- started
|
|
54459
|
+
- completed
|
|
54460
|
+
- reviewed
|
|
54461
|
+
- confirmed
|
|
54462
|
+
type: string
|
|
54463
|
+
description: |-
|
|
54464
|
+
* `not_assigned` - not_assigned
|
|
54465
|
+
* `assigned` - assigned
|
|
54466
|
+
* `started` - started
|
|
54467
|
+
* `completed` - completed
|
|
54468
|
+
* `reviewed` - reviewed
|
|
54469
|
+
* `confirmed` - confirmed
|
|
54470
|
+
PlatformApplicationSubmit:
|
|
54471
|
+
type: object
|
|
54472
|
+
description: Body for submitting an application.
|
|
54473
|
+
properties:
|
|
54474
|
+
responses: {}
|
|
54475
|
+
PlatformApplicationTransition:
|
|
54476
|
+
type: object
|
|
54477
|
+
description: Body for a reviewer status transition (per-candidate or application-wide).
|
|
54478
|
+
properties:
|
|
54479
|
+
action:
|
|
54480
|
+
$ref: '#/components/schemas/PlatformApplicationTransitionActionEnum'
|
|
54481
|
+
candidate_id:
|
|
54482
|
+
type: integer
|
|
54483
|
+
message:
|
|
54484
|
+
type: string
|
|
54485
|
+
note:
|
|
54486
|
+
type: string
|
|
54487
|
+
block:
|
|
54488
|
+
type: boolean
|
|
54489
|
+
default: false
|
|
54490
|
+
required:
|
|
54491
|
+
- action
|
|
54492
|
+
PlatformApplicationTransitionActionEnum:
|
|
54493
|
+
enum:
|
|
54494
|
+
- start_review
|
|
54495
|
+
- request_info
|
|
54496
|
+
- require_interview
|
|
54497
|
+
- waitlist
|
|
54498
|
+
- accept
|
|
54499
|
+
- decline
|
|
54500
|
+
type: string
|
|
54501
|
+
description: |-
|
|
54502
|
+
* `start_review` - start_review
|
|
54503
|
+
* `request_info` - request_info
|
|
54504
|
+
* `require_interview` - require_interview
|
|
54505
|
+
* `waitlist` - waitlist
|
|
54506
|
+
* `accept` - accept
|
|
54507
|
+
* `decline` - decline
|
|
54508
|
+
PlatformApplicationWaiver:
|
|
54509
|
+
type: object
|
|
54510
|
+
description: |-
|
|
54511
|
+
Waive (POST) or reinstate (DELETE) one required field on an application
|
|
54512
|
+
(§2.1 required items "complete or administratively waived").
|
|
54513
|
+
properties:
|
|
54514
|
+
section:
|
|
54515
|
+
type: string
|
|
54516
|
+
field:
|
|
54517
|
+
type: string
|
|
54518
|
+
reason:
|
|
54519
|
+
type: string
|
|
54520
|
+
required:
|
|
54521
|
+
- field
|
|
54522
|
+
- section
|
|
52637
54523
|
PlatformConfigurationList:
|
|
52638
54524
|
type: object
|
|
52639
54525
|
description: Serializer for listing platform configurations
|
|
@@ -58697,7 +60583,7 @@ components:
|
|
|
58697
60583
|
* `release` - Release Reserved Credits
|
|
58698
60584
|
* `rollover` - Rollover Credits
|
|
58699
60585
|
* `refund` - Refund Credits
|
|
58700
|
-
|
|
60586
|
+
TypeB29Enum:
|
|
58701
60587
|
enum:
|
|
58702
60588
|
- ACTIVITY_COURSE_MILESTONE
|
|
58703
60589
|
- ACTIVITY_NEW_CONTENT
|
|
@@ -58715,6 +60601,7 @@ components:
|
|
|
58715
60601
|
- DEFAULT_TEMPLATE
|
|
58716
60602
|
- HUMAN_SUPPORT_NOTIFICATION
|
|
58717
60603
|
- PATHWAY_ENROLLMENT_CONFIRMATION
|
|
60604
|
+
- PLATFORM_APPLICATION_DECISION
|
|
58718
60605
|
- PLATFORM_INVITATION
|
|
58719
60606
|
- POLICY_ASSIGNMENT
|
|
58720
60607
|
- PROACTIVE_LEARNER_NOTIFICATION
|
|
@@ -58752,6 +60639,7 @@ components:
|
|
|
58752
60639
|
* `DEFAULT_TEMPLATE` - Default Template
|
|
58753
60640
|
* `HUMAN_SUPPORT_NOTIFICATION` - Human Support Notification
|
|
58754
60641
|
* `PATHWAY_ENROLLMENT_CONFIRMATION` - Pathway Enrollment Confirmation
|
|
60642
|
+
* `PLATFORM_APPLICATION_DECISION` - Platform Application Decision
|
|
58755
60643
|
* `PLATFORM_INVITATION` - Platform Invitation
|
|
58756
60644
|
* `POLICY_ASSIGNMENT` - Policy Assignment
|
|
58757
60645
|
* `PROACTIVE_LEARNER_NOTIFICATION` - Proactive Learner Notification
|