6148 lines
209 KiB
YAML
Executable File
6148 lines
209 KiB
YAML
Executable File
swagger: '2.0'
|
|
info:
|
|
title: Open edX API
|
|
description: APIs for access to Open edX information
|
|
contact:
|
|
email: oscm@edx.org
|
|
version: v1
|
|
basePath: /api
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
securityDefinitions:
|
|
Basic:
|
|
type: basic
|
|
security:
|
|
- Basic: []
|
|
paths:
|
|
/badges/v1/assertions/user/{username}/:
|
|
get:
|
|
operationId: badges_v1_assertions_user_read
|
|
summary: '**Use Cases**'
|
|
description: "Request a list of assertions for a user, optionally constrained\
|
|
\ to a course.\n\n**Example Requests**\n\n GET /api/badges/v1/assertions/user/{username}/\n\
|
|
\n**Response Values**\n\n Body comprised of a list of objects with the\
|
|
\ following fields:\n\n * badge_class: The badge class the assertion was\
|
|
\ awarded for. Represented as an object\n with the following fields:\n\
|
|
\ * slug: The identifier for the badge class\n * issuing_component:\
|
|
\ The software component responsible for issuing this badge.\n * display_name:\
|
|
\ The display name of the badge.\n * course_id: The course key of the\
|
|
\ course this badge is scoped to, or null if it isn't scoped to a course.\n\
|
|
\ * description: A description of the award and its significance.\n\
|
|
\ * criteria: A description of what is needed to obtain this award.\n\
|
|
\ * image_url: A URL to the icon image used to represent this award.\n\
|
|
\ * image_url: The baked assertion image derived from the badge_class icon--\
|
|
\ contains metadata about the award\n in its headers.\n * assertion_url:\
|
|
\ The URL to the OpenBadges BadgeAssertion object, for verification by compatible\
|
|
\ tools\n and software.\n\n**Params**\n\n * slug (optional): The identifier\
|
|
\ for a particular badge class to filter by.\n * issuing_component (optional):\
|
|
\ The issuing component for a particular badge class to filter by\n (requires\
|
|
\ slug to have been specified, or this will be ignored.) If slug is provided\
|
|
\ and this is not,\n assumes the issuing_component should be empty.\n\
|
|
\ * course_id (optional): Returns assertions that were awarded as part\
|
|
\ of a particular course. If slug is\n provided, and this field is not\
|
|
\ specified, assumes that the target badge has an empty course_id field.\n\
|
|
\ '*' may be used to get all badges with the specified slug, issuing_component\
|
|
\ combination across all courses.\n\n**Returns**\n\n * 200 on success,\
|
|
\ with a list of Badge Assertion objects.\n * 403 if a user who does not\
|
|
\ have permission to masquerade as\n another user specifies a username\
|
|
\ other than their own.\n * 404 if the specified user does not exist\n\n\
|
|
\ {\n \"count\": 7,\n \"previous\": null,\n \"num_pages\"\
|
|
: 1,\n \"results\": [\n {\n \"badge_class\"\
|
|
: {\n \"slug\": \"special_award\",\n \
|
|
\ \"issuing_component\": \"openedx__course\",\n \"display_name\"\
|
|
: \"Very Special Award\",\n \"course_id\": \"course-v1:edX+DemoX+Demo_Course\"\
|
|
,\n \"description\": \"Awarded for people who did something\
|
|
\ incredibly special\",\n \"criteria\": \"Do something\
|
|
\ incredibly special.\",\n \"image\": \"http://example.com/media/badge_classes/badges/special_xdpqpBv_9FYOZwN.png\"\
|
|
\n },\n \"image_url\": \"http://badges.example.com/media/issued/cd75b69fc1c979fcc1697c8403da2bdf.png\"\
|
|
,\n \"assertion_url\": \"http://badges.example.com/public/assertions/07020647-e772-44dd-98b7-d13d34335ca6\"\
|
|
\n },\n ...\n ]\n }"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/BadgeAssertion'
|
|
tags:
|
|
- badges
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/bookmarks/v1/bookmarks/:
|
|
get:
|
|
operationId: bookmarks_v1_bookmarks_list
|
|
summary: Get a paginated list of bookmarks for a user.
|
|
description: "The list can be filtered by passing parameter \"course_id=<course_id>\"\
|
|
\nto only include bookmarks from a particular course.\n\nThe bookmarks are\
|
|
\ always sorted in descending order by creation date.\n\nEach page in the\
|
|
\ list contains 10 bookmarks by default. The page\nsize can be altered by\
|
|
\ passing parameter \"page_size=<page_size>\".\n\nTo include the optional\
|
|
\ fields pass the values in \"fields\" parameter\nas a comma separated list.\
|
|
\ Possible values are:\n\n* \"display_name\"\n* \"path\"\n\n**Example Requests**\n\
|
|
\nGET /api/bookmarks/v1/bookmarks/?course_id={course_id1}&fields=display_name,path"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
- name: course_id
|
|
in: query
|
|
description: The id of the course to limit the list
|
|
type: string
|
|
- name: fields
|
|
in: query
|
|
description: 'The fields to return: display_name, path.'
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- bookmarks
|
|
post:
|
|
operationId: bookmarks_v1_bookmarks_create
|
|
summary: Create a new bookmark for a user.
|
|
description: "The POST request only needs to contain one parameter \"usage_id\"\
|
|
.\n\nHttp400 is returned if the format of the request is not correct,\nthe\
|
|
\ usage_id is invalid or a block corresponding to the usage_id\ncould not\
|
|
\ be found.\n\n**Example Requests**\n\nPOST /api/bookmarks/v1/bookmarks/\n\
|
|
Request data: {\"usage_id\": <usage-id>}"
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- bookmarks
|
|
parameters: []
|
|
/bookmarks/v1/bookmarks/{username},{usage_id}/:
|
|
get:
|
|
operationId: bookmarks_v1_bookmarks_read
|
|
summary: Get a specific bookmark for a user.
|
|
description: "**Example Requests**\n\nGET /api/bookmarks/v1/bookmarks/{username},{usage_id}?fields=display_name,path"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- bookmarks
|
|
delete:
|
|
operationId: bookmarks_v1_bookmarks_delete
|
|
description: DELETE /api/bookmarks/v1/bookmarks/{username},{usage_id}
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- bookmarks
|
|
parameters:
|
|
- name: usage_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/bulk_enroll/v1/bulk_enroll:
|
|
post:
|
|
operationId: bulk_enroll_v1_bulk_enroll_create
|
|
summary: '**Use Case**'
|
|
description: "Enroll multiple users in one or more courses.\n\n**Example Request**\n\
|
|
\n POST /api/bulk_enroll/v1/bulk_enroll/ {\n \"auto_enroll\": true,\n\
|
|
\ \"email_students\": true,\n \"action\": \"enroll\",\n \
|
|
\ \"courses\": \"course-v1:edX+Demo+123,course-v1:edX+Demo2+456\",\n \
|
|
\ \"cohorts\": \"cohortA,cohortA\",\n \"identifiers\": \"brandon@example.com,yamilah@example.com\"\
|
|
\n }\n\n **POST Parameters**\n\n A POST request can include the\
|
|
\ following parameters.\n\n * auto_enroll: When set to `true`, students\
|
|
\ will be enrolled as soon\n as they register.\n * email_students:\
|
|
\ When set to `true`, students will be sent email\n notifications upon\
|
|
\ enrollment.\n * action: Can either be set to \"enroll\" or \"unenroll\"\
|
|
. This determines the behavior\n * cohorts: Optional. If provided, the\
|
|
\ number of items in the list should be equal to\n the number of courses.\
|
|
\ first cohort coressponds with the first course and so on.\n The learners\
|
|
\ will be added to the corresponding cohort.\n\n**Response Values**\n\n \
|
|
\ If the supplied course data is valid and the enrollments were\n successful,\
|
|
\ an HTTP 200 \"OK\" response is returned.\n\n The HTTP 200 response body\
|
|
\ contains a list of response data for each\n enrollment. (See the `instructor.views.api.students_update_enrollment`\n\
|
|
\ docstring for the specifics of the response data available for each\n\
|
|
\ enrollment)\n\n If a cohorts list is provided, additional 'cohort'\
|
|
\ keys will be added\n to the 'before' and 'after' states."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- bulk_enroll
|
|
parameters: []
|
|
/ccx/v0/ccx/:
|
|
get:
|
|
operationId: ccx_v0_ccx_list
|
|
summary: Gets a list of CCX Courses for a given Master Course.
|
|
description: Additional parameters are allowed for pagination purposes.
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CCXCourse'
|
|
tags:
|
|
- ccx
|
|
post:
|
|
operationId: ccx_v0_ccx_create
|
|
description: Creates a new CCX course for a given Master Course.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CCXCourse'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CCXCourse'
|
|
tags:
|
|
- ccx
|
|
parameters: []
|
|
/ccx/v0/ccx/{ccx_course_id}/:
|
|
get:
|
|
operationId: ccx_v0_ccx_read
|
|
description: Gets a CCX Course information.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CCXCourse'
|
|
tags:
|
|
- ccx
|
|
patch:
|
|
operationId: ccx_v0_ccx_partial_update
|
|
description: Modifies a CCX course.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CCXCourse'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CCXCourse'
|
|
tags:
|
|
- ccx
|
|
delete:
|
|
operationId: ccx_v0_ccx_delete
|
|
description: Deletes a CCX course.
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- ccx
|
|
parameters:
|
|
- name: ccx_course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/certificates/v0/certificates/{username}/:
|
|
get:
|
|
operationId: certificates_v0_certificates_read
|
|
summary: Get a paginated list of bookmarks for a user.
|
|
description: "**Use Case**\n\nGet the list of viewable course certificates for\
|
|
\ a specific user.\n\n**Example Request**\n\nGET /api/certificates/v0/certificates/{username}\n\
|
|
\n**GET Response Values**\n\n If the request for information about the\
|
|
\ user's certificates is successful,\n an HTTP 200 \"OK\" response is returned.\n\
|
|
\n The HTTP 200 response contains a list of dicts with the following keys/values.\n\
|
|
\n * username: A string representation of an user's username passed in\
|
|
\ the request.\n\n * course_id: A string representation of a Course ID.\n\
|
|
\n * course_display_name: A string representation of the Course name.\n\
|
|
\n * course_organization: A string representation of the organization associated\
|
|
\ with the Course.\n\n * certificate_type: A string representation of the\
|
|
\ certificate type.\n Can be honor|verified|professional\n\n * created_date:\
|
|
\ Date/time the certificate was created, in ISO-8661 format.\n\n * status:\
|
|
\ A string representation of the certificate status.\n\n * is_passing:\
|
|
\ True if the certificate has a passing status, False if not.\n\n * download_url:\
|
|
\ A string representation of the certificate url.\n\n * grade: A string\
|
|
\ representation of a float for the user's course grade.\n\n**Example GET\
|
|
\ Response**\n\n [{\n \"username\": \"bob\",\n \"course_id\"\
|
|
: \"edX/DemoX/Demo_Course\",\n \"certificate_type\": \"verified\",\n\
|
|
\ \"created_date\": \"2015-12-03T13:14:28+0000\",\n \"status\"\
|
|
: \"downloadable\",\n \"is_passing\": true,\n \"download_url\"\
|
|
: \"http://www.example.com/cert.pdf\",\n \"grade\": \"0.98\"\n }]"
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
description: The users to get certificates for
|
|
type: string
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- certificates
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/certificates/v0/certificates/{username}/courses/{course_id}/:
|
|
get:
|
|
operationId: certificates_v0_certificates_courses_read
|
|
description: Gets a certificate information.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- certificates
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}:
|
|
get:
|
|
operationId: cohorts_v1_courses_cohorts_read
|
|
description: Endpoint to get either one or all cohorts.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
tags:
|
|
- cohorts
|
|
post:
|
|
operationId: cohorts_v1_courses_cohorts_create
|
|
description: Endpoint to create a new cohort, must not include cohort_id.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
tags:
|
|
- cohorts
|
|
patch:
|
|
operationId: cohorts_v1_courses_cohorts_partial_update
|
|
description: Endpoint to update a cohort name and/or assignment type.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
tags:
|
|
- cohorts
|
|
parameters:
|
|
- name: cohort_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}/users/{username}:
|
|
get:
|
|
operationId: cohorts_v1_courses_cohorts_users_read
|
|
description: Lists the users in a specific cohort.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CohortUsersAPI'
|
|
tags:
|
|
- cohorts
|
|
post:
|
|
operationId: cohorts_v1_courses_cohorts_users_create
|
|
description: Add given users to the cohort.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CohortUsersAPI'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CohortUsersAPI'
|
|
tags:
|
|
- cohorts
|
|
delete:
|
|
operationId: cohorts_v1_courses_cohorts_users_delete
|
|
description: Removes and user from a specific cohort.
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- cohorts
|
|
parameters:
|
|
- name: cohort_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/cohorts/v1/courses/{course_key_string}/users:
|
|
post:
|
|
operationId: cohorts_v1_courses_users_create
|
|
description: "View method that accepts an uploaded file (using key \"uploaded-file\"\
|
|
)\ncontaining cohort assignments for users. This method spawns a celery task\n\
|
|
to do the assignments, and a CSV file with results is provided via data downloads."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- cohorts
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/cohorts/v1/settings/{course_key_string}:
|
|
get:
|
|
operationId: cohorts_v1_settings_read
|
|
description: Endpoint to fetch the course cohort settings.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
tags:
|
|
- cohorts
|
|
put:
|
|
operationId: cohorts_v1_settings_update
|
|
description: Endpoint to set the course cohort settings.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: object
|
|
properties: {}
|
|
tags:
|
|
- cohorts
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/commerce/v0/baskets/:
|
|
post:
|
|
operationId: commerce_v0_baskets_create
|
|
description: Attempt to enroll the user.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- commerce
|
|
parameters: []
|
|
/commerce/v0/baskets/{basket_id}/order/:
|
|
get:
|
|
operationId: commerce_v0_baskets_order_list
|
|
description: HTTP handler.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- commerce
|
|
parameters:
|
|
- name: basket_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/commerce/v1/courses/:
|
|
get:
|
|
operationId: commerce_v1_courses_list
|
|
description: List courses and modes.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/commerce.Course'
|
|
tags:
|
|
- commerce
|
|
parameters: []
|
|
/commerce/v1/courses/{course_id}/:
|
|
get:
|
|
operationId: commerce_v1_courses_read
|
|
description: Retrieve, update, or create courses/modes.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/commerce.Course'
|
|
tags:
|
|
- commerce
|
|
put:
|
|
operationId: commerce_v1_courses_update
|
|
description: Retrieve, update, or create courses/modes.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/commerce.Course'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/commerce.Course'
|
|
tags:
|
|
- commerce
|
|
patch:
|
|
operationId: commerce_v1_courses_partial_update
|
|
description: Retrieve, update, or create courses/modes.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/commerce.Course'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/commerce.Course'
|
|
tags:
|
|
- commerce
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/commerce/v1/orders/{number}/:
|
|
get:
|
|
operationId: commerce_v1_orders_read
|
|
description: HTTP handler.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- commerce
|
|
parameters:
|
|
- name: number
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/completion/v1/completion-batch:
|
|
post:
|
|
operationId: completion_v1_completion-batch_create
|
|
summary: Inserts a batch of completions.
|
|
description: "REST Endpoint Format:\n{\n \"username\": \"username\",\n \"\
|
|
course_key\": \"course-key\",\n \"blocks\": {\n \"block_key1\": 0.0,\n\
|
|
\ \"block_key2\": 1.0,\n \"block_key3\": 1.0,\n }\n}\n\n**Returns**\n\
|
|
\nA Response object, with an appropriate status code.\n\nIf successful, status\
|
|
\ code is 200.\n{\n \"detail\" : _(\"ok\")\n}\n\nOtherwise, a 400 or 404\
|
|
\ may be returned, and the \"detail\" content will explain the error."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- completion
|
|
parameters: []
|
|
/completion/v1/subsection-completion/{username}/{course_key}/(P{subsection_id}[/]*):
|
|
get:
|
|
operationId: completion_v1_subsection-completion_]*)_list
|
|
description: Returns completion for a (user, subsection, course).
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- completion
|
|
parameters:
|
|
- name: course_key
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: subsection_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/course_goals/v0/course_goals/:
|
|
get:
|
|
operationId: course_goals_v0_course_goals_list
|
|
summary: API calls to create and update a course goal.
|
|
description: "Validates incoming data to ensure that course_key maps to an actual\n\
|
|
course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\
|
|
\ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\
|
|
\ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\
|
|
\ data: {\"course_key\": <course-key>, \"goal_key\": \"<goal-key>\", \"user\"\
|
|
: \"<username>\"}\n\nReturns Http400 response if the course_key does not map\
|
|
\ to a known\ncourse or if the goal_key does not map to a valid goal key."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseGoal'
|
|
tags:
|
|
- course_goals
|
|
post:
|
|
operationId: course_goals_v0_course_goals_create
|
|
description: Create a new goal if one does not exist, otherwise update the existing
|
|
goal.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
tags:
|
|
- course_goals
|
|
parameters: []
|
|
/course_goals/v0/course_goals/{id}/:
|
|
get:
|
|
operationId: course_goals_v0_course_goals_read
|
|
summary: API calls to create and update a course goal.
|
|
description: "Validates incoming data to ensure that course_key maps to an actual\n\
|
|
course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\
|
|
\ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\
|
|
\ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\
|
|
\ data: {\"course_key\": <course-key>, \"goal_key\": \"<goal-key>\", \"user\"\
|
|
: \"<username>\"}\n\nReturns Http400 response if the course_key does not map\
|
|
\ to a known\ncourse or if the goal_key does not map to a valid goal key."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
tags:
|
|
- course_goals
|
|
put:
|
|
operationId: course_goals_v0_course_goals_update
|
|
summary: API calls to create and update a course goal.
|
|
description: "Validates incoming data to ensure that course_key maps to an actual\n\
|
|
course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\
|
|
\ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\
|
|
\ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\
|
|
\ data: {\"course_key\": <course-key>, \"goal_key\": \"<goal-key>\", \"user\"\
|
|
: \"<username>\"}\n\nReturns Http400 response if the course_key does not map\
|
|
\ to a known\ncourse or if the goal_key does not map to a valid goal key."
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
tags:
|
|
- course_goals
|
|
patch:
|
|
operationId: course_goals_v0_course_goals_partial_update
|
|
summary: API calls to create and update a course goal.
|
|
description: "Validates incoming data to ensure that course_key maps to an actual\n\
|
|
course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\
|
|
\ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\
|
|
\ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\
|
|
\ data: {\"course_key\": <course-key>, \"goal_key\": \"<goal-key>\", \"user\"\
|
|
: \"<username>\"}\n\nReturns Http400 response if the course_key does not map\
|
|
\ to a known\ncourse or if the goal_key does not map to a valid goal key."
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseGoal'
|
|
tags:
|
|
- course_goals
|
|
delete:
|
|
operationId: course_goals_v0_course_goals_delete
|
|
summary: API calls to create and update a course goal.
|
|
description: "Validates incoming data to ensure that course_key maps to an actual\n\
|
|
course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\
|
|
\ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\
|
|
\ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\
|
|
\ data: {\"course_key\": <course-key>, \"goal_key\": \"<goal-key>\", \"user\"\
|
|
: \"<username>\"}\n\nReturns Http400 response if the course_key does not map\
|
|
\ to a known\ncourse or if the goal_key does not map to a valid goal key."
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- course_goals
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: A unique integer value identifying this course goal.
|
|
required: true
|
|
type: integer
|
|
/course_modes/v1/courses/{course_id}/:
|
|
get:
|
|
operationId: course_modes_v1_courses_read
|
|
summary: View to list or create course modes for a course.
|
|
description: "**Use Case**\n\n List all course modes for a course, or create\
|
|
\ a new\n course mode.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/\n\
|
|
\n Returns a list of all existing course modes for a course.\n\n \
|
|
\ POST /api/course_modes/v1/courses/{course_id}/\n\n Creates a new\
|
|
\ course mode in a course.\n\n**Response Values**\n\n For each HTTP verb\
|
|
\ below, an HTTP 404 \"Not Found\" response is returned if the\n requested\
|
|
\ course id does not exist.\n\n GET: If the request is successful, an HTTP\
|
|
\ 200 \"OK\" response is returned\n along with a list of course mode dictionaries\
|
|
\ within a course.\n The details are contained in a JSON dictionary as\
|
|
\ follows:\n\n * course_id: The course identifier.\n * mode_slug:\
|
|
\ The short name for the course mode.\n * mode_display_name: The verbose\
|
|
\ name for the course mode.\n * min_price: The minimum price for which\
|
|
\ a user can\n enroll in this mode.\n * currency: The currency\
|
|
\ of the listed prices.\n * expiration_datetime: The date and time after\
|
|
\ which\n users cannot enroll in the course in this mode (not required\
|
|
\ for POST).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\
|
|
\ field was\n explicitly set (not required for POST).\n * description:\
|
|
\ A description of this mode (not required for POST).\n * sku: The SKU\
|
|
\ for this mode (for ecommerce purposes, not required for POST).\n *\
|
|
\ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\
|
|
\ for POST).\n\n POST: If the request is successful, an HTTP 201 \"Created\"\
|
|
\ response is returned."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
tags:
|
|
- course_modes
|
|
post:
|
|
operationId: course_modes_v1_courses_create
|
|
summary: View to list or create course modes for a course.
|
|
description: "**Use Case**\n\n List all course modes for a course, or create\
|
|
\ a new\n course mode.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/\n\
|
|
\n Returns a list of all existing course modes for a course.\n\n \
|
|
\ POST /api/course_modes/v1/courses/{course_id}/\n\n Creates a new\
|
|
\ course mode in a course.\n\n**Response Values**\n\n For each HTTP verb\
|
|
\ below, an HTTP 404 \"Not Found\" response is returned if the\n requested\
|
|
\ course id does not exist.\n\n GET: If the request is successful, an HTTP\
|
|
\ 200 \"OK\" response is returned\n along with a list of course mode dictionaries\
|
|
\ within a course.\n The details are contained in a JSON dictionary as\
|
|
\ follows:\n\n * course_id: The course identifier.\n * mode_slug:\
|
|
\ The short name for the course mode.\n * mode_display_name: The verbose\
|
|
\ name for the course mode.\n * min_price: The minimum price for which\
|
|
\ a user can\n enroll in this mode.\n * currency: The currency\
|
|
\ of the listed prices.\n * expiration_datetime: The date and time after\
|
|
\ which\n users cannot enroll in the course in this mode (not required\
|
|
\ for POST).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\
|
|
\ field was\n explicitly set (not required for POST).\n * description:\
|
|
\ A description of this mode (not required for POST).\n * sku: The SKU\
|
|
\ for this mode (for ecommerce purposes, not required for POST).\n *\
|
|
\ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\
|
|
\ for POST).\n\n POST: If the request is successful, an HTTP 201 \"Created\"\
|
|
\ response is returned."
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
tags:
|
|
- course_modes
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/course_modes/v1/courses/{course_id}/{mode_slug}:
|
|
get:
|
|
operationId: course_modes_v1_courses_read
|
|
summary: View to retrieve, update, or delete a specific course mode for a course.
|
|
description: "**Use Case**\n\n Get or update course mode details for a specific\
|
|
\ course mode on a course.\n Or you may delete a specific course mode from\
|
|
\ a course.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\
|
|
\n Returns details on an existing course mode for a course.\n\n \
|
|
\ PATCH /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Updates\
|
|
\ (via merge) details of an existing course mode for a course.\n\n DELETE\
|
|
\ /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Deletes\
|
|
\ an existing course mode for a course.\n\n**Response Values**\n\n For\
|
|
\ each HTTP verb below, an HTTP 404 \"Not Found\" response is returned if\
|
|
\ the\n requested course id does not exist, or the mode slug does not exist\
|
|
\ within the course.\n\n GET: If the request is successful, an HTTP 200\
|
|
\ \"OK\" response is returned\n along with a details for a single course\
|
|
\ mode within a course. The details are contained\n in a JSON dictionary\
|
|
\ as follows:\n\n * course_id: The course identifier.\n * mode_slug:\
|
|
\ The short name for the course mode.\n * mode_display_name: The verbose\
|
|
\ name for the course mode.\n * min_price: The minimum price for which\
|
|
\ a user can\n enroll in this mode.\n * currency: The currency\
|
|
\ of the listed prices.\n * expiration_datetime: The date and time after\
|
|
\ which\n users cannot enroll in the course in this mode (not required\
|
|
\ for PATCH).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\
|
|
\ field was\n explicitly set (not required for PATCH).\n * description:\
|
|
\ A description of this mode (not required for PATCH).\n * sku: The SKU\
|
|
\ for this mode (for ecommerce purposes, not required for PATCH).\n *\
|
|
\ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\
|
|
\ for PATCH).\n\n PATCH: If the request is successful, an HTTP 204 \"No\
|
|
\ Content\" response is returned.\n If \"application/merge-patch+json\"\
|
|
\ is not the specified content type,\n a 415 \"Unsupported Media Type\"\
|
|
\ response is returned.\n\n DELETE: If the request is successful, an HTTP\
|
|
\ 204 \"No Content\" response is returned."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- course_modes
|
|
patch:
|
|
operationId: course_modes_v1_courses_partial_update
|
|
description: Performs a partial update of a CourseMode instance.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/course_modes.CourseMode'
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- course_modes
|
|
delete:
|
|
operationId: course_modes_v1_courses_delete
|
|
summary: View to retrieve, update, or delete a specific course mode for a course.
|
|
description: "**Use Case**\n\n Get or update course mode details for a specific\
|
|
\ course mode on a course.\n Or you may delete a specific course mode from\
|
|
\ a course.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\
|
|
\n Returns details on an existing course mode for a course.\n\n \
|
|
\ PATCH /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Updates\
|
|
\ (via merge) details of an existing course mode for a course.\n\n DELETE\
|
|
\ /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Deletes\
|
|
\ an existing course mode for a course.\n\n**Response Values**\n\n For\
|
|
\ each HTTP verb below, an HTTP 404 \"Not Found\" response is returned if\
|
|
\ the\n requested course id does not exist, or the mode slug does not exist\
|
|
\ within the course.\n\n GET: If the request is successful, an HTTP 200\
|
|
\ \"OK\" response is returned\n along with a details for a single course\
|
|
\ mode within a course. The details are contained\n in a JSON dictionary\
|
|
\ as follows:\n\n * course_id: The course identifier.\n * mode_slug:\
|
|
\ The short name for the course mode.\n * mode_display_name: The verbose\
|
|
\ name for the course mode.\n * min_price: The minimum price for which\
|
|
\ a user can\n enroll in this mode.\n * currency: The currency\
|
|
\ of the listed prices.\n * expiration_datetime: The date and time after\
|
|
\ which\n users cannot enroll in the course in this mode (not required\
|
|
\ for PATCH).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\
|
|
\ field was\n explicitly set (not required for PATCH).\n * description:\
|
|
\ A description of this mode (not required for PATCH).\n * sku: The SKU\
|
|
\ for this mode (for ecommerce purposes, not required for PATCH).\n *\
|
|
\ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\
|
|
\ for PATCH).\n\n PATCH: If the request is successful, an HTTP 204 \"No\
|
|
\ Content\" response is returned.\n If \"application/merge-patch+json\"\
|
|
\ is not the specified content type,\n a 415 \"Unsupported Media Type\"\
|
|
\ response is returned.\n\n DELETE: If the request is successful, an HTTP\
|
|
\ 204 \"No Content\" response is returned."
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- course_modes
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: mode_slug
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/courses/v1/blocks/:
|
|
get:
|
|
operationId: courses_v1_blocks_list
|
|
summary: '**Use Case**'
|
|
description: "Returns the blocks in the course according to the requesting user's\n\
|
|
\ access level.\n\n**Example requests**:\n\n GET /api/courses/v1/blocks/?course_id=<course_id>\n\
|
|
\ GET /api/courses/v1/blocks/?course_id=<course_id>\n &username=anjali\n\
|
|
\ &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url\n\
|
|
\ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\
|
|
\n**Parameters**:\n\n This view redirects to /api/courses/v1/blocks/<root_usage_key>/\
|
|
\ for the\n root usage key of the course specified by course_id. The view\
|
|
\ accepts\n all parameters accepted by :class:`BlocksView`, plus the following\n\
|
|
\ required parameter\n\n * course_id: (string, required) The ID of the\
|
|
\ course whose block data\n we want to return\n\n**Response Values**\n\
|
|
\n Responses are identical to those returned by :class:`BlocksView` when\n\
|
|
\ passed the root_usage_key of the requested course.\n\n If the course_id\
|
|
\ is not supplied, a 400: Bad Request is returned, with\n a message indicating\
|
|
\ that course_id is required.\n\n If an invalid course_id is supplied,\
|
|
\ a 400: Bad Request is returned,\n with a message indicating that the\
|
|
\ course_id is not valid."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courses
|
|
parameters: []
|
|
? /courses/v1/blocks/(P{usage_key_string}{var}|api/courses/v1/blocks/(P{usage_key_string}(:i4x://[/]+/[/]+/[/]+/[@]+(:@[/]+))|{var})
|
|
: get:
|
|
operationId: courses_v1_blocks_courses_v1_blocks__[_]+_[_]+_[_]+_[@]+(:@[_read
|
|
summary: '**Use Case**'
|
|
description: "Returns the blocks within the requested block tree according to\
|
|
\ the\n requesting user's access level.\n\n**Example requests**:\n\n \
|
|
\ GET /api/courses/v1/blocks/<root_block_usage_id>/?depth=all\n GET /api/courses/v1/blocks/<usage_id>/?\n\
|
|
\ username=anjali\n &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url,due\n\
|
|
\ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\
|
|
\n**Parameters**:\n\n * all_blocks: (boolean) Provide a value of \"true\"\
|
|
\ to return all\n blocks. Returns all blocks only if the requesting user\
|
|
\ has course\n staff permissions. Blocks that are visible only to specific\
|
|
\ learners\n (for example, based on group membership or randomized content)\
|
|
\ are\n all included. If all_blocks is not specified, you must specify\
|
|
\ the\n username for the user whose course blocks are requested.\n\n\
|
|
\ * username: (string) Required, unless ``all_blocks`` is specified.\n\
|
|
\ Specify the username for the user whose course blocks are requested.\n\
|
|
\ Only users with course staff permissions can specify other users'\n\
|
|
\ usernames. If a username is specified, results include blocks that\n\
|
|
\ are visible to that user, including those based on group or cohort\n\
|
|
\ membership or randomized content assigned to that user.\n\n Example:\
|
|
\ username=anjali\n\n * student_view_data: (list) Indicates for which block\
|
|
\ types to return\n student_view_data.\n\n Example: student_view_data=video\n\
|
|
\n * block_counts: (list) Indicates for which block types to return the\n\
|
|
\ aggregate count of the blocks.\n\n Example: block_counts=video,problem\n\
|
|
\n * requested_fields: (list) Indicates which additional fields to return\n\
|
|
\ for each block. For a list of available fields see under `Response\n\
|
|
\ Values -> blocks`, below.\n\n The following fields are always\
|
|
\ returned: id, type, display_name\n\n Example: requested_fields=graded,format,student_view_multi_device\n\
|
|
\n * depth: (integer or all) Indicates how deep to traverse into the blocks\n\
|
|
\ hierarchy. A value of all means the entire hierarchy.\n\n Default\
|
|
\ is 0\n\n Example: depth=all\n\n * nav_depth: (integer)\n\n \
|
|
\ WARNING: nav_depth is not supported, and may be removed at any time.\n\n\
|
|
\ Indicates how far deep to traverse into the\n course hierarchy\
|
|
\ before bundling all the descendants.\n\n Default is 3 since typical\
|
|
\ navigational views of the course show a\n maximum of chapter->sequential->vertical.\n\
|
|
\n Example: nav_depth=3\n\n * return_type (string) Indicates in what\
|
|
\ data type to return the\n blocks.\n\n Default is dict. Supported\
|
|
\ values are: dict, list\n\n Example: return_type=dict\n\n * block_types_filter:\
|
|
\ (list) Requested types of blocks used to filter the final result\n \
|
|
\ of returned blocks. Possible values include sequential, vertical, html,\
|
|
\ problem,\n video, and discussion.\n\n Example: block_types_filter=vertical,html\n\
|
|
\n**Response Values**\n\n The following fields are returned with a successful\
|
|
\ response.\n\n * root: The ID of the root node of the requested course\
|
|
\ block\n structure.\n\n * blocks: A dictionary or list, based on\
|
|
\ the value of the\n \"return_type\" parameter. Maps block usage IDs\
|
|
\ to a collection of\n information about each block. Each block contains\
|
|
\ the following\n fields.\n\n * id: (string) The usage ID of the\
|
|
\ block.\n\n * type: (string) The type of block. Possible values the\
|
|
\ names of any\n XBlock type in the system, including custom blocks.\
|
|
\ Examples are\n course, chapter, sequential, vertical, html, problem,\
|
|
\ video, and\n discussion.\n\n * display_name: (string) The display\
|
|
\ name of the block.\n\n * children: (list) If the block has child blocks,\
|
|
\ a list of IDs of\n the child blocks. Returned only if \"children\"\
|
|
\ is included in the\n \"requested_fields\" parameter.\n\n * completion:\
|
|
\ (float or None) The level of completion of the block.\n Its value\
|
|
\ can vary between 0.0 and 1.0 or be equal to None\n if block is not\
|
|
\ completable. Returned only if \"completion\"\n is included in the\
|
|
\ \"requested_fields\" parameter.\n\n * block_counts: (dict) For each\
|
|
\ block type specified in the\n block_counts parameter to the endpoint,\
|
|
\ the aggregate number of\n blocks of that type for this block and\
|
|
\ all of its descendants.\n\n * graded (boolean) Whether or not the block\
|
|
\ or any of its descendants\n is graded. Returned only if \"graded\"\
|
|
\ is included in the\n \"requested_fields\" parameter.\n\n * format:\
|
|
\ (string) The assignment type of the block. Possible values\n can\
|
|
\ be \"Homework\", \"Lab\", \"Midterm Exam\", and \"Final Exam\".\n \
|
|
\ Returned only if \"format\" is included in the \"requested_fields\"\n \
|
|
\ parameter.\n\n * student_view_data: (dict) The JSON data for\
|
|
\ this block.\n Returned only if the \"student_view_data\" input parameter\
|
|
\ contains\n this block's type.\n\n * student_view_url: (string)\
|
|
\ The URL to retrieve the HTML rendering\n of this block's student\
|
|
\ view. The HTML could include CSS and\n Javascript code. This field\
|
|
\ can be used in combination with the\n student_view_multi_device field\
|
|
\ to decide whether to display this\n content to the user.\n\n \
|
|
\ This URL can be used as a fallback if the student_view_data for\n \
|
|
\ this block type is not supported by the client or the block.\n\n \
|
|
\ * student_view_multi_device: (boolean) Whether or not the HTML of\n \
|
|
\ the student view that is rendered at \"student_view_url\" supports\n\
|
|
\ responsive web layouts, touch-based inputs, and interactive state\n\
|
|
\ management for a variety of device sizes and types, including\n \
|
|
\ mobile and touch devices. Returned only if\n \"student_view_multi_device\"\
|
|
\ is included in the \"requested_fields\"\n parameter.\n\n * lms_web_url:\
|
|
\ (string) The URL to the navigational container of the\n xBlock on\
|
|
\ the web LMS. This URL can be used as a further fallback\n if the\
|
|
\ student_view_url and the student_view_data fields are not\n supported.\n\
|
|
\n * lti_url: The block URL for an LTI consumer. Returned only if the\n\
|
|
\ \"ENABLE_LTI_PROVIDER\" Django settign is set to \"True\".\n\n \
|
|
\ * due: The due date of the block. Returned only if \"due\" is included\n\
|
|
\ in the \"requested_fields\" parameter.\n\n * show_correctness:\
|
|
\ Whether to show scores/correctness to learners for the current sequence\
|
|
\ or problem.\n Returned only if \"show_correctness\" is included in\
|
|
\ the \"requested_fields\" parameter."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courses
|
|
parameters:
|
|
- name: usage_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/courses/v1/course_ids/:
|
|
get:
|
|
operationId: courses_v1_course_ids_list
|
|
summary: '**Use Cases**'
|
|
description: "Request a list of course IDs for all courses the specified user\
|
|
\ can\n access based on the provided parameters.\n\n**Example Requests**\n\
|
|
\n GET /api/courses/v1/courses_ids/\n\n**Response Values**\n\n Body\
|
|
\ comprises a list of course ids and pagination details.\n\n**Parameters**\n\
|
|
\n username (optional):\n The username of the specified user whose\
|
|
\ visible courses we\n want to see.\n\n role (required):\n \
|
|
\ Course ids are filtered such that only those for which the\n user\
|
|
\ has the specified role are returned. Role can be \"staff\"\n or \"\
|
|
instructor\".\n Case-insensitive.\n\n**Returns**\n\n * 200 on success,\
|
|
\ with a list of course ids and pagination details\n * 400 if an invalid\
|
|
\ parameter was sent or the username was not provided\n for an authenticated\
|
|
\ request.\n * 403 if a user who does not have permission to masquerade\
|
|
\ as\n another user who specifies a username other than their own.\n\
|
|
\ * 404 if the specified user does not exist, or the requesting user does\n\
|
|
\ not have permission to view their courses.\n\n Example response:\n\
|
|
\n {\n \"results\":\n [\n \
|
|
\ \"course-v1:edX+DemoX+Demo_Course\"\n ],\n \
|
|
\ \"pagination\": {\n \"previous\": null,\n \
|
|
\ \"num_pages\": 1,\n \"next\": null,\n \"\
|
|
count\": 1\n }\n }"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
type: string
|
|
tags:
|
|
- courses
|
|
parameters: []
|
|
/courses/v1/courses/:
|
|
get:
|
|
operationId: courses_v1_courses_list
|
|
summary: '**Use Cases**'
|
|
description: "Request information on all courses visible to the specified user.\n\
|
|
\n**Example Requests**\n\n GET /api/courses/v1/courses/\n\n**Response Values**\n\
|
|
\n Body comprises a list of objects as returned by `CourseDetailView`.\n\
|
|
\n**Parameters**\n\n search_term (optional):\n Search term to filter\
|
|
\ courses (used by ElasticSearch).\n\n username (optional):\n The\
|
|
\ username of the specified user whose visible courses we\n want to\
|
|
\ see. The username is not required only if the API is\n requested\
|
|
\ by an Anonymous user.\n\n org (optional):\n If specified, visible\
|
|
\ `CourseOverview` objects are filtered\n such that only those belonging\
|
|
\ to the organization with the\n provided org code (e.g., \"HarvardX\"\
|
|
) are returned.\n Case-insensitive.\n\n**Returns**\n\n * 200 on\
|
|
\ success, with a list of course discovery objects as returned\n by `CourseDetailView`.\n\
|
|
\ * 400 if an invalid parameter was sent or the username was not provided\n\
|
|
\ for an authenticated request.\n * 403 if a user who does not have\
|
|
\ permission to masquerade as\n another user specifies a username other\
|
|
\ than their own.\n * 404 if the specified user does not exist, or the\
|
|
\ requesting user does\n not have permission to view their courses.\n\
|
|
\n Example response:\n\n [\n {\n \"blocks_url\"\
|
|
: \"/api/courses/v1/blocks/?course_id=edX%2Fexample%2F2012_Fall\",\n \
|
|
\ \"media\": {\n \"course_image\": {\n \"\
|
|
uri\": \"/c4x/edX/example/asset/just_a_test.jpg\",\n \"name\"\
|
|
: \"Course Image\"\n }\n },\n \"description\"\
|
|
: \"An example course.\",\n \"end\": \"2015-09-19T18:00:00Z\",\n\
|
|
\ \"enrollment_end\": \"2015-07-15T00:00:00Z\",\n \"\
|
|
enrollment_start\": \"2015-06-15T00:00:00Z\",\n \"course_id\":\
|
|
\ \"edX/example/2012_Fall\",\n \"name\": \"Example Course\",\n\
|
|
\ \"number\": \"example\",\n \"org\": \"edX\",\n \
|
|
\ \"start\": \"2015-07-17T12:00:00Z\",\n \"start_display\"\
|
|
: \"July 17, 2015\",\n \"start_type\": \"timestamp\"\n \
|
|
\ }\n ]"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Course'
|
|
tags:
|
|
- courses
|
|
parameters: []
|
|
? /courses/v1/courses/(P{course_key_string}[/+]+{var}[/+]+api/courses/v1/courses/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
|
|
: get:
|
|
operationId: courses_v1_courses_+]+api_courses_v1_courses_+]+(_|+)[_]+)_read
|
|
summary: '**Use Cases**'
|
|
description: "Request details for a course\n\n**Example Requests**\n\n GET\
|
|
\ /api/courses/v1/courses/{course_key}/\n\n**Response Values**\n\n Body\
|
|
\ consists of the following fields:\n\n * effort: A textual description\
|
|
\ of the weekly hours of effort expected\n in the course.\n * end:\
|
|
\ Date the course ends, in ISO 8601 notation\n * enrollment_end: Date enrollment\
|
|
\ ends, in ISO 8601 notation\n * enrollment_start: Date enrollment begins,\
|
|
\ in ISO 8601 notation\n * id: A unique identifier of the course; a serialized\
|
|
\ representation\n of the opaque key identifying the course.\n *\
|
|
\ media: An object that contains named media items. Included here:\n \
|
|
\ * course_image: An image to show for the course. Represented\n \
|
|
\ as an object with the following fields:\n * uri: The location\
|
|
\ of the image\n * name: Name of the course\n * number: Catalog number\
|
|
\ of the course\n * org: Name of the organization that owns the course\n\
|
|
\ * overview: A possibly verbose HTML textual description of the course.\n\
|
|
\ Note: this field is only included in the Course Detail view, not\n\
|
|
\ the Course List view.\n * short_description: A textual description\
|
|
\ of the course\n * start: Date the course begins, in ISO 8601 notation\n\
|
|
\ * start_display: Readably formatted start of the course\n * start_type:\
|
|
\ Hint describing how `start_display` is set. One of:\n * `\"string\"\
|
|
`: manually set by the course author\n * `\"timestamp\"`: generated\
|
|
\ from the `start` timestamp\n * `\"empty\"`: no start date is specified\n\
|
|
\ * pacing: Course pacing. Possible values: instructor, self\n\n Deprecated\
|
|
\ fields:\n\n * blocks_url: Used to fetch the course blocks\n * course_id:\
|
|
\ Course key (use 'id' instead)\n\n**Parameters:**\n\n username (optional):\n\
|
|
\ The username of the specified user for whom the course data\n \
|
|
\ is being accessed. The username is not only required if the API is\n\
|
|
\ requested by an Anonymous user.\n\n**Returns**\n\n * 200 on success\
|
|
\ with above fields.\n * 400 if an invalid parameter was sent or the username\
|
|
\ was not provided\n for an authenticated request.\n * 403 if a user\
|
|
\ who does not have permission to masquerade as\n another user specifies\
|
|
\ a username other than their own.\n * 404 if the course is not available\
|
|
\ or cannot be seen.\n\n Example response:\n\n {\n \"\
|
|
blocks_url\": \"/api/courses/v1/blocks/?course_id=edX%2Fexample%2F2012_Fall\"\
|
|
,\n \"media\": {\n \"course_image\": {\n \
|
|
\ \"uri\": \"/c4x/edX/example/asset/just_a_test.jpg\",\n \
|
|
\ \"name\": \"Course Image\"\n }\n \
|
|
\ },\n \"description\": \"An example course.\",\n \"\
|
|
end\": \"2015-09-19T18:00:00Z\",\n \"enrollment_end\": \"2015-07-15T00:00:00Z\"\
|
|
,\n \"enrollment_start\": \"2015-06-15T00:00:00Z\",\n \
|
|
\ \"course_id\": \"edX/example/2012_Fall\",\n \"name\": \"Example\
|
|
\ Course\",\n \"number\": \"example\",\n \"org\": \"\
|
|
edX\",\n \"overview: \"<p>A verbose description of the course.</p>\"\
|
|
\n \"start\": \"2015-07-17T12:00:00Z\",\n \"start_display\"\
|
|
: \"July 17, 2015\",\n \"start_type\": \"timestamp\",\n \
|
|
\ \"pacing\": \"instructor\"\n }"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseDetail'
|
|
tags:
|
|
- courses
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/courses/v2/blocks/:
|
|
get:
|
|
operationId: courses_v2_blocks_list
|
|
summary: '**Use Case**'
|
|
description: "Returns the blocks in the course according to the requesting user's\n\
|
|
\ access level.\n\n**Example requests**:\n\n GET /api/courses/v1/blocks/?course_id=<course_id>\n\
|
|
\ GET /api/courses/v1/blocks/?course_id=<course_id>\n &username=anjali\n\
|
|
\ &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url\n\
|
|
\ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\
|
|
\n**Parameters**:\n\n This view redirects to /api/courses/v1/blocks/<root_usage_key>/\
|
|
\ for the\n root usage key of the course specified by course_id. The view\
|
|
\ accepts\n all parameters accepted by :class:`BlocksView`, plus the following\n\
|
|
\ required parameter\n\n * course_id: (string, required) The ID of the\
|
|
\ course whose block data\n we want to return\n\n**Response Values**\n\
|
|
\n Responses are identical to those returned by :class:`BlocksView` when\n\
|
|
\ passed the root_usage_key of the requested course.\n\n If the course_id\
|
|
\ is not supplied, a 400: Bad Request is returned, with\n a message indicating\
|
|
\ that course_id is required.\n\n If an invalid course_id is supplied,\
|
|
\ a 400: Bad Request is returned,\n with a message indicating that the\
|
|
\ course_id is not valid."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courses
|
|
parameters: []
|
|
? /courses/v2/blocks/(P{usage_key_string}{var}|api/courses/v2/blocks/(P{usage_key_string}(:i4x://[/]+/[/]+/[/]+/[@]+(:@[/]+))|{var})
|
|
: get:
|
|
operationId: courses_v2_blocks_courses_v2_blocks__[_]+_[_]+_[_]+_[@]+(:@[_read
|
|
summary: '**Use Case**'
|
|
description: "Returns the blocks within the requested block tree according to\
|
|
\ the\n requesting user's access level.\n\n**Example requests**:\n\n \
|
|
\ GET /api/courses/v1/blocks/<root_block_usage_id>/?depth=all\n GET /api/courses/v1/blocks/<usage_id>/?\n\
|
|
\ username=anjali\n &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url,due\n\
|
|
\ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\
|
|
\n**Parameters**:\n\n * all_blocks: (boolean) Provide a value of \"true\"\
|
|
\ to return all\n blocks. Returns all blocks only if the requesting user\
|
|
\ has course\n staff permissions. Blocks that are visible only to specific\
|
|
\ learners\n (for example, based on group membership or randomized content)\
|
|
\ are\n all included. If all_blocks is not specified, you must specify\
|
|
\ the\n username for the user whose course blocks are requested.\n\n\
|
|
\ * username: (string) Required, unless ``all_blocks`` is specified.\n\
|
|
\ Specify the username for the user whose course blocks are requested.\n\
|
|
\ Only users with course staff permissions can specify other users'\n\
|
|
\ usernames. If a username is specified, results include blocks that\n\
|
|
\ are visible to that user, including those based on group or cohort\n\
|
|
\ membership or randomized content assigned to that user.\n\n Example:\
|
|
\ username=anjali\n\n * student_view_data: (list) Indicates for which block\
|
|
\ types to return\n student_view_data.\n\n Example: student_view_data=video\n\
|
|
\n * block_counts: (list) Indicates for which block types to return the\n\
|
|
\ aggregate count of the blocks.\n\n Example: block_counts=video,problem\n\
|
|
\n * requested_fields: (list) Indicates which additional fields to return\n\
|
|
\ for each block. For a list of available fields see under `Response\n\
|
|
\ Values -> blocks`, below.\n\n The following fields are always\
|
|
\ returned: id, type, display_name\n\n Example: requested_fields=graded,format,student_view_multi_device\n\
|
|
\n * depth: (integer or all) Indicates how deep to traverse into the blocks\n\
|
|
\ hierarchy. A value of all means the entire hierarchy.\n\n Default\
|
|
\ is 0\n\n Example: depth=all\n\n * nav_depth: (integer)\n\n \
|
|
\ WARNING: nav_depth is not supported, and may be removed at any time.\n\n\
|
|
\ Indicates how far deep to traverse into the\n course hierarchy\
|
|
\ before bundling all the descendants.\n\n Default is 3 since typical\
|
|
\ navigational views of the course show a\n maximum of chapter->sequential->vertical.\n\
|
|
\n Example: nav_depth=3\n\n * return_type (string) Indicates in what\
|
|
\ data type to return the\n blocks.\n\n Default is dict. Supported\
|
|
\ values are: dict, list\n\n Example: return_type=dict\n\n * block_types_filter:\
|
|
\ (list) Requested types of blocks used to filter the final result\n \
|
|
\ of returned blocks. Possible values include sequential, vertical, html,\
|
|
\ problem,\n video, and discussion.\n\n Example: block_types_filter=vertical,html\n\
|
|
\n**Response Values**\n\n The following fields are returned with a successful\
|
|
\ response.\n\n * root: The ID of the root node of the requested course\
|
|
\ block\n structure.\n\n * blocks: A dictionary or list, based on\
|
|
\ the value of the\n \"return_type\" parameter. Maps block usage IDs\
|
|
\ to a collection of\n information about each block. Each block contains\
|
|
\ the following\n fields.\n\n * id: (string) The usage ID of the\
|
|
\ block.\n\n * type: (string) The type of block. Possible values the\
|
|
\ names of any\n XBlock type in the system, including custom blocks.\
|
|
\ Examples are\n course, chapter, sequential, vertical, html, problem,\
|
|
\ video, and\n discussion.\n\n * display_name: (string) The display\
|
|
\ name of the block.\n\n * children: (list) If the block has child blocks,\
|
|
\ a list of IDs of\n the child blocks. Returned only if \"children\"\
|
|
\ is included in the\n \"requested_fields\" parameter.\n\n * completion:\
|
|
\ (float or None) The level of completion of the block.\n Its value\
|
|
\ can vary between 0.0 and 1.0 or be equal to None\n if block is not\
|
|
\ completable. Returned only if \"completion\"\n is included in the\
|
|
\ \"requested_fields\" parameter.\n\n * block_counts: (dict) For each\
|
|
\ block type specified in the\n block_counts parameter to the endpoint,\
|
|
\ the aggregate number of\n blocks of that type for this block and\
|
|
\ all of its descendants.\n\n * graded (boolean) Whether or not the block\
|
|
\ or any of its descendants\n is graded. Returned only if \"graded\"\
|
|
\ is included in the\n \"requested_fields\" parameter.\n\n * format:\
|
|
\ (string) The assignment type of the block. Possible values\n can\
|
|
\ be \"Homework\", \"Lab\", \"Midterm Exam\", and \"Final Exam\".\n \
|
|
\ Returned only if \"format\" is included in the \"requested_fields\"\n \
|
|
\ parameter.\n\n * student_view_data: (dict) The JSON data for\
|
|
\ this block.\n Returned only if the \"student_view_data\" input parameter\
|
|
\ contains\n this block's type.\n\n * student_view_url: (string)\
|
|
\ The URL to retrieve the HTML rendering\n of this block's student\
|
|
\ view. The HTML could include CSS and\n Javascript code. This field\
|
|
\ can be used in combination with the\n student_view_multi_device field\
|
|
\ to decide whether to display this\n content to the user.\n\n \
|
|
\ This URL can be used as a fallback if the student_view_data for\n \
|
|
\ this block type is not supported by the client or the block.\n\n \
|
|
\ * student_view_multi_device: (boolean) Whether or not the HTML of\n \
|
|
\ the student view that is rendered at \"student_view_url\" supports\n\
|
|
\ responsive web layouts, touch-based inputs, and interactive state\n\
|
|
\ management for a variety of device sizes and types, including\n \
|
|
\ mobile and touch devices. Returned only if\n \"student_view_multi_device\"\
|
|
\ is included in the \"requested_fields\"\n parameter.\n\n * lms_web_url:\
|
|
\ (string) The URL to the navigational container of the\n xBlock on\
|
|
\ the web LMS. This URL can be used as a further fallback\n if the\
|
|
\ student_view_url and the student_view_data fields are not\n supported.\n\
|
|
\n * lti_url: The block URL for an LTI consumer. Returned only if the\n\
|
|
\ \"ENABLE_LTI_PROVIDER\" Django settign is set to \"True\".\n\n \
|
|
\ * due: The due date of the block. Returned only if \"due\" is included\n\
|
|
\ in the \"requested_fields\" parameter.\n\n * show_correctness:\
|
|
\ Whether to show scores/correctness to learners for the current sequence\
|
|
\ or problem.\n Returned only if \"show_correctness\" is included in\
|
|
\ the \"requested_fields\" parameter."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courses
|
|
parameters:
|
|
- name: usage_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
? /courseware/course/(P{course_key_string}[/+]+{var}[/+]+api/courseware/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
|
|
: get:
|
|
operationId: courseware_course_+]+api_courseware_course_+]+(_|+)[_]+)_read
|
|
summary: '**Use Cases**'
|
|
description: "Request details for a course\n\n**Example Requests**\n\n GET\
|
|
\ /api/courseware/course/{course_key}\n\n**Response Values**\n\n Body consists\
|
|
\ of the following fields:\n\n * effort: A textual description of the weekly\
|
|
\ hours of effort expected\n in the course.\n * end: Date the course\
|
|
\ ends, in ISO 8601 notation\n * enrollment_end: Date enrollment ends,\
|
|
\ in ISO 8601 notation\n * enrollment_start: Date enrollment begins, in\
|
|
\ ISO 8601 notation\n * id: A unique identifier of the course; a serialized\
|
|
\ representation\n of the opaque key identifying the course.\n *\
|
|
\ media: An object that contains named media items. Included here:\n \
|
|
\ * course_image: An image to show for the course. Represented\n \
|
|
\ as an object with the following fields:\n * uri: The location\
|
|
\ of the image\n * name: Name of the course\n * number: Catalog number\
|
|
\ of the course\n * org: Name of the organization that owns the course\n\
|
|
\ * short_description: A textual description of the course\n * start:\
|
|
\ Date the course begins, in ISO 8601 notation\n * start_display: Readably\
|
|
\ formatted start of the course\n * start_type: Hint describing how `start_display`\
|
|
\ is set. One of:\n * `\"string\"`: manually set by the course author\n\
|
|
\ * `\"timestamp\"`: generated from the `start` timestamp\n \
|
|
\ * `\"empty\"`: no start date is specified\n * pacing: Course pacing.\
|
|
\ Possible values: instructor, self\n * tabs: Course tabs\n * enrollment:\
|
|
\ Enrollment status of authenticated user\n * mode: `audit`, `verified`,\
|
|
\ etc\n * is_active: boolean\n * can_load_course: Whether the user\
|
|
\ can view the course (AccessResponse object)\n * is_staff: Whether the\
|
|
\ user has staff access to the course\n\n**Parameters:**\n\n requested_fields\
|
|
\ (optional) comma separated list:\n If set, then only those fields\
|
|
\ will be returned.\n username (optional) username to masquerade as (if\
|
|
\ requesting user is staff)\n\n**Returns**\n\n * 200 on success with above\
|
|
\ fields.\n * 400 if an invalid parameter was sent or the username was\
|
|
\ not provided\n for an authenticated request.\n * 403 if a user who\
|
|
\ does not have permission to masquerade as\n another user specifies\
|
|
\ a username other than their own.\n * 404 if the course is not available\
|
|
\ or cannot be seen."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courseware
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
? /courseware/sequence/(P{usage_key_string}{var}|api/courseware/sequence/(P{usage_key_string}(:i4x://[/]+/[/]+/[/]+/[@]+(:@[/]+))|{var})
|
|
: get:
|
|
operationId: courseware_sequence_courseware_sequence__[_]+_[_]+_[_]+_[@]+(:@[_read
|
|
description: Return response to a GET request.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- courseware
|
|
parameters:
|
|
- name: usage_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/credit/v1/courses/:
|
|
get:
|
|
operationId: credit_v1_courses_list
|
|
description: CreditCourse endpoints.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CreditCourse'
|
|
tags:
|
|
- credit
|
|
post:
|
|
operationId: credit_v1_courses_create
|
|
description: CreditCourse endpoints.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
tags:
|
|
- credit
|
|
parameters: []
|
|
/credit/v1/courses/{course_key}/:
|
|
get:
|
|
operationId: credit_v1_courses_read
|
|
description: CreditCourse endpoints.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
tags:
|
|
- credit
|
|
put:
|
|
operationId: credit_v1_courses_update
|
|
description: Create/update course modes for a course.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
tags:
|
|
- credit
|
|
patch:
|
|
operationId: credit_v1_courses_partial_update
|
|
description: CreditCourse endpoints.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CreditCourse'
|
|
tags:
|
|
- credit
|
|
parameters:
|
|
- name: course_key
|
|
in: path
|
|
required: true
|
|
type: string
|
|
pattern: (?:[^/+]+(/|\+)[^/+]+(/|\+)[^/?]+)
|
|
/credit/v1/eligibility/:
|
|
get:
|
|
operationId: credit_v1_eligibility_list
|
|
description: Returns eligibility for a user-course combination.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CreditEligibility'
|
|
tags:
|
|
- credit
|
|
parameters: []
|
|
/credit/v1/providers/:
|
|
get:
|
|
operationId: credit_v1_providers_list
|
|
description: Credit provider endpoints.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CreditProvider'
|
|
tags:
|
|
- credit
|
|
parameters: []
|
|
/credit/v1/providers/{provider_id}/:
|
|
get:
|
|
operationId: credit_v1_providers_read
|
|
description: Credit provider endpoints.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CreditProvider'
|
|
tags:
|
|
- credit
|
|
parameters:
|
|
- name: provider_id
|
|
in: path
|
|
description: Unique identifier for this credit provider. Only alphanumeric
|
|
characters and hyphens (-) are allowed. The identifier is case-sensitive.
|
|
required: true
|
|
type: string
|
|
pattern: '[a-z,A-Z,0-9,\-]+'
|
|
/credit/v1/providers/{provider_id}/callback/:
|
|
post:
|
|
operationId: credit_v1_providers_callback_create
|
|
description: POST handler.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- credit
|
|
parameters:
|
|
- name: provider_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/credit/v1/providers/{provider_id}/request/:
|
|
post:
|
|
operationId: credit_v1_providers_request_create
|
|
description: POST handler.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- credit
|
|
parameters:
|
|
- name: provider_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discounts/course/(P{course_key_string}[/+]+{var}[/+]+api/discounts/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+):
|
|
get:
|
|
operationId: discounts_course_+]+api_discounts_course_+]+(_|+)[_]+)_list
|
|
description: Return the discount percent, if the user has appropriate permissions.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- discounts
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
? /discounts/user/{user_id}/course/(P{course_key_string}[/+]+{var}[/+]+api/discounts/user/{user_id}/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
|
|
: get:
|
|
operationId: discounts_user_course_+]+api_discounts_user_course_+]+(_|+)[_]+)_list
|
|
description: Return the discount percent, if the user has appropriate permissions.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- discounts
|
|
parameters:
|
|
- name: course_key_string
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: user_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discussion/v1/accounts/replace_username:
|
|
post:
|
|
operationId: discussion_v1_accounts_replace_username_create
|
|
description: Implements the username replacement endpoint
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
parameters: []
|
|
/discussion/v1/accounts/retire_forum:
|
|
post:
|
|
operationId: discussion_v1_accounts_retire_forum_create
|
|
description: Implements the retirement endpoint.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
parameters: []
|
|
/discussion/v1/comments/:
|
|
get:
|
|
operationId: discussion_v1_comments_list
|
|
description: "Implements the GET method for the list endpoint as described in\
|
|
\ the\nclass docstring."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
post:
|
|
operationId: discussion_v1_comments_create
|
|
description: "Implements the POST method for the list endpoint as described\
|
|
\ in the\nclass docstring."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
parameters: []
|
|
/discussion/v1/comments/{comment_id}/:
|
|
get:
|
|
operationId: discussion_v1_comments_read
|
|
description: Implements the GET method for comments against response ID
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
patch:
|
|
operationId: discussion_v1_comments_partial_update
|
|
description: "Implements the PATCH method for the instance endpoint as described\
|
|
\ in\nthe class docstring."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
delete:
|
|
operationId: discussion_v1_comments_delete
|
|
description: "Implements the DELETE method for the instance endpoint as described\
|
|
\ in\nthe class docstring"
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: comment_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
? /discussion/v1/course_topics/(P{course_id}[/+]+{var}[/+]+api/discussion/v1/course_topics/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+)
|
|
: get:
|
|
operationId: discussion_v1_course_topics_+]+api_discussion_v1_course_topics_+]+(_|+)[_]+)_list
|
|
description: Implements the GET method as described in the class docstring.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discussion/v1/courses/(P{course_id}[/+]+{var}[/+]+api/discussion/v1/courses/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+):
|
|
get:
|
|
operationId: discussion_v1_courses_+]+api_discussion_v1_courses_+]+(_|+)[_]+)_list
|
|
description: Implements the GET method as described in the class docstring.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discussion/v1/courses/{course_id}/roles/{rolename}/:
|
|
get:
|
|
operationId: discussion_v1_courses_roles_read
|
|
description: Implement a handler for the GET method.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
post:
|
|
operationId: discussion_v1_courses_roles_create
|
|
description: Implement a handler for the POST method.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: rolename
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discussion/v1/courses/{course_id}/settings:
|
|
get:
|
|
operationId: discussion_v1_courses_settings_list
|
|
description: Implement a handler for the GET method.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
patch:
|
|
operationId: discussion_v1_courses_settings_partial_update
|
|
description: Implement a handler for the PATCH method.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/discussion/v1/threads/:
|
|
get:
|
|
operationId: discussion_v1_threads_list
|
|
description: "Implements the GET method for the list endpoint as described in\
|
|
\ the\nclass docstring."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
post:
|
|
operationId: discussion_v1_threads_create
|
|
description: "Implements the POST method for the list endpoint as described\
|
|
\ in the\nclass docstring."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
parameters: []
|
|
/discussion/v1/threads/{thread_id}/:
|
|
get:
|
|
operationId: discussion_v1_threads_read
|
|
description: Implements the GET method for thread ID
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
patch:
|
|
operationId: discussion_v1_threads_partial_update
|
|
description: "Implements the PATCH method for the instance endpoint as described\
|
|
\ in\nthe class docstring."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
delete:
|
|
operationId: discussion_v1_threads_delete
|
|
description: "Implements the DELETE method for the instance endpoint as described\
|
|
\ in\nthe class docstring"
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
consumes:
|
|
- application/json
|
|
- application/merge-patch+json
|
|
tags:
|
|
- discussion
|
|
parameters:
|
|
- name: thread_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/proctoring_review_callback/:
|
|
post:
|
|
operationId: edx_proctoring_proctoring_review_callback_create
|
|
description: Post callback handler
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters: []
|
|
/edx_proctoring/v1/instructor/{course_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_instructor_read
|
|
description: Redirect to dashboard for a given course and optional exam_id
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/instructor/{course_id}/{exam_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_instructor_read
|
|
description: Redirect to dashboard for a given course and optional exam_id
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: exam_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/active_exams_for_user:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_active_exams_for_user_list
|
|
description: Returns the get_active_exams_for_user
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters: []
|
|
/edx_proctoring/v1/proctored_exam/allowance:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_list
|
|
description: "HTTP GET handler. Get all allowances for a course.\nCourse and\
|
|
\ Global staff can view both timed and proctored exam allowances."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_update
|
|
description: HTTP GET handler. Adds or updates Allowance
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
delete:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_delete
|
|
description: HTTP DELETE handler. Removes Allowance.
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters: []
|
|
/edx_proctoring/v1/proctored_exam/attempt:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_list
|
|
description: HTTP GET Handler. Returns the status of the exam attempt.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_create
|
|
description: HTTP POST handler. To create an exam attempt.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters: []
|
|
/edx_proctoring/v1/proctored_exam/attempt/course_id/{course_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_course_id_read
|
|
description: "HTTP GET Handler. Returns the status of the exam attempt.\nCourse\
|
|
\ and Global staff can view both timed and proctored exam attempts."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/attempt/course_id/{course_id}/search/{search_by}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_course_id_search_read
|
|
description: "HTTP GET Handler. Returns the status of the exam attempt.\nCourse\
|
|
\ and Global staff can view both timed and proctored exam attempts."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: search_by
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/attempt/{attempt_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_read
|
|
description: HTTP GET Handler. Returns the status of the exam attempt.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_update
|
|
description: HTTP POST handler. To stop an exam.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
delete:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_delete
|
|
description: HTTP DELETE handler. Removes an exam attempt.
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: attempt_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/attempt/{attempt_id}/review_status:
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_review_status_update
|
|
description: Update the is_status_acknowledge flag for the specific attempt
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: attempt_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/attempt/{external_id}/ready:
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_ready_create
|
|
description: Post callback handler
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/attempt/{external_id}/reviewed:
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_attempt_reviewed_create
|
|
description: "Called when 3rd party proctoring service has finished its review\
|
|
\ of\nan attempt."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/exam:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_list
|
|
description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\
|
|
\ by course_id, content_id: get_exam_by_content_id()"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_create
|
|
description: Http POST handler. Creates an exam.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_update
|
|
description: "HTTP PUT handler. To update an exam.\ncalls the update_exam"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters: []
|
|
/edx_proctoring/v1/proctored_exam/exam/course_id/{course_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_read
|
|
description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\
|
|
\ by course_id, content_id: get_exam_by_content_id()"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_create
|
|
description: Http POST handler. Creates an exam.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_update
|
|
description: "HTTP PUT handler. To update an exam.\ncalls the update_exam"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/exam/course_id/{course_id}/content_id/{content_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_read
|
|
description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\
|
|
\ by course_id, content_id: get_exam_by_content_id()"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_create
|
|
description: Http POST handler. Creates an exam.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_update
|
|
description: "HTTP PUT handler. To update an exam.\ncalls the update_exam"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: content_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/exam/exam_id/{exam_id}:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_read
|
|
description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\
|
|
\ by course_id, content_id: get_exam_by_content_id()"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
post:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_create
|
|
description: Http POST handler. Creates an exam.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_update
|
|
description: "HTTP PUT handler. To update an exam.\ncalls the update_exam"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: exam_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/proctored_exam/{course_id}/allowance:
|
|
get:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_list
|
|
description: "HTTP GET handler. Get all allowances for a course.\nCourse and\
|
|
\ Global staff can view both timed and proctored exam allowances."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
put:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_update
|
|
description: HTTP GET handler. Adds or updates Allowance
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
delete:
|
|
operationId: edx_proctoring_v1_proctored_exam_allowance_delete
|
|
description: HTTP DELETE handler. Removes Allowance.
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/retire_backend_user/{user_id}/:
|
|
post:
|
|
operationId: edx_proctoring_v1_retire_backend_user_create
|
|
description: "Deletes all user data for the particular user_id\nfrom all configured\
|
|
\ backends"
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: user_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edx_proctoring/v1/retire_user/{user_id}/:
|
|
post:
|
|
operationId: edx_proctoring_v1_retire_user_create
|
|
description: Obfuscates all PII for a given user_id
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edx_proctoring
|
|
parameters:
|
|
- name: user_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/edxnotes/v1/retire_user/:
|
|
post:
|
|
operationId: edxnotes_v1_retire_user_create
|
|
description: Implements the retirement endpoint.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- edxnotes
|
|
parameters: []
|
|
/embargo/v1/course_access/:
|
|
get:
|
|
operationId: embargo_v1_course_access_list
|
|
description: GET /api/embargo/v1/course_access/
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- embargo
|
|
parameters: []
|
|
/enrollment/v1/course/{course_id}:
|
|
get:
|
|
operationId: enrollment_v1_course_read
|
|
summary: Read enrollment information for a particular course.
|
|
description: HTTP Endpoint for retrieving course level enrollment information.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/enrollment/v1/enrollment:
|
|
get:
|
|
operationId: enrollment_v1_enrollment_list
|
|
summary: Gets a list of all course enrollments for a user.
|
|
description: "Returns a list for the currently logged in user, or for the user\
|
|
\ named by the 'user' GET\nparameter. If the username does not match that\
|
|
\ of the currently logged in user, only\ncourses for which the currently logged\
|
|
\ in user has the Staff or Admin role are listed.\nAs a result, a course team\
|
|
\ member can find out which of his or her own courses a particular\nlearner\
|
|
\ is enrolled in.\n\nOnly the Staff or Admin role (granted on the Django administrative\
|
|
\ console as the staff\nor instructor permission) in individual courses gives\
|
|
\ the requesting user access to\nenrollment data. Permissions granted at the\
|
|
\ organizational level do not give a user\naccess to enrollment data for all\
|
|
\ of that organization's courses.\n\nUsers who have the global staff permission\
|
|
\ can access all enrollment data for all\ncourses."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
post:
|
|
operationId: enrollment_v1_enrollment_create
|
|
summary: Enrolls the currently logged-in user in a course.
|
|
description: "Server-to-server calls may deactivate or modify the mode of existing\
|
|
\ enrollments. All other requests\ngo through `add_enrollment()`, which allows\
|
|
\ creation of new and reactivation of old enrollments."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters: []
|
|
/enrollment/v1/enrollment/{course_id}:
|
|
get:
|
|
operationId: enrollment_v1_enrollment_read
|
|
summary: Create, read, or update enrollment information for a user.
|
|
description: "HTTP Endpoint for all CRUD operations for a user course enrollment.\
|
|
\ Allows creation, reading, and\nupdates of the current enrollment for a particular\
|
|
\ course."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/enrollment/v1/enrollment/{username},{course_id}:
|
|
get:
|
|
operationId: enrollment_v1_enrollment_read
|
|
summary: Create, read, or update enrollment information for a user.
|
|
description: "HTTP Endpoint for all CRUD operations for a user course enrollment.\
|
|
\ Allows creation, reading, and\nupdates of the current enrollment for a particular\
|
|
\ course."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/enrollment/v1/enrollments/:
|
|
get:
|
|
operationId: enrollment_v1_enrollments_list
|
|
summary: '**Use Cases**'
|
|
description: "Get a list of all course enrollments, optionally filtered by a\
|
|
\ course ID or list of usernames.\n\n**Example Requests**\n\n GET /api/enrollment/v1/enrollments\n\
|
|
\n GET /api/enrollment/v1/enrollments?course_id={course_id}\n\n GET\
|
|
\ /api/enrollment/v1/enrollments?username={username},{username},{username}\n\
|
|
\n GET /api/enrollment/v1/enrollments?course_id={course_id}&username={username}\n\
|
|
\n**Query Parameters for GET**\n\n * course_id: Filters the result to course\
|
|
\ enrollments for the course corresponding to the\n given course ID.\
|
|
\ The value must be URL encoded. Optional.\n\n * username: List of comma-separated\
|
|
\ usernames. Filters the result to the course enrollments\n of the given\
|
|
\ users. Optional.\n\n * page_size: Number of results to return per page.\
|
|
\ Optional.\n\n * page: Page number to retrieve. Optional.\n\n**Response\
|
|
\ Values**\n\n If the request for information about the course enrollments\
|
|
\ is successful, an HTTP 200 \"OK\" response\n is returned.\n\n The\
|
|
\ HTTP 200 response has the following values.\n\n * results: A list of\
|
|
\ the course enrollments matching the request.\n\n * created: Date\
|
|
\ and time when the course enrollment was created.\n\n * mode: Mode\
|
|
\ for the course enrollment.\n\n * is_active: Whether the course enrollment\
|
|
\ is active or not.\n\n * user: Username of the user in the course\
|
|
\ enrollment.\n\n * course_id: Course ID of the course in the course\
|
|
\ enrollment.\n\n * next: The URL to the next page of results, or null\
|
|
\ if this is the\n last page.\n\n * previous: The URL to the next\
|
|
\ page of results, or null if this\n is the first page.\n\n If the\
|
|
\ user is not logged in, a 401 error is returned.\n\n If the user is not\
|
|
\ global staff, a 403 error is returned.\n\n If the specified course_id\
|
|
\ is not valid or any of the specified usernames\n are not valid, a 400\
|
|
\ error is returned.\n\n If the specified course_id does not correspond\
|
|
\ to a valid course or if all the specified\n usernames do not correspond\
|
|
\ to valid users, an HTTP 200 \"OK\" response is returned with an\n empty\
|
|
\ 'results' field."
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- results
|
|
type: object
|
|
properties:
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseEnrollmentsApiList'
|
|
tags:
|
|
- enrollment
|
|
parameters: []
|
|
/enrollment/v1/roles/:
|
|
get:
|
|
operationId: enrollment_v1_roles_list
|
|
description: Gets a list of all roles for the currently logged-in user, filtered
|
|
by course_id if supplied
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters: []
|
|
/enrollment/v1/unenroll/:
|
|
post:
|
|
operationId: enrollment_v1_unenroll_create
|
|
description: Unenrolls the specified user from all courses.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- enrollment
|
|
parameters: []
|
|
/entitlements/v1/entitlements/:
|
|
get:
|
|
operationId: entitlements_v1_entitlements_list
|
|
description: "Override the list method to expire records that are past the\n\
|
|
policy and requested via the API before returning those records."
|
|
parameters:
|
|
- name: uuid
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: string
|
|
- name: user
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
tags:
|
|
- entitlements
|
|
post:
|
|
operationId: entitlements_v1_entitlements_create
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
tags:
|
|
- entitlements
|
|
parameters: []
|
|
/entitlements/v1/entitlements/{uuid}/:
|
|
get:
|
|
operationId: entitlements_v1_entitlements_read
|
|
description: "Override the retrieve method to expire a record that is past the\n\
|
|
policy and is requested via the API before returning that record."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
tags:
|
|
- entitlements
|
|
put:
|
|
operationId: entitlements_v1_entitlements_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
tags:
|
|
- entitlements
|
|
patch:
|
|
operationId: entitlements_v1_entitlements_partial_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseEntitlement'
|
|
tags:
|
|
- entitlements
|
|
delete:
|
|
operationId: entitlements_v1_entitlements_delete
|
|
description: ''
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- entitlements
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}'
|
|
/entitlements/v1/entitlements/{uuid}/enrollments:
|
|
post:
|
|
operationId: entitlements_v1_entitlements_enrollments_create
|
|
description: "On POST this method will be called and will handle enrolling a\
|
|
\ user in the\nprovided course_run_id from the data. This is called on a specific\
|
|
\ entitlement\nUUID so the course_run_id has to correspond to the Course that\
|
|
\ is assigned to\nthe Entitlement.\n\nWhen this API is called for a user who\
|
|
\ is already enrolled in a run that User\nwill be unenrolled from their current\
|
|
\ run and enrolled in the new run if it is\navailable."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- entitlements
|
|
delete:
|
|
operationId: entitlements_v1_entitlements_enrollments_delete
|
|
summary: On DELETE call to this API we will unenroll the course enrollment for
|
|
the provided uuid
|
|
description: "If is_refund parameter is provided then unenroll the user, set\
|
|
\ Entitlement expiration, and issue\na refund"
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- entitlements
|
|
parameters:
|
|
- name: uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
/experiments/v0/custom/REV-934/:
|
|
get:
|
|
operationId: experiments_v0_custom_REV-934_list
|
|
description: Return the if the course should be upsold in the mobile app, if
|
|
the user has appropriate permissions.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- experiments
|
|
parameters: []
|
|
/experiments/v0/data/:
|
|
get:
|
|
operationId: experiments_v0_data_list
|
|
description: ''
|
|
parameters:
|
|
- name: experiment_id
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: number
|
|
- name: key
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ExperimentData'
|
|
tags:
|
|
- experiments
|
|
post:
|
|
operationId: experiments_v0_data_create
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentDataCreate'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentDataCreate'
|
|
tags:
|
|
- experiments
|
|
put:
|
|
operationId: experiments_v0_data_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
tags:
|
|
- experiments
|
|
parameters: []
|
|
/experiments/v0/data/{id}/:
|
|
get:
|
|
operationId: experiments_v0_data_read
|
|
description: ''
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
tags:
|
|
- experiments
|
|
put:
|
|
operationId: experiments_v0_data_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
tags:
|
|
- experiments
|
|
patch:
|
|
operationId: experiments_v0_data_partial_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentData'
|
|
tags:
|
|
- experiments
|
|
delete:
|
|
operationId: experiments_v0_data_delete
|
|
description: ''
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- experiments
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: A unique integer value identifying this Experiment Data.
|
|
required: true
|
|
type: integer
|
|
/experiments/v0/key-value/:
|
|
get:
|
|
operationId: experiments_v0_key-value_list
|
|
description: ''
|
|
parameters:
|
|
- name: experiment_id
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: number
|
|
- name: key
|
|
in: query
|
|
description: ''
|
|
required: false
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
tags:
|
|
- experiments
|
|
post:
|
|
operationId: experiments_v0_key-value_create
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
tags:
|
|
- experiments
|
|
parameters: []
|
|
/experiments/v0/key-value/{id}/:
|
|
get:
|
|
operationId: experiments_v0_key-value_read
|
|
description: ''
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
tags:
|
|
- experiments
|
|
put:
|
|
operationId: experiments_v0_key-value_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
tags:
|
|
- experiments
|
|
patch:
|
|
operationId: experiments_v0_key-value_partial_update
|
|
description: ''
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/ExperimentKeyValue'
|
|
tags:
|
|
- experiments
|
|
delete:
|
|
operationId: experiments_v0_key-value_delete
|
|
description: ''
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- experiments
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: A unique integer value identifying this Experiment Key-Value
|
|
Pair.
|
|
required: true
|
|
type: integer
|
|
/grades/v1/courses/:
|
|
get:
|
|
operationId: grades_v1_courses_list
|
|
description: Gets a course progress status.
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters: []
|
|
/grades/v1/courses/{course_id}/:
|
|
get:
|
|
operationId: grades_v1_courses_read
|
|
description: Gets a course progress status.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/grades/v1/gradebook/{course_id}/:
|
|
get:
|
|
operationId: grades_v1_gradebook_read
|
|
description: "Checks for course author access for the given course by the requesting\
|
|
\ user.\nCalls the view function if has access, otherwise raises a 403."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/grades/v1/gradebook/{course_id}/bulk-update:
|
|
post:
|
|
operationId: grades_v1_gradebook_bulk-update_create
|
|
description: "Checks for course author access for the given course by the requesting\
|
|
\ user.\nCalls the view function if has access, otherwise raises a 403."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/grades/v1/gradebook/{course_id}/grading-info:
|
|
get:
|
|
operationId: grades_v1_gradebook_grading-info_list
|
|
description: "Checks for course author access for the given course by the requesting\
|
|
\ user.\nCalls the view function if has access, otherwise raises a 403."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/grades/v1/policy/courses/{course_id}/:
|
|
get:
|
|
operationId: grades_v1_policy_courses_read
|
|
summary: '**Use Case**'
|
|
description: "Get the course grading policy.\n\n**Example requests**:\n\n \
|
|
\ GET /api/grades/v1/policy/courses/{course_id}/\n\n**Response Values**\n\
|
|
\n * assignment_type: The type of the assignment, as configured by course\n\
|
|
\ staff. For example, course staff might make the assignment types Homework,\n\
|
|
\ Quiz, and Exam.\n\n * count: The number of assignments of the type.\n\
|
|
\n * dropped: Number of assignments of the type that are dropped.\n\n \
|
|
\ * weight: The weight, or effect, of the assignment type on the learner's\n\
|
|
\ final grade."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/grades/v1/subsection/{subsection_id}/:
|
|
get:
|
|
operationId: grades_v1_subsection_read
|
|
description: "Returns subection grade data, override grade data and a history\
|
|
\ of changes made to\na specific users specific subsection grade."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- grades
|
|
parameters:
|
|
- name: subsection_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/mobile/{api_version}/course_info/{course_id}/handouts:
|
|
get:
|
|
operationId: mobile_course_info_handouts_list
|
|
summary: '**Use Case**'
|
|
description: "Get the HTML for course handouts.\n\n**Example Request**\n\n \
|
|
\ GET /api/mobile/v0.5/course_info/{course_id}/handouts\n\n**Response Values**\n\
|
|
\n If the request is successful, the request returns an HTTP 200 \"OK\"\
|
|
\n response along with the following value.\n\n * handouts_html: The\
|
|
\ HTML for course handouts."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/mobile/{api_version}/course_info/{course_id}/updates:
|
|
get:
|
|
operationId: mobile_course_info_updates_list
|
|
summary: '**Use Case**'
|
|
description: "Get the content for course updates.\n\n**Example Request**\n\n\
|
|
\ GET /api/mobile/v0.5/course_info/{course_id}/updates\n\n**Response Values**\n\
|
|
\n If the request is successful, the request returns an HTTP 200 \"OK\"\
|
|
\n response along with an array of course updates. Each course update\n\
|
|
\ contains the following values.\n\n * content: The content, as\
|
|
\ an HTML string, of the course update.\n * date: The date of the course\
|
|
\ update.\n * id: The unique identifier of the update.\n * status:\
|
|
\ Whether the update is visible or not."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/mobile/{api_version}/my_user_info:
|
|
get:
|
|
operationId: mobile_my_user_info_list
|
|
description: Redirect to the currently-logged-in user's info page
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/mobile/{api_version}/users/{username}:
|
|
get:
|
|
operationId: mobile_users_read
|
|
summary: '**Use Case**'
|
|
description: "Get information about the specified user and access other resources\n\
|
|
\ the user has permissions for.\n\n Users are redirected to this endpoint\
|
|
\ after they sign in.\n\n You can use the **course_enrollments** value\
|
|
\ in the response to get a\n list of courses the user is enrolled in.\n\
|
|
\n**Example Request**\n\n GET /api/mobile/{version}/users/{username}\n\n\
|
|
**Response Values**\n\n If the request is successful, the request returns\
|
|
\ an HTTP 200 \"OK\" response.\n\n The HTTP 200 response has the following\
|
|
\ values.\n\n * course_enrollments: The URI to list the courses the currently\
|
|
\ signed\n in user is enrolled in.\n * email: The email address of\
|
|
\ the currently signed in user.\n * id: The ID of the user.\n * name:\
|
|
\ The full name of the currently signed in user.\n * username: The username\
|
|
\ of the currently signed in user."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/mobile_api.User'
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
|
only.
|
|
required: true
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
/mobile/{api_version}/users/{username}/course_enrollments/:
|
|
get:
|
|
operationId: mobile_users_course_enrollments_list
|
|
summary: '**Use Case**'
|
|
description: "Get information about the courses that the currently signed in\
|
|
\ user is\n enrolled in.\n\n v1 differs from v0.5 version by returning\
|
|
\ ALL enrollments for\n a user rather than only the enrollments the user\
|
|
\ has access to (that haven't expired).\n An additional attribute \"expiration\"\
|
|
\ has been added to the response, which lists the date\n when access to\
|
|
\ the course will expire or null if it doesn't expire.\n\n**Example Request**\n\
|
|
\n GET /api/mobile/v1/users/{username}/course_enrollments/\n\n**Response\
|
|
\ Values**\n\n If the request for information about the user is successful,\
|
|
\ the\n request returns an HTTP 200 \"OK\" response.\n\n The HTTP 200\
|
|
\ response has the following values.\n\n * expiration: The course expiration\
|
|
\ date for given user course pair\n or null if the course does not expire.\n\
|
|
\ * certificate: Information about the user's earned certificate in the\n\
|
|
\ course.\n * course: A collection of the following data about the\
|
|
\ course.\n\n * courseware_access: A JSON representation with access information\
|
|
\ for the course,\n including any access errors.\n\n * course_about:\
|
|
\ The URL to the course about page.\n * course_sharing_utm_parameters:\
|
|
\ Encoded UTM parameters to be included in course sharing url\n * course_handouts:\
|
|
\ The URI to get data for course handouts.\n * course_image: The path\
|
|
\ to the course image.\n * course_updates: The URI to get data for course\
|
|
\ updates.\n * discussion_url: The URI to access data for course discussions\
|
|
\ if\n it is enabled, otherwise null.\n * end: The end date of\
|
|
\ the course.\n * id: The unique ID of the course.\n * name: The\
|
|
\ name of the course.\n * number: The course number.\n * org: The\
|
|
\ organization that created the course.\n * start: The date and time\
|
|
\ when the course starts.\n * start_display:\n If start_type is\
|
|
\ a string, then the advertised_start date for the course.\n If start_type\
|
|
\ is a timestamp, then a formatted date for the start of the course.\n \
|
|
\ If start_type is empty, then the value is None and it indicates that\
|
|
\ the course has not yet started.\n * start_type: One of either \"string\"\
|
|
, \"timestamp\", or \"empty\"\n * subscription_id: A unique \"clean\"\
|
|
\ (alphanumeric with '_') ID of\n the course.\n * video_outline:\
|
|
\ The URI to get the list of all videos that the user\n can access\
|
|
\ in the course.\n\n * created: The date the course was created.\n *\
|
|
\ is_active: Whether the course is currently active. Possible values\n \
|
|
\ are true or false.\n * mode: The type of certificate registration for\
|
|
\ this course (honor or\n certified).\n * url: URL to the downloadable\
|
|
\ version of the certificate, if exists."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseEnrollment'
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
? /mobile/{api_version}/users/{username}/course_status_info/(P{course_id}[/+]+{var}[/+]+api/mobile/{api_version}/users/{username}/course_status_info/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+)
|
|
: get:
|
|
operationId: mobile_users_course_status_info_+]+api_mobile_users_course_status_info_+]+(_|+)[_]+)_list
|
|
description: Get the ID of the module that the specified user last visited in
|
|
the specified course.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- mobile
|
|
patch:
|
|
operationId: mobile_users_course_status_info_+]+api_mobile_users_course_status_info_+]+(_|+)[_]+)_partial_update
|
|
description: Update the ID of the module that the specified user last visited
|
|
in the specified course.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- mobile
|
|
parameters:
|
|
- name: api_version
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/notifier/v1/users/:
|
|
get:
|
|
operationId: notifier_v1_users_list
|
|
description: "An endpoint that the notifier can use to retrieve users who have\
|
|
\ enabled\ndaily forum digests, including all information that the notifier\
|
|
\ needs about\nsuch users."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/NotifierUser'
|
|
tags:
|
|
- notifier
|
|
parameters: []
|
|
/notifier/v1/users/{id}/:
|
|
get:
|
|
operationId: notifier_v1_users_read
|
|
description: "An endpoint that the notifier can use to retrieve users who have\
|
|
\ enabled\ndaily forum digests, including all information that the notifier\
|
|
\ needs about\nsuch users."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/NotifierUser'
|
|
tags:
|
|
- notifier
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: A unique integer value identifying this user.
|
|
required: true
|
|
type: integer
|
|
/organizations/v0/organizations/:
|
|
get:
|
|
operationId: organizations_v0_organizations_list
|
|
description: "Organization view to:\n - fetch list organization data or single\
|
|
\ organization using organization short name.\n - create or update an organization\
|
|
\ via the PUT endpoint."
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Organization'
|
|
tags:
|
|
- organizations
|
|
parameters: []
|
|
/organizations/v0/organizations/{short_name}/:
|
|
get:
|
|
operationId: organizations_v0_organizations_read
|
|
description: "Organization view to:\n - fetch list organization data or single\
|
|
\ organization using organization short name.\n - create or update an organization\
|
|
\ via the PUT endpoint."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Organization'
|
|
tags:
|
|
- organizations
|
|
put:
|
|
operationId: organizations_v0_organizations_update
|
|
description: We perform both Update and Create action via the PUT method.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Organization'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Organization'
|
|
tags:
|
|
- organizations
|
|
patch:
|
|
operationId: organizations_v0_organizations_partial_update
|
|
description: We disable PATCH because all updates and creates should use the
|
|
PUT action above.
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Organization'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Organization'
|
|
tags:
|
|
- organizations
|
|
parameters:
|
|
- name: short_name
|
|
in: path
|
|
description: Please do not use spaces or special characters. Only allowed
|
|
special characters are period (.), hyphen (-) and underscore (_).
|
|
required: true
|
|
type: string
|
|
/profile_images/v1/{username}/remove:
|
|
post:
|
|
operationId: profile_images_v1_remove_create
|
|
description: POST /api/profile_images/v1/{username}/remove
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- profile_images
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/profile_images/v1/{username}/upload:
|
|
post:
|
|
operationId: profile_images_v1_upload_create
|
|
description: POST /api/profile_images/v1/{username}/upload
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
consumes:
|
|
- multipart/form-data
|
|
- application/x-www-form-urlencoded
|
|
tags:
|
|
- profile_images
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/program_enrollments/v1/integration-reset:
|
|
post:
|
|
operationId: program_enrollments_v1_integration-reset_create
|
|
description: Reset enrollment and user data for organization
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters: []
|
|
/program_enrollments/v1/programs/enrollments/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_enrollments_list
|
|
description: How to respond to a GET request to this endpoint
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters: []
|
|
/program_enrollments/v1/programs/readonly_access/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_readonly_access_list
|
|
description: How to respond to a GET request to this endpoint
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters: []
|
|
/program_enrollments/v1/programs/{program_uuid}/courses/{course_id}/enrollments/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_courses_enrollments_list
|
|
description: Get a list of students enrolled in a course within a program.
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
post:
|
|
operationId: program_enrollments_v1_programs_courses_enrollments_create
|
|
description: Enroll a list of students in a course in a program
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
put:
|
|
operationId: program_enrollments_v1_programs_courses_enrollments_update
|
|
description: Create or Update the program course enrollments of a list of learners
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
patch:
|
|
operationId: program_enrollments_v1_programs_courses_enrollments_partial_update
|
|
description: Modify the program course enrollments of a list of learners
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: program_uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/program_enrollments/v1/programs/{program_uuid}/courses/{course_id}/grades/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_courses_grades_list
|
|
description: Defines the GET list endpoint for ProgramCourseGrade objects.
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: program_uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/program_enrollments/v1/programs/{program_uuid}/enrollments/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_enrollments_list
|
|
description: Defines the GET list endpoint for ProgramEnrollment objects.
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
post:
|
|
operationId: program_enrollments_v1_programs_enrollments_create
|
|
description: Create program enrollments for a list of learners
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
put:
|
|
operationId: program_enrollments_v1_programs_enrollments_update
|
|
description: Create/update program enrollments for a list of learners
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
patch:
|
|
operationId: program_enrollments_v1_programs_enrollments_partial_update
|
|
description: Update program enrollments for a list of learners
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- program_enrollments
|
|
parameters:
|
|
- name: program_uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/program_enrollments/v1/programs/{program_uuid}/overview/:
|
|
get:
|
|
operationId: program_enrollments_v1_programs_overview_read
|
|
description: "A view for getting data associated with a user's course enrollments\n\
|
|
as part of a program enrollment."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/CourseRunOverviewList'
|
|
tags:
|
|
- program_enrollments
|
|
parameters:
|
|
- name: program_uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/program_enrollments/v1/users/{username}/programs/{program_uuid}/courses:
|
|
get:
|
|
operationId: program_enrollments_v1_users_programs_courses_list
|
|
summary: Get an overview of each of a user's course enrollments associated with
|
|
a program.
|
|
description: "This endpoint exists to get an overview of each course-run enrollment\n\
|
|
that a user has for course-runs within a given program.\nFields included are\
|
|
\ the title, upcoming due dates, etc.\nThis API endpoint is intended for use\
|
|
\ with the\n[Program Learner Portal MFE](https://github.com/edx/frontend-app-learner-portal-programs).\n\
|
|
\nIt is important to note that the set of enrollments that this endpoint returns\n\
|
|
is different than a user's set of *program-course-run enrollments*.\nSpecifically,\
|
|
\ this endpoint may include course runs that are *within*\nthe specified program\
|
|
\ but were not *enrolled in* via the specified program.\n\n**Example Response:**\n\
|
|
```json\n{\n \"next\": null,\n \"previous\": null,\n \"results\"\
|
|
: [\n {\n \"course_run_id\": \"edX+AnimalsX+Aardvarks\"\
|
|
,\n \"display_name\": \"Astonishing Aardvarks\",\n \"\
|
|
course_run_url\": \"https://courses.edx.org/courses/course-v1:edX+AnimalsX+Aardvarks/course/\"\
|
|
,\n \"start_date\": \"2017-02-05T05:00:00Z\",\n \"end_date\"\
|
|
: \"2018-02-05T05:00:00Z\",\n \"course_run_status\": \"completed\"\
|
|
\n \"emails_enabled\": true,\n \"due_dates\": [\n \
|
|
\ {\n \"name\": \"Introduction: What even\
|
|
\ is an aardvark?\",\n \"url\": \"https://courses.edx.org/courses/course-v1:edX+AnimalsX+Aardvarks/jump_to/\n\
|
|
\ block-v1:edX+AnimalsX+Aardvarks+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\"\
|
|
,\n \"date\": \"2017-05-01T05:00:00Z\"\n \
|
|
\ },\n {\n \"name\": \"Quiz: Aardvark or\
|
|
\ Anteater?\",\n \"url\": \"https://courses.edx.org/courses/course-v1:edX+AnimalsX+Aardvarks/jump_to/\n\
|
|
\ block-v1:edX+AnimalsX+Aardvarks+type@sequential+block@edx_introduction\"\
|
|
,\n \"date\": \"2017-03-05T00:00:00Z\"\n \
|
|
\ }\n ],\n \"micromasters_title\": \"Animals\",\n \
|
|
\ \"certificate_download_url\": \"https://courses.edx.org/certificates/123\"\
|
|
\n },\n {\n \"course_run_id\": \"edX+AnimalsX+Baboons\"\
|
|
,\n \"display_name\": \"Breathtaking Baboons\",\n \"\
|
|
course_run_url\": \"https://courses.edx.org/courses/course-v1:edX+AnimalsX+Baboons/course/\"\
|
|
,\n \"start_date\": \"2018-02-05T05:00:00Z\",\n \"end_date\"\
|
|
: null,\n \"course_run_status\": \"in_progress\"\n \"\
|
|
emails_enabled\": false,\n \"due_dates\": [],\n \"micromasters_title\"\
|
|
: \"Animals\",\n \"certificate_download_url\": \"https://courses.edx.org/certificates/123\"\
|
|
,\n \"resume_course_run_url\": \"https://courses.edx.org/courses/course-v1:edX+AnimalsX+Baboons/jump_to/\n\
|
|
\ block-v1:edX+AnimalsX+Baboons+type@sequential+block@edx_introduction\"\
|
|
\n }\n ]\n}\n```"
|
|
parameters:
|
|
- name: cursor
|
|
in: query
|
|
description: The pagination cursor value.
|
|
required: false
|
|
type: string
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page. Defaults to 10. Maximum
|
|
is 25.
|
|
type: integer
|
|
- name: username
|
|
in: path
|
|
description: The username of the user for which enrollment overviews will
|
|
be fetched. For now, this must be the requesting user; otherwise, 403
|
|
will be returned. In the future, global staff users may be able to supply
|
|
other usernames.
|
|
type: string
|
|
required: true
|
|
- name: program_uuid
|
|
in: path
|
|
description: UUID of a program. Enrollments will be returned for course
|
|
runs in this program.
|
|
type: string
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/PageOfCourseRunOverview'
|
|
'401':
|
|
description: The requester is not authenticated.
|
|
'403':
|
|
description: The requester cannot access the specified program and/or the
|
|
requester may not retrieve this data for the specified user.
|
|
'404':
|
|
description: The requested program does not exist.
|
|
tags:
|
|
- program_enrollments
|
|
parameters:
|
|
- name: program_uuid
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/team/v0/bulk_team_membership/{course_id}:
|
|
get:
|
|
operationId: team_v0_bulk_team_membership_read
|
|
description: Download CSV with team membership data for given course run.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
post:
|
|
operationId: team_v0_bulk_team_membership_create
|
|
description: Process uploaded CSV to modify team memberships for given course
|
|
run.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/team/v0/team_membership/:
|
|
get:
|
|
operationId: team_v0_team_membership_list
|
|
description: GET /api/team/v0/team_membership
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
post:
|
|
operationId: team_v0_team_membership_create
|
|
description: POST /api/team/v0/team_membership
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters: []
|
|
/team/v0/team_membership/{team_id},{username}:
|
|
get:
|
|
operationId: team_v0_team_membership_read
|
|
description: GET /api/team/v0/team_membership/{team_id},{username}
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
delete:
|
|
operationId: team_v0_team_membership_delete
|
|
description: DELETE /api/team/v0/team_membership/{team_id},{username}
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters:
|
|
- name: team_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/team/v0/teams/:
|
|
get:
|
|
operationId: team_v0_teams_list
|
|
description: GET /api/team/v0/teams/
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
post:
|
|
operationId: team_v0_teams_create
|
|
description: POST /api/team/v0/teams/
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters: []
|
|
/team/v0/teams/{team_id}:
|
|
get:
|
|
operationId: team_v0_teams_read
|
|
description: Retrieves the specified resource using the RetrieveModelMixin.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- team
|
|
patch:
|
|
operationId: team_v0_teams_partial_update
|
|
description: Checks for validation errors, then updates the model using the
|
|
UpdateModelMixin.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- team
|
|
delete:
|
|
operationId: team_v0_teams_delete
|
|
description: DELETE /api/team/v0/teams/{team_id}
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- team
|
|
parameters:
|
|
- name: team_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/team/v0/topics/:
|
|
get:
|
|
operationId: team_v0_topics_list
|
|
description: GET /api/team/v0/topics/?course_id={course_id}
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters: []
|
|
/team/v0/topics/{topic_id},{course_id}:
|
|
get:
|
|
operationId: team_v0_topics_read
|
|
description: GET /api/team/v0/topics/{topic_id},{course_id}/
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- team
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: topic_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/third_party_auth/v0/providers/user_status:
|
|
get:
|
|
operationId: third_party_auth_v0_providers_user_status_list
|
|
summary: GET /api/third_party_auth/v0/providers/user_status/
|
|
description: "**GET Response Values**\n```\n{\n \"accepts_logins\": true,\n\
|
|
\ \"name\": \"Google\",\n \"disconnect_url\": \"/auth/disconnect/google-oauth2/?\"\
|
|
,\n \"connect_url\": \"/auth/login/google-oauth2/?auth_entry=account_settings&next=%2Faccount%2Fsettings\"\
|
|
,\n \"connected\": false,\n \"id\": \"oa2-google-oauth2\"\n}\n```"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- third_party_auth
|
|
parameters: []
|
|
/third_party_auth/v0/providers/{provider_id}{var}/users:
|
|
get:
|
|
operationId: third_party_auth_v0_providers_users_list
|
|
summary: Map between the third party auth account IDs (remote_id) and EdX username.
|
|
description: "This API is intended to be a server-to-server endpoint. An on-campus\
|
|
\ middleware or system should consume this.\n\n**Use Case**\n\n Get a paginated\
|
|
\ list of mappings between edX users and remote user IDs for all users currently\n\
|
|
\ linked to the given backend.\n\n The list can be filtered by edx username\
|
|
\ or third party ids. The filter is limited by the max length of URL.\n \
|
|
\ It is suggested to query no more than 50 usernames or remote_ids in each\
|
|
\ request to stay within above\n limitation\n\n The page size can be\
|
|
\ changed by specifying `page_size` parameter in the request.\n\n**Example\
|
|
\ Requests**\n\n GET /api/third_party_auth/v0/providers/{provider_id}/users\n\
|
|
\n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1},{username2}\n\
|
|
\n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1}&usernames={username2}\n\
|
|
\n GET /api/third_party_auth/v0/providers/{provider_id}/users?remote_id={remote_id1},{remote_id2}\n\
|
|
\n GET /api/third_party_auth/v0/providers/{provider_id}/users?remote_id={remote_id1}&remote_id={remote_id2}\n\
|
|
\n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1}&remote_id={remote_id1}\n\
|
|
\n**URL Parameters**\n\n * provider_id: The unique identifier of third_party_auth\
|
|
\ provider (e.g. \"saml-ubc\", \"oa2-google\", etc.\n This is not the\
|
|
\ same thing as the backend_name.). (Optional/future: We may also want to\
|
|
\ allow\n this to be an 'external domain' like 'ssl:MIT' so that this\
|
|
\ API can also search the legacy\n ExternalAuthMap table used by Standford/MIT)\n\
|
|
\n**Query Parameters**\n\n * remote_ids: Optional. List of comma separated\
|
|
\ remote (third party) user IDs to filter the result set.\n e.g. ?remote_ids=8721384623\n\
|
|
\n * usernames: Optional. List of comma separated edX usernames to filter\
|
|
\ the result set.\n e.g. ?usernames=bob123,jane456\n\n * page, page_size:\
|
|
\ Optional. Used for paging the result set, especially when getting\n \
|
|
\ an unfiltered list.\n\n**Response Values**\n\n If the request for information\
|
|
\ about the user is successful, an HTTP 200 \"OK\" response\n is returned.\n\
|
|
\n The HTTP 200 response has the following values:\n\n * count: The\
|
|
\ number of mappings for the backend.\n\n * next: The URI to the next page\
|
|
\ of the mappings.\n\n * previous: The URI to the previous page of the\
|
|
\ mappings.\n\n * num_pages: The number of pages listing the mappings.\n\
|
|
\n * results: A list of mappings returned. Each collection in the list\n\
|
|
\ contains these fields.\n\n * username: The edx username\n\n\
|
|
\ * remote_id: The Id from third party auth provider"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/UserMapping'
|
|
tags:
|
|
- third_party_auth
|
|
parameters:
|
|
- name: provider_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: var
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/third_party_auth/v0/users/:
|
|
get:
|
|
operationId: third_party_auth_v0_users_list
|
|
summary: Read provider information for a user.
|
|
description: Allows reading the list of providers for a specified user.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- third_party_auth
|
|
parameters: []
|
|
/third_party_auth/v0/users/{username}:
|
|
get:
|
|
operationId: third_party_auth_v0_users_read
|
|
summary: Read provider information for a user.
|
|
description: Allows reading the list of providers for a specified user.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- third_party_auth
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/accounts:
|
|
get:
|
|
operationId: user_v1_accounts_list
|
|
description: "GET /api/user/v1/accounts?username={username1,username2}\nGET\
|
|
\ /api/user/v1/accounts?email={user_email}"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/deactivate_logout/:
|
|
post:
|
|
operationId: user_v1_accounts_deactivate_logout_create
|
|
summary: POST /api/user/v1/accounts/deactivate_logout/
|
|
description: "Marks the user as having no password set for deactivation purposes,\n\
|
|
and logs the user out."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/replace_usernames/:
|
|
post:
|
|
operationId: user_v1_accounts_replace_usernames_create
|
|
description: "POST /api/user/v1/accounts/replace_usernames/\n```\n{\n \"\
|
|
username_mappings\": [\n {\"current_username_1\": \"desired_username_1\"\
|
|
},\n {\"current_username_2\": \"desired_username_2\"}\n ]\n}\n```\n\
|
|
\n**POST Parameters**\n\nA POST request must include the following parameter.\n\
|
|
\n* username_mappings: Required. A list of objects that map the current username\
|
|
\ (key)\n to the desired username (value)\n\n**POST Response Values**\n\n\
|
|
As long as data validation passes, the request will return a 200 with a new\
|
|
\ mapping\nof old usernames (key) to new username (value)\n\n```\n{\n \"\
|
|
successful_replacements\": [\n {\"old_username_1\": \"new_username_1\"\
|
|
}\n ],\n \"failed_replacements\": [\n {\"old_username_2\": \"\
|
|
new_username_2\"}\n ]\n}\n```"
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retire/:
|
|
post:
|
|
operationId: user_v1_accounts_post
|
|
summary: POST /api/user/v1/accounts/retire/
|
|
description: "```\n{\n 'username': 'user_to_retire'\n}\n```\n\nRetires the\
|
|
\ user with the given username. This includes\nretiring this username, the\
|
|
\ associated email address, and\nany other PII associated with this user."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retire_misc/:
|
|
post:
|
|
operationId: user_v1_accounts_post
|
|
summary: POST /api/user/v1/accounts/retire_misc/
|
|
description: "```\n{\n 'username': 'user_to_retire'\n}\n```\n\nRetires the\
|
|
\ user with the given username in the LMS."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retirement_cleanup/:
|
|
post:
|
|
operationId: user_v1_accounts_cleanup
|
|
summary: POST /api/user/v1/accounts/retirement_cleanup/
|
|
description: "```\n{\n 'usernames': ['user1', 'user2', ...]\n}\n```\n\nDeletes\
|
|
\ a batch of retirement requests by username."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retirement_partner_report/:
|
|
post:
|
|
operationId: user_v1_accounts_retirement_partner_report_create
|
|
summary: POST /api/user/v1/accounts/retirement_partner_report/
|
|
description: "Returns the list of UserRetirementPartnerReportingStatus users\n\
|
|
that are not already being processed and updates their status\nto indicate\
|
|
\ they are currently being processed."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
put:
|
|
operationId: user_v1_accounts_retirement_partner_report_update
|
|
summary: PUT /api/user/v1/accounts/retirement_partner_report/
|
|
description: "```\n{\n 'username': 'user_to_retire'\n}\n```\n\nCreates a\
|
|
\ UserRetirementPartnerReportingStatus object for the given user\nas part\
|
|
\ of the retirement pipeline."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retirement_partner_report_cleanup/:
|
|
post:
|
|
operationId: user_v1_accounts_retirement_partner_cleanup
|
|
summary: POST /api/user/v1/accounts/retirement_partner_report_cleanup/
|
|
description: "[{'original_username': 'user1'}, {'original_username': 'user2'},\
|
|
\ ...]\n\nDeletes UserRetirementPartnerReportingStatus objects for a list\
|
|
\ of users\nthat have been reported on."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retirement_queue/:
|
|
get:
|
|
operationId: user_v1_accounts_retirement_queue
|
|
summary: "GET /api/user/v1/accounts/retirement_queue/\n{'cool_off_days': 7,\
|
|
\ 'states': ['PENDING', 'COMPLETE']}"
|
|
description: "Returns the list of RetirementStatus users in the given states\
|
|
\ that were\ncreated in the retirement queue at least `cool_off_days` ago."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/retirements_by_status_and_date/:
|
|
get:
|
|
operationId: user_v1_accounts_retirements_by_status_and_date
|
|
summary: "GET /api/user/v1/accounts/retirements_by_status_and_date/\n?start_date=2018-09-05&end_date=2018-09-07&state=COMPLETE"
|
|
description: "Returns a list of UserRetirementStatusSerializer serialized\n\
|
|
RetirementStatus rows in the given state that were created in the\nretirement\
|
|
\ queue between the dates given. Date range is inclusive,\nso to get one day\
|
|
\ you would set both dates to that day."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/update_retirement_status/:
|
|
patch:
|
|
operationId: user_v1_accounts_update_retirement_status_partial_update
|
|
summary: PATCH /api/user/v1/accounts/update_retirement_status/
|
|
description: "```\n{\n 'username': 'user_to_retire',\n 'new_state': 'LOCKING_COMPLETE',\n\
|
|
\ 'response': 'User account locked and logged out.'\n}\n```\n\nUpdates\
|
|
\ the RetirementStatus row for the given user to the new\nstatus, and append\
|
|
\ any messages to the message log.\n\nNote that this implementation DOES NOT\
|
|
\ use the \"merge patch\"\nimplementation seen in AccountViewSet. Slumber,\
|
|
\ the project\nwe use to power edx-rest-api-client, does not currently support\n\
|
|
it. The content type for this request is 'application/json'."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/accounts/{username}:
|
|
get:
|
|
operationId: user_v1_accounts_read
|
|
description: GET /api/user/v1/accounts/{username}/
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
patch:
|
|
operationId: user_v1_accounts_partial_update
|
|
summary: PATCH /api/user/v1/accounts/{username}/
|
|
description: Note that this implementation is the "merge patch" implementation
|
|
proposed in
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/accounts/{username}/deactivate/:
|
|
post:
|
|
operationId: user_v1_accounts_deactivate_create
|
|
summary: POST /api/user/v1/accounts/{username}/deactivate/
|
|
description: Marks the user as having no password set for deactivation purposes.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/accounts/{username}/image:
|
|
post:
|
|
operationId: user_v1_accounts_image_create
|
|
description: POST /api/user/v1/accounts/{username}/image
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
consumes:
|
|
- multipart/form-data
|
|
- application/x-www-form-urlencoded
|
|
tags:
|
|
- user
|
|
delete:
|
|
operationId: user_v1_accounts_image_delete
|
|
description: DELETE /api/user/v1/accounts/{username}/image
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
consumes:
|
|
- multipart/form-data
|
|
- application/x-www-form-urlencoded
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/accounts/{username}/retirement_status/:
|
|
get:
|
|
operationId: user_v1_accounts_retirement_status_read
|
|
description: "GET /api/user/v1/accounts/{username}/retirement_status/\nReturns\
|
|
\ the RetirementStatus of a given user, or 404 if that row\ndoesn't exist."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/accounts/{username}/verification_status/:
|
|
get:
|
|
operationId: user_v1_accounts_verification_status_read
|
|
description: IDVerificationStatus detail endpoint.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/me:
|
|
get:
|
|
operationId: user_v1_get
|
|
description: GET /api/user/v1/me
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/user/v1/preferences/{username}:
|
|
get:
|
|
operationId: user_v1_preferences_read
|
|
description: GET /api/user/v1/preferences/{username}/
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
patch:
|
|
operationId: user_v1_preferences_partial_update
|
|
description: PATCH /api/user/v1/preferences/{username}/
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
consumes:
|
|
- application/merge-patch+json
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/preferences/{username}/{preference_key}:
|
|
get:
|
|
operationId: user_v1_preferences_read
|
|
description: GET /api/user/v1/preferences/{username}/{preference_key}
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
put:
|
|
operationId: user_v1_preferences_update
|
|
description: PUT /api/user/v1/preferences/{username}/{preference_key}
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
delete:
|
|
operationId: user_v1_preferences_delete
|
|
description: DELETE /api/user/v1/preferences/{username}/{preference_key}
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: preference_key
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/user/v1/validation/registration:
|
|
post:
|
|
operationId: user_v1_validation_registration_create
|
|
summary: POST /api/user/v1/validation/registration/
|
|
description: "Expects request of the form\n```\n{\n \"name\": \"Dan the Validator\"\
|
|
,\n \"username\": \"mslm\",\n \"email\": \"mslm@gmail.com\",\n \"\
|
|
confirm_email\": \"mslm@gmail.com\",\n \"password\": \"password123\",\n\
|
|
\ \"country\": \"PK\"\n}\n```\nwhere each key is the appropriate form field\
|
|
\ name and the value is\nuser input. One may enter individual inputs if needed.\
|
|
\ Some inputs\ncan get extra verification checks if entered along with others,\n\
|
|
like when the password may not equal the username."
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- user
|
|
parameters: []
|
|
/val/v0/videos/:
|
|
get:
|
|
operationId: val_v0_videos_list
|
|
description: GETs or POST video objects
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: A page number within the paginated result set.
|
|
required: false
|
|
type: integer
|
|
- name: page_size
|
|
in: query
|
|
description: Number of results to return per page.
|
|
required: false
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
required:
|
|
- count
|
|
- results
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: integer
|
|
next:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
previous:
|
|
type: string
|
|
format: uri
|
|
x-nullable: true
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Video'
|
|
tags:
|
|
- val
|
|
post:
|
|
operationId: val_v0_videos_create
|
|
description: GETs or POST video objects
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
tags:
|
|
- val
|
|
parameters: []
|
|
/val/v0/videos/missing-hls/:
|
|
post:
|
|
operationId: val_v0_videos_missing-hls_create
|
|
summary: 'Retrieve video IDs that are missing HLS profiles. This endpoint supports
|
|
2 types of input data:'
|
|
description: "1. If we want a batch of video ids which are missing HLS profile\
|
|
\ irrespective of their courses, the request\n data should be in following\
|
|
\ format:\n {\n 'batch_size': 50,\n 'offset':\
|
|
\ 0\n }\n And response will be in following format:\n {\n\
|
|
\ 'videos': ['video_id1', 'video_id2', 'video_id3', ... , video_id50],\n\
|
|
\ 'total': 300,\n 'offset': 50,\n 'batch_size':\
|
|
\ 50\n }\n\n2. If we want all the videos which are missing HLS profiles\
|
|
\ in a set of specific courses, the request data\n should be in following\
|
|
\ format:\n {\n 'courses': [\n 'course_id1',\n\
|
|
\ 'course_id2',\n ...\n ]\n \
|
|
\ }\n And response will be in following format:\n {\n \
|
|
\ 'videos': ['video_id1', 'video_id2', 'video_id3', ...]\n }"
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
put:
|
|
operationId: val_v0_videos_missing-hls_update
|
|
summary: Update a single profile for a given video.
|
|
description: "Example request data:\n {\n 'edx_video_id': '1234'\n\
|
|
\ 'profile': 'hls',\n 'encode_data': {\n 'url': 'foo.com/qwe.m3u8'\n\
|
|
\ 'file_size': 34\n 'bitrate': 12\n }\n }"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters: []
|
|
/val/v0/videos/status/:
|
|
patch:
|
|
operationId: val_v0_videos_status_partial_update
|
|
description: Update the status of a video.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters: []
|
|
/val/v0/videos/transcript-credentials/{provider}/{org}:
|
|
get:
|
|
operationId: val_v0_videos_transcript-credentials_read
|
|
summary: Retrieves the transcript credentials for a given organization and provider.
|
|
description: "**Example requests**:\n\n GET api/val/v0/videos/transcript-credentials/{provider}/{org}\n\
|
|
\n**GET Parameters**:\n\n The following parameters are required to get\
|
|
\ the credentials:\n\n * provider(str): transcript provider, which\
|
|
\ is either 3PlayMedia or Cielo24.\n\n * org(str): organization whose\
|
|
\ credentials are to be fetch.\n\n**Response Values**\n\n For a successful\
|
|
\ request, the following values are returned along with 200 status:\n\n \
|
|
\ * api_key(str): provider key\n\n * api_secret_key(str): provider\
|
|
\ api secret key(only for 3PlayMedia)\n\n * provider(str): transcript\
|
|
\ provider\n\n * org(str): organization whose credentials are fetched.\n\
|
|
\n For the error, 400 response code is returned with:\n\n * message(str):\
|
|
\ error message"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters:
|
|
- name: org
|
|
in: path
|
|
description: This value must match the value of organization in studio/edx-platform.
|
|
required: true
|
|
type: string
|
|
- name: provider
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/val/v0/videos/transcript-preferences/{course_id}:
|
|
get:
|
|
operationId: val_v0_videos_transcript-preferences_read
|
|
summary: Retrieves the transcript preferences for a given course.
|
|
description: "**Example requests**\n\n GET api/val/v0/videos/transcript-preferences/{course_id}\n\
|
|
\n**Parameters**\n\n * course_id(str): course whose preferences are to\
|
|
\ be fetched\n\n**Response Values**\n\n * course_id(str): course id whose\
|
|
\ preferences are fetched\n\n * provider(str): transcript provider name\n\
|
|
\n * cielo24_fidelity(str/None): Cielo24 fidelity choice\n\n * cielo24_turnaround(str/None):\
|
|
\ Cielo24 turnaround time choice\n\n * three_play_turnaround(str/None):\
|
|
\ 3playMedia turnaround\n\n * preferred_languages(list): list of languages(str\
|
|
\ values)\n\n * video_source_language(str): video language\n\n * modified(datetime):\
|
|
\ last modified date"
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/TranscriptPreference'
|
|
tags:
|
|
- val
|
|
parameters:
|
|
- name: course_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/val/v0/videos/video-images/update/:
|
|
post:
|
|
operationId: val_v0_videos_video-images_update_create
|
|
description: Update a course video image instance with auto generated image
|
|
names.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters: []
|
|
/val/v0/videos/video-transcripts/create/:
|
|
post:
|
|
operationId: val_v0_videos_video-transcripts_create_create
|
|
description: Creates a video transcript instance with the given information.
|
|
parameters: []
|
|
responses:
|
|
'201':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters: []
|
|
/val/v0/videos/{edx_video_id}:
|
|
get:
|
|
operationId: val_v0_videos_read
|
|
description: Gets a video instance given its edx_video_id
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
tags:
|
|
- val
|
|
put:
|
|
operationId: val_v0_videos_update
|
|
description: Gets a video instance given its edx_video_id
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
tags:
|
|
- val
|
|
patch:
|
|
operationId: val_v0_videos_partial_update
|
|
description: Gets a video instance given its edx_video_id
|
|
parameters:
|
|
- name: data
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
schema:
|
|
$ref: '#/definitions/Video'
|
|
tags:
|
|
- val
|
|
delete:
|
|
operationId: val_v0_videos_delete
|
|
description: Gets a video instance given its edx_video_id
|
|
parameters: []
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
tags:
|
|
- val
|
|
parameters:
|
|
- name: edx_video_id
|
|
in: path
|
|
required: true
|
|
type: string
|
|
pattern: ^[a-zA-Z0-9\-_]*$
|
|
/xblock/v2/xblocks/{usage_key_str}/:
|
|
get:
|
|
operationId: xblock_v2_xblocks_read
|
|
summary: Get metadata about the specified block.
|
|
description: "Accepts an \"include\" query parameter which must be a comma separated\
|
|
\ list of keys to include. Valid keys are\n\"index_dictionary\" and \"student_view_data\"\
|
|
."
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- xblock
|
|
parameters:
|
|
- name: usage_key_str
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/xblock/v2/xblocks/{usage_key_str}/handler_url/{handler_name}/:
|
|
get:
|
|
operationId: xblock_v2_xblocks_handler_url_read
|
|
summary: "Get an absolute URL which can be used (without any authentication)\
|
|
\ to call\nthe given XBlock handler."
|
|
description: The URL will expire but is guaranteed to be valid for a minimum
|
|
of 2 days.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- xblock
|
|
parameters:
|
|
- name: handler_name
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: usage_key_str
|
|
in: path
|
|
required: true
|
|
type: string
|
|
/xblock/v2/xblocks/{usage_key_str}/view/{view_name}/:
|
|
get:
|
|
operationId: xblock_v2_xblocks_view_read
|
|
description: Get the HTML, JS, and CSS needed to render the given XBlock.
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
tags:
|
|
- xblock
|
|
parameters:
|
|
- name: usage_key_str
|
|
in: path
|
|
required: true
|
|
type: string
|
|
- name: view_name
|
|
in: path
|
|
required: true
|
|
type: string
|
|
definitions:
|
|
BadgeClass:
|
|
title: Badge class
|
|
required:
|
|
- slug
|
|
- display_name
|
|
- description
|
|
- criteria
|
|
type: object
|
|
properties:
|
|
slug:
|
|
title: Slug
|
|
type: string
|
|
format: slug
|
|
pattern: ^[-a-zA-Z0-9_]+$
|
|
maxLength: 255
|
|
minLength: 1
|
|
issuing_component:
|
|
title: Issuing component
|
|
type: string
|
|
format: slug
|
|
pattern: ^[-a-zA-Z0-9_]+$
|
|
default: ''
|
|
maxLength: 50
|
|
display_name:
|
|
title: Display name
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
course_id:
|
|
title: Course id
|
|
type: string
|
|
maxLength: 255
|
|
description:
|
|
title: Description
|
|
type: string
|
|
minLength: 1
|
|
criteria:
|
|
title: Criteria
|
|
type: string
|
|
minLength: 1
|
|
image_url:
|
|
title: Image url
|
|
type: string
|
|
readOnly: true
|
|
format: uri
|
|
BadgeAssertion:
|
|
required:
|
|
- image_url
|
|
- assertion_url
|
|
type: object
|
|
properties:
|
|
badge_class:
|
|
$ref: '#/definitions/BadgeClass'
|
|
image_url:
|
|
title: Image url
|
|
type: string
|
|
format: uri
|
|
maxLength: 200
|
|
minLength: 1
|
|
assertion_url:
|
|
title: Assertion url
|
|
type: string
|
|
format: uri
|
|
maxLength: 200
|
|
minLength: 1
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
CCXCourse:
|
|
required:
|
|
- master_course_id
|
|
- display_name
|
|
- coach_email
|
|
- start
|
|
- due
|
|
- max_students_allowed
|
|
type: object
|
|
properties:
|
|
ccx_course_id:
|
|
title: Ccx course id
|
|
type: string
|
|
readOnly: true
|
|
master_course_id:
|
|
title: Master course id
|
|
type: string
|
|
minLength: 1
|
|
display_name:
|
|
title: Display name
|
|
type: string
|
|
minLength: 1
|
|
coach_email:
|
|
title: Coach email
|
|
type: string
|
|
format: email
|
|
minLength: 1
|
|
start:
|
|
title: Start
|
|
type: string
|
|
due:
|
|
title: Due
|
|
type: string
|
|
max_students_allowed:
|
|
title: Max students allowed
|
|
type: integer
|
|
course_modules:
|
|
title: Course modules
|
|
type: string
|
|
readOnly: true
|
|
CohortUsersAPI:
|
|
required:
|
|
- username
|
|
type: object
|
|
properties:
|
|
username:
|
|
title: Username
|
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
|
only.
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
maxLength: 150
|
|
minLength: 1
|
|
email:
|
|
title: Email address
|
|
type: string
|
|
format: email
|
|
maxLength: 254
|
|
name:
|
|
title: Name
|
|
type: string
|
|
readOnly: true
|
|
commerce.CourseMode:
|
|
required:
|
|
- name
|
|
- price
|
|
type: object
|
|
properties:
|
|
name:
|
|
title: Name
|
|
type: string
|
|
minLength: 1
|
|
currency:
|
|
title: Currency
|
|
type: string
|
|
maxLength: 8
|
|
minLength: 1
|
|
price:
|
|
title: Price
|
|
type: integer
|
|
sku:
|
|
title: SKU
|
|
description: 'OPTIONAL: This is the SKU (stock keeping unit) of this mode
|
|
in the external ecommerce service. Leave this blank if the course has not
|
|
yet been migrated to the ecommerce service.'
|
|
type: string
|
|
maxLength: 255
|
|
x-nullable: true
|
|
bulk_sku:
|
|
title: Bulk SKU
|
|
description: This is the bulk SKU (stock keeping unit) of this mode in the
|
|
external ecommerce service.
|
|
type: string
|
|
maxLength: 255
|
|
x-nullable: true
|
|
expires:
|
|
title: Expires
|
|
type: string
|
|
format: date-time
|
|
x-nullable: true
|
|
commerce.Course:
|
|
required:
|
|
- id
|
|
- modes
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
minLength: 1
|
|
name:
|
|
title: Name
|
|
type: string
|
|
readOnly: true
|
|
minLength: 1
|
|
verification_deadline:
|
|
title: Verification deadline
|
|
type: string
|
|
format: date-time
|
|
x-nullable: true
|
|
modes:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/commerce.CourseMode'
|
|
CourseGoal:
|
|
required:
|
|
- user
|
|
- course_key
|
|
type: object
|
|
properties:
|
|
user:
|
|
title: User
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
course_key:
|
|
title: Course key
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
goal_key:
|
|
title: Goal key
|
|
type: string
|
|
enum:
|
|
- certify
|
|
- complete
|
|
- explore
|
|
- unsure
|
|
course_modes.CourseMode:
|
|
required:
|
|
- course_id
|
|
- mode_slug
|
|
- mode_display_name
|
|
- currency
|
|
type: object
|
|
properties:
|
|
course_id:
|
|
title: Course id
|
|
type: string
|
|
minLength: 1
|
|
mode_slug:
|
|
title: Mode slug
|
|
type: string
|
|
minLength: 1
|
|
mode_display_name:
|
|
title: Mode display name
|
|
type: string
|
|
minLength: 1
|
|
min_price:
|
|
title: Min price
|
|
type: integer
|
|
currency:
|
|
title: Currency
|
|
type: string
|
|
minLength: 1
|
|
expiration_datetime:
|
|
title: Expiration datetime
|
|
type: string
|
|
format: date-time
|
|
expiration_datetime_is_explicit:
|
|
title: Expiration datetime is explicit
|
|
type: boolean
|
|
description:
|
|
title: Description
|
|
type: string
|
|
minLength: 1
|
|
sku:
|
|
title: Sku
|
|
type: string
|
|
minLength: 1
|
|
bulk_sku:
|
|
title: Bulk sku
|
|
type: string
|
|
minLength: 1
|
|
_Media:
|
|
title: Course image
|
|
type: object
|
|
properties:
|
|
uri:
|
|
title: Uri
|
|
type: string
|
|
readOnly: true
|
|
Image:
|
|
title: Image
|
|
required:
|
|
- raw
|
|
- small
|
|
- large
|
|
type: object
|
|
properties:
|
|
raw:
|
|
title: Raw
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
small:
|
|
title: Small
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
large:
|
|
title: Large
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
_CourseApiMediaCollection:
|
|
title: Media
|
|
required:
|
|
- course_image
|
|
- course_video
|
|
- image
|
|
type: object
|
|
properties:
|
|
course_image:
|
|
$ref: '#/definitions/_Media'
|
|
course_video:
|
|
$ref: '#/definitions/_Media'
|
|
image:
|
|
$ref: '#/definitions/Image'
|
|
Course:
|
|
required:
|
|
- effort
|
|
- end
|
|
- enrollment_start
|
|
- enrollment_end
|
|
- id
|
|
- media
|
|
- name
|
|
- number
|
|
- org
|
|
- short_description
|
|
- start
|
|
- start_display
|
|
- start_type
|
|
- pacing
|
|
- mobile_available
|
|
- invitation_only
|
|
type: object
|
|
properties:
|
|
blocks_url:
|
|
title: Blocks url
|
|
type: string
|
|
readOnly: true
|
|
effort:
|
|
title: Effort
|
|
type: string
|
|
minLength: 1
|
|
end:
|
|
title: End
|
|
type: string
|
|
format: date-time
|
|
enrollment_start:
|
|
title: Enrollment start
|
|
type: string
|
|
format: date-time
|
|
enrollment_end:
|
|
title: Enrollment end
|
|
type: string
|
|
format: date-time
|
|
id:
|
|
title: Id
|
|
type: string
|
|
minLength: 1
|
|
media:
|
|
$ref: '#/definitions/_CourseApiMediaCollection'
|
|
name:
|
|
title: Name
|
|
type: string
|
|
minLength: 1
|
|
number:
|
|
title: Number
|
|
type: string
|
|
minLength: 1
|
|
org:
|
|
title: Org
|
|
type: string
|
|
minLength: 1
|
|
short_description:
|
|
title: Short description
|
|
type: string
|
|
minLength: 1
|
|
start:
|
|
title: Start
|
|
type: string
|
|
format: date-time
|
|
start_display:
|
|
title: Start display
|
|
type: string
|
|
minLength: 1
|
|
start_type:
|
|
title: Start type
|
|
type: string
|
|
minLength: 1
|
|
pacing:
|
|
title: Pacing
|
|
type: string
|
|
minLength: 1
|
|
mobile_available:
|
|
title: Mobile available
|
|
type: boolean
|
|
hidden:
|
|
title: Hidden
|
|
type: string
|
|
readOnly: true
|
|
invitation_only:
|
|
title: Invitation only
|
|
type: boolean
|
|
course_id:
|
|
title: Course id
|
|
type: string
|
|
readOnly: true
|
|
minLength: 1
|
|
CourseDetail:
|
|
required:
|
|
- effort
|
|
- end
|
|
- enrollment_start
|
|
- enrollment_end
|
|
- id
|
|
- media
|
|
- name
|
|
- number
|
|
- org
|
|
- short_description
|
|
- start
|
|
- start_display
|
|
- start_type
|
|
- pacing
|
|
- mobile_available
|
|
- invitation_only
|
|
type: object
|
|
properties:
|
|
blocks_url:
|
|
title: Blocks url
|
|
type: string
|
|
readOnly: true
|
|
effort:
|
|
title: Effort
|
|
type: string
|
|
minLength: 1
|
|
end:
|
|
title: End
|
|
type: string
|
|
format: date-time
|
|
enrollment_start:
|
|
title: Enrollment start
|
|
type: string
|
|
format: date-time
|
|
enrollment_end:
|
|
title: Enrollment end
|
|
type: string
|
|
format: date-time
|
|
id:
|
|
title: Id
|
|
type: string
|
|
minLength: 1
|
|
media:
|
|
$ref: '#/definitions/_CourseApiMediaCollection'
|
|
name:
|
|
title: Name
|
|
type: string
|
|
minLength: 1
|
|
number:
|
|
title: Number
|
|
type: string
|
|
minLength: 1
|
|
org:
|
|
title: Org
|
|
type: string
|
|
minLength: 1
|
|
short_description:
|
|
title: Short description
|
|
type: string
|
|
minLength: 1
|
|
start:
|
|
title: Start
|
|
type: string
|
|
format: date-time
|
|
start_display:
|
|
title: Start display
|
|
type: string
|
|
minLength: 1
|
|
start_type:
|
|
title: Start type
|
|
type: string
|
|
minLength: 1
|
|
pacing:
|
|
title: Pacing
|
|
type: string
|
|
minLength: 1
|
|
mobile_available:
|
|
title: Mobile available
|
|
type: boolean
|
|
hidden:
|
|
title: Hidden
|
|
type: string
|
|
readOnly: true
|
|
invitation_only:
|
|
title: Invitation only
|
|
type: boolean
|
|
course_id:
|
|
title: Course id
|
|
type: string
|
|
readOnly: true
|
|
minLength: 1
|
|
overview:
|
|
title: Overview
|
|
type: string
|
|
readOnly: true
|
|
CreditCourse:
|
|
required:
|
|
- course_key
|
|
type: object
|
|
properties:
|
|
course_key:
|
|
title: Course key
|
|
type: string
|
|
enabled:
|
|
title: Enabled
|
|
type: boolean
|
|
CreditEligibility:
|
|
required:
|
|
- username
|
|
type: object
|
|
properties:
|
|
username:
|
|
title: Username
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
course_key:
|
|
title: Course key
|
|
type: string
|
|
readOnly: true
|
|
deadline:
|
|
title: Deadline
|
|
description: Deadline for purchasing and requesting credit.
|
|
type: string
|
|
format: date-time
|
|
CreditProvider:
|
|
required:
|
|
- id
|
|
- display_name
|
|
- url
|
|
- status_url
|
|
- description
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
minLength: 1
|
|
display_name:
|
|
title: Display name
|
|
description: Name of the credit provider displayed to users
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
url:
|
|
title: Url
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
status_url:
|
|
title: Status url
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
description:
|
|
title: Description
|
|
type: string
|
|
minLength: 1
|
|
enable_integration:
|
|
title: Enable integration
|
|
description: When true, automatically notify the credit provider when a user
|
|
requests credit. In order for this to work, a shared secret key MUST be
|
|
configured for the credit provider in secure auth settings.
|
|
type: boolean
|
|
fulfillment_instructions:
|
|
title: Fulfillment instructions
|
|
description: Plain text or html content for displaying further steps on receipt
|
|
page *after* paying for the credit to get credit for a credit course against
|
|
a credit provider.
|
|
type: string
|
|
x-nullable: true
|
|
thumbnail_url:
|
|
title: Thumbnail url
|
|
description: Thumbnail image url of the credit provider.
|
|
type: string
|
|
format: uri
|
|
maxLength: 255
|
|
minLength: 1
|
|
CourseEnrollmentsApiList:
|
|
required:
|
|
- course_id
|
|
type: object
|
|
properties:
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
mode:
|
|
title: Mode
|
|
type: string
|
|
maxLength: 100
|
|
minLength: 1
|
|
is_active:
|
|
title: Is active
|
|
type: boolean
|
|
user:
|
|
title: User
|
|
type: string
|
|
readOnly: true
|
|
course_id:
|
|
title: Course id
|
|
type: string
|
|
minLength: 1
|
|
CourseEntitlement:
|
|
required:
|
|
- user
|
|
- course_uuid
|
|
- mode
|
|
type: object
|
|
properties:
|
|
user:
|
|
title: User
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
uuid:
|
|
title: Uuid
|
|
type: string
|
|
format: uuid
|
|
readOnly: true
|
|
course_uuid:
|
|
title: Course uuid
|
|
description: UUID for the Course, not the Course Run
|
|
type: string
|
|
format: uuid
|
|
enrollment_course_run:
|
|
title: Enrollment course run
|
|
type: string
|
|
readOnly: true
|
|
minLength: 1
|
|
expired_at:
|
|
title: Expired at
|
|
description: The date that an entitlement expired, if NULL the entitlement
|
|
has not expired.
|
|
type: string
|
|
format: date-time
|
|
x-nullable: true
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
mode:
|
|
title: Mode
|
|
description: The mode of the Course that will be applied on enroll.
|
|
type: string
|
|
maxLength: 100
|
|
minLength: 1
|
|
refund_locked:
|
|
title: Refund locked
|
|
type: boolean
|
|
order_number:
|
|
title: Order number
|
|
type: string
|
|
maxLength: 128
|
|
minLength: 1
|
|
x-nullable: true
|
|
support_details:
|
|
title: Support details
|
|
type: string
|
|
readOnly: true
|
|
ExperimentData:
|
|
required:
|
|
- experiment_id
|
|
- key
|
|
- value
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
experiment_id:
|
|
title: Experiment ID
|
|
type: integer
|
|
maximum: 65535
|
|
minimum: 0
|
|
user:
|
|
title: User
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
readOnly: true
|
|
key:
|
|
title: Key
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
value:
|
|
title: Value
|
|
type: string
|
|
minLength: 1
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
ExperimentDataCreate:
|
|
required:
|
|
- experiment_id
|
|
- key
|
|
- value
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
experiment_id:
|
|
title: Experiment ID
|
|
type: integer
|
|
maximum: 65535
|
|
minimum: 0
|
|
user:
|
|
title: User
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
key:
|
|
title: Key
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
value:
|
|
title: Value
|
|
type: string
|
|
minLength: 1
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
ExperimentKeyValue:
|
|
required:
|
|
- experiment_id
|
|
- key
|
|
- value
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
experiment_id:
|
|
title: Experiment ID
|
|
type: integer
|
|
maximum: 65535
|
|
minimum: 0
|
|
key:
|
|
title: Key
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
value:
|
|
title: Value
|
|
type: string
|
|
minLength: 1
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
mobile_api.User:
|
|
required:
|
|
- username
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
username:
|
|
title: Username
|
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
|
only.
|
|
type: string
|
|
pattern: ^[\w.@+-]+$
|
|
maxLength: 150
|
|
minLength: 1
|
|
email:
|
|
title: Email address
|
|
type: string
|
|
format: email
|
|
maxLength: 254
|
|
name:
|
|
title: Name
|
|
type: string
|
|
readOnly: true
|
|
course_enrollments:
|
|
title: Course enrollments
|
|
type: string
|
|
readOnly: true
|
|
CourseEnrollment:
|
|
type: object
|
|
properties:
|
|
audit_access_expires:
|
|
title: Audit access expires
|
|
type: string
|
|
readOnly: true
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
mode:
|
|
title: Mode
|
|
type: string
|
|
maxLength: 100
|
|
minLength: 1
|
|
is_active:
|
|
title: Is active
|
|
type: boolean
|
|
course:
|
|
title: Course
|
|
type: string
|
|
readOnly: true
|
|
certificate:
|
|
title: Certificate
|
|
type: string
|
|
readOnly: true
|
|
NotifierUser:
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
email:
|
|
title: Email address
|
|
type: string
|
|
format: email
|
|
readOnly: true
|
|
minLength: 1
|
|
name:
|
|
title: Name
|
|
type: string
|
|
readOnly: true
|
|
preferences:
|
|
title: Preferences
|
|
type: string
|
|
readOnly: true
|
|
course_info:
|
|
title: Course info
|
|
type: string
|
|
readOnly: true
|
|
Organization:
|
|
required:
|
|
- name
|
|
- short_name
|
|
type: object
|
|
properties:
|
|
id:
|
|
title: ID
|
|
type: integer
|
|
readOnly: true
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
name:
|
|
title: Name
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
short_name:
|
|
title: Short Name
|
|
description: Please do not use spaces or special characters. Only allowed
|
|
special characters are period (.), hyphen (-) and underscore (_).
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
description:
|
|
title: Description
|
|
type: string
|
|
x-nullable: true
|
|
logo:
|
|
title: Logo
|
|
description: Please add only .PNG files for logo images. This logo will be
|
|
used on certificates.
|
|
type: string
|
|
readOnly: true
|
|
x-nullable: true
|
|
format: uri
|
|
active:
|
|
title: Active
|
|
type: boolean
|
|
logo_url:
|
|
title: Logo url
|
|
type: string
|
|
minLength: 1
|
|
DueDate:
|
|
required:
|
|
- name
|
|
- url
|
|
- date
|
|
type: object
|
|
properties:
|
|
name:
|
|
title: Name
|
|
type: string
|
|
minLength: 1
|
|
url:
|
|
title: Url
|
|
type: string
|
|
minLength: 1
|
|
date:
|
|
title: Date
|
|
type: string
|
|
format: date-time
|
|
CourseRunOverview:
|
|
required:
|
|
- course_run_id
|
|
- display_name
|
|
- course_run_url
|
|
- start_date
|
|
- end_date
|
|
- course_run_status
|
|
- due_dates
|
|
type: object
|
|
properties:
|
|
course_run_id:
|
|
title: Course run id
|
|
description: ID for the course run.
|
|
type: string
|
|
minLength: 1
|
|
display_name:
|
|
title: Display name
|
|
description: Display name of the course run.
|
|
type: string
|
|
minLength: 1
|
|
resume_course_run_url:
|
|
title: Resume course run url
|
|
description: The absolute url that takes the user back to their position in
|
|
the course run; if absent, user has not made progress in the course.
|
|
type: string
|
|
minLength: 1
|
|
course_run_url:
|
|
title: Course run url
|
|
description: The absolute url for the course run.
|
|
type: string
|
|
minLength: 1
|
|
start_date:
|
|
title: Start date
|
|
description: Start date for the course run; null if no start date.
|
|
type: string
|
|
format: date-time
|
|
end_date:
|
|
title: End date
|
|
description: End date for the course run; null if no end date.
|
|
type: string
|
|
format: date-time
|
|
course_run_status:
|
|
title: Course run status
|
|
description: The user's status of the course run.
|
|
type: string
|
|
enum:
|
|
- in_progress
|
|
- upcoming
|
|
- completed
|
|
emails_enabled:
|
|
title: Emails enabled
|
|
description: Boolean representing whether emails are enabled for the course;if
|
|
absent, the bulk email feature is either not enable at the platformlevel
|
|
or is not enabled for the course; if True or False, bulk emailfeature is
|
|
enabled, and value represents whether or not user wantsto receive emails.
|
|
type: boolean
|
|
due_dates:
|
|
description: List of subsection due dates for the course run. Due dates are
|
|
only returned if the course run is in progress.
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/DueDate'
|
|
micromasters_title:
|
|
title: Micromasters title
|
|
description: Title of the MicroMasters program that the course run is a part
|
|
of; if absent, the course run is not a part of a MicroMasters program.
|
|
type: string
|
|
minLength: 1
|
|
certificate_download_url:
|
|
title: Certificate download url
|
|
description: URL to download a certificate, if available; if absent, certificate
|
|
is not downloadable.
|
|
type: string
|
|
minLength: 1
|
|
CourseRunOverviewList:
|
|
required:
|
|
- course_runs
|
|
type: object
|
|
properties:
|
|
course_runs:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseRunOverview'
|
|
PageOfCourseRunOverview:
|
|
required:
|
|
- results
|
|
type: object
|
|
properties:
|
|
previous:
|
|
title: Previous
|
|
description: Link to the previous page or results, or null if this is the
|
|
first.
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
next:
|
|
title: Next
|
|
description: Link to the next page of results, or null if this is the last.
|
|
type: string
|
|
format: uri
|
|
minLength: 1
|
|
results:
|
|
description: The list of result objects on this page.
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/CourseRunOverview'
|
|
UserMapping:
|
|
type: object
|
|
properties:
|
|
username:
|
|
title: Username
|
|
type: string
|
|
readOnly: true
|
|
remote_id:
|
|
title: Remote id
|
|
type: string
|
|
readOnly: true
|
|
EncodedVideo:
|
|
required:
|
|
- url
|
|
- file_size
|
|
- bitrate
|
|
- profile
|
|
type: object
|
|
properties:
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
url:
|
|
title: Url
|
|
type: string
|
|
maxLength: 200
|
|
minLength: 1
|
|
file_size:
|
|
title: File size
|
|
type: integer
|
|
minimum: 0
|
|
bitrate:
|
|
title: Bitrate
|
|
type: integer
|
|
minimum: 0
|
|
profile:
|
|
title: Profile
|
|
type: string
|
|
pattern: ^[a-zA-Z0-9\-_]*$
|
|
Video:
|
|
required:
|
|
- encoded_videos
|
|
- edx_video_id
|
|
- duration
|
|
- status
|
|
type: object
|
|
properties:
|
|
encoded_videos:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/EncodedVideo'
|
|
courses:
|
|
type: array
|
|
items:
|
|
type: string
|
|
uniqueItems: true
|
|
url:
|
|
title: Url
|
|
type: string
|
|
readOnly: true
|
|
created:
|
|
title: Created
|
|
type: string
|
|
format: date-time
|
|
edx_video_id:
|
|
title: Edx video id
|
|
type: string
|
|
pattern: ^[a-zA-Z0-9\-_]*$
|
|
maxLength: 100
|
|
minLength: 1
|
|
client_video_id:
|
|
title: Client video id
|
|
type: string
|
|
maxLength: 255
|
|
duration:
|
|
title: Duration
|
|
type: number
|
|
minimum: 0
|
|
status:
|
|
title: Status
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
error_description:
|
|
title: Error Description
|
|
type: string
|
|
x-nullable: true
|
|
TranscriptPreference:
|
|
required:
|
|
- course_id
|
|
- provider
|
|
type: object
|
|
properties:
|
|
course_id:
|
|
title: Course ID
|
|
type: string
|
|
maxLength: 255
|
|
minLength: 1
|
|
provider:
|
|
title: Provider
|
|
type: string
|
|
enum:
|
|
- Custom
|
|
- 3PlayMedia
|
|
- Cielo24
|
|
cielo24_fidelity:
|
|
title: Cielo24 Fidelity
|
|
type: string
|
|
enum:
|
|
- MECHANICAL
|
|
- PREMIUM
|
|
- PROFESSIONAL
|
|
x-nullable: true
|
|
cielo24_turnaround:
|
|
title: Cielo24 Turnaround
|
|
type: string
|
|
enum:
|
|
- STANDARD
|
|
- PRIORITY
|
|
x-nullable: true
|
|
three_play_turnaround:
|
|
title: 3PlayMedia Turnaround
|
|
type: string
|
|
enum:
|
|
- extended
|
|
- standard
|
|
- expedited
|
|
- rush
|
|
- same_day
|
|
- two_hour
|
|
x-nullable: true
|
|
preferred_languages:
|
|
title: Preferred languages
|
|
type: string
|
|
readOnly: true
|
|
video_source_language:
|
|
title: Video Source Language
|
|
description: This specifies the speech language of a Video.
|
|
type: string
|
|
maxLength: 50
|
|
x-nullable: true
|
|
modified:
|
|
title: Modified
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|