Merge pull request #25494 from regisb/regisb/fix-swaggerdocs

[BD-21] Fix API docs generation and update swagger.yml
This commit is contained in:
Robert Raposa
2020-11-03 11:40:29 -05:00
committed by GitHub
2 changed files with 1010 additions and 250 deletions

View File

@@ -12,6 +12,7 @@ if os.environ['EDX_PLATFORM_SETTINGS'] == 'devstack_docker':
from cms.envs.devstack_docker import (
ADVANCED_PROBLEM_TYPES,
COURSE_IMPORT_EXPORT_STORAGE,
LIBRARY_AUTHORING_MICROFRONTEND_URL,
SCRAPE_YOUTUBE_THUMBNAILS_JOB_QUEUE,
VIDEO_TRANSCRIPT_MIGRATIONS_JOB_QUEUE,
UPDATE_SEARCH_INDEX_JOB_QUEUE,
@@ -21,6 +22,7 @@ else:
from cms.envs.devstack import (
ADVANCED_PROBLEM_TYPES,
COURSE_IMPORT_EXPORT_STORAGE,
LIBRARY_AUTHORING_MICROFRONTEND_URL,
SCRAPE_YOUTUBE_THUMBNAILS_JOB_QUEUE,
VIDEO_TRANSCRIPT_MIGRATIONS_JOB_QUEUE,
UPDATE_SEARCH_INDEX_JOB_QUEUE,
@@ -37,7 +39,7 @@ FEATURES['RUN_AS_ANALYTICS_SERVER_ENABLED'] = False
INSTALLED_APPS.extend([
'contentstore.apps.ContentstoreConfig',
'course_creators',
'cms.djangoapps.course_creators',
'xblock_config.apps.XBlockConfig',
'user_tasks',
'lms.djangoapps.lti_provider'

View File

@@ -641,12 +641,13 @@ paths:
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\
description: "REST Endpoint Format:\n```\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\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."
\ code is 200.\n```\n{\n \"detail\" : _(\"ok\")\n}\n```\n\nOtherwise, a\
\ 400 or 404 may be returned, and the \"detail\" content will explain the\
\ error."
parameters: []
responses:
'201':
@@ -677,6 +678,49 @@ paths:
in: path
required: true
type: string
? /course_experience/v1/course_deadlines_info/(P{course_key_string}[/+]+{var}[/+]+api/course_experience/v1/course_deadlines_info/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: course_experience_v1_course_deadlines_info_+]+api_course_experience_v1_course_deadlines_info_+]+(_|+)[_]+)_read
summary: '**Use Cases**'
description: "Request course deadline info for mobile\n\n**Example Requests**\n\
\n GET api/course_experience/v1/course_deadlines_info/{course_key}\n\n\
**Response Values**\n\n Body consists of the following fields:\n\n dates_banner_info:\
\ (obj)\n missed_deadlines: (bool) Whether the user has missed any\
\ graded content deadlines for the given course.\n missed_gated_content:\
\ (bool) Whether the user has missed any gated content for the given course.\n\
\ content_type_gating_enabled: (bool) Whether content type gating is\
\ enabled for this enrollment.\n verified_upgrade_link: (str) The URL\
\ to ecommerce IDA for purchasing the verified upgrade.\n\n**Returns**\n\n\
\ * 200 on success with above fields.\n * 401 if the user is not authenticated.\n\
\ * 404 if the course is not available or cannot be seen."
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/CourseDeadlinesMobile'
tags:
- course_experience
parameters:
- name: course_key_string
in: path
required: true
type: string
- name: var
in: path
required: true
type: string
/course_experience/v1/reset_course_deadlines:
post:
operationId: course_experience_v1_reset_course_deadlines_create
description: ''
parameters: []
responses:
'201':
description: ''
tags:
- course_experience
parameters: []
/course_goals/v0/course_goals/:
get:
operationId: course_goals_v0_course_goals_list
@@ -829,6 +873,244 @@ paths:
description: A unique integer value identifying this course goal.
required: true
type: integer
? /course_home/v1/course_metadata/(P{course_key_string}[/+]+{var}[/+]+api/course_home/v1/course_metadata/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: course_home_v1_course_metadata_+]+api_course_home_v1_course_metadata_+]+(_|+)[_]+)_read
summary: '**Use Cases**'
description: "Request Course metadata details for the Course Home MFE that every\
\ page needs.\n\n**Example Requests**\n\n GET api/course_home/v1/course_metadata/{course_key}\n\
\n**Response Values**\n\n Body consists of the following fields:\n\n \
\ course_id: (str) The Course's id (Course Run key)\n is_enrolled: (bool)\
\ Indicates if the user is enrolled in the course\n is_self_paced: (bool)\
\ Indicates if the course is self paced\n is_staff: (bool) Indicates if\
\ the user is staff\n original_user_is_staff: (bool) Indicates if the original\
\ user has staff access\n Used for when masquerading to distinguish\
\ between the original requesting user\n and the user being masqueraded\
\ as.\n number: (str) The Course's number\n org: (str) The Course's\
\ organization\n tabs: List of Course Tabs to display. They are serialized\
\ as:\n tab_id: (str) The tab's id\n title: (str) The title\
\ of the tab to display\n url: (str) The url to view the tab\n title:\
\ (str) The Course's display title\n\n**Returns**\n\n * 200 on success\
\ with above fields.\n * 404 if the course is not available or cannot be\
\ seen."
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/CourseHomeMetadata'
tags:
- course_home
parameters:
- name: course_key_string
in: path
required: true
type: string
- name: var
in: path
required: true
type: string
? /course_home/v1/dates/(P{course_key_string}[/+]+{var}[/+]+api/course_home/v1/dates/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: course_home_v1_dates_+]+api_course_home_v1_dates_+]+(_|+)[_]+)_read
summary: '**Use Cases**'
description: "Request details for the Dates Tab\n\n**Example Requests**\n\n\
\ GET api/course_home/v1/dates/{course_key}\n\n**Response Values**\n\n\
\ Body consists of the following fields:\n\n course_date_blocks: List\
\ of serialized DateSummary objects. Each serialization has the following\
\ fields:\n complete: (bool) Meant to only be used by assignments.\
\ Indicates completeness for an\n assignment.\n date: (datetime)\
\ The date time corresponding for the event\n date_type: (str) The\
\ type of date (ex. course-start-date, assignment-due-date, etc.)\n \
\ description: (str) The description for the date event\n learner_has_access:\
\ (bool) Indicates if the learner has access to the date event\n link:\
\ (str) An absolute link to content related to the date event\n \
\ (ex. verified link or link to assignment)\n title: (str) The title\
\ of the date event\n dates_banner_info: (obj)\n content_type_gating_enabled:\
\ (bool) Whether content type gating is enabled for this enrollment.\n \
\ missed_deadlines: (bool) Indicates whether the user missed any graded\
\ content deadlines\n missed_gated_content: (bool) Indicates whether\
\ the user missed gated content\n verified_upgrade_link: (str) The\
\ link for upgrading to the Verified track in a course\n has_ended: (bool)\
\ Indicates whether course has ended\n learner_is_full_access: (bool) Indicates\
\ if the user is verified in the course\n user_timezone: (str) The user's\
\ preferred timezone\n\n**Returns**\n\n * 200 on success with above fields.\n\
\ * 401 if the user is not authenticated.\n * 404 if the course is not\
\ available or cannot be seen."
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/DatesTab'
tags:
- course_home
parameters:
- name: course_key_string
in: path
required: true
type: string
- name: var
in: path
required: true
type: string
/course_home/v1/dismiss_welcome_message:
post:
operationId: course_home_v1_dismiss_welcome_message_create
description: ''
parameters: []
responses:
'201':
description: ''
tags:
- course_home
parameters: []
? /course_home/v1/outline/(P{course_key_string}[/+]+{var}[/+]+api/course_home/v1/outline/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: course_home_v1_outline_+]+api_course_home_v1_outline_+]+(_|+)[_]+)_read
summary: '**Use Cases**'
description: "Request details for the Outline Tab\n\n**Example Requests**\n\n\
\ GET api/course_home/v1/outline/{course_key}\n\n**Response Values**\n\n\
\ Body consists of the following fields:\n\n course_blocks:\n \
\ blocks: List of serialized Course Block objects. Each serialization has\
\ the following fields:\n id: (str) The usage ID of the block.\n\
\ type: (str) 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 display_name: (str)\
\ The display name of the block.\n lms_web_url: (str) The URL to\
\ the navigational container of the\n xBlock on the web LMS.\n\
\ children: (list) If the block has child blocks, a list of IDs\
\ of\n the child blocks.\n resume_block: (bool)\
\ Whether the block is the resume block\n course_goals:\n goal_options:\
\ (list) A list of goals where each goal is represented as a tuple (goal_key,\
\ goal_string)\n selected_goal:\n key: (str) The unique\
\ id given to the user's selected goal.\n text: (str) The display\
\ text for the user's selected goal.\n course_tools: List of serialized\
\ Course Tool objects. Each serialization has the following fields:\n \
\ analytics_id: (str) The unique id given to the tool.\n title:\
\ (str) The display title of the tool.\n url: (str) The link to access\
\ the tool.\n dates_banner_info: (obj)\n content_type_gating_enabled:\
\ (bool) Whether content type gating is enabled for this enrollment.\n \
\ missed_deadlines: (bool) Whether the user has missed any graded content\
\ deadlines for the given course.\n missed_gated_content: (bool) Whether\
\ the user has missed any gated content for the given course.\n verified_upgrade_link:\
\ (str) The URL to ecommerce IDA for purchasing the verified upgrade.\n \
\ dates_widget:\n course_date_blocks: List of serialized Course Dates\
\ objects. Each serialization has the following fields:\n complete:\
\ (bool) Meant to only be used by assignments. Indicates completeness for\
\ an\n assignment.\n date: (datetime) The date time\
\ corresponding for the event\n date_type: (str) The type of date\
\ (ex. course-start-date, assignment-due-date, etc.)\n description:\
\ (str) The description for the date event\n learner_has_access:\
\ (bool) Indicates if the learner has access to the date event\n \
\ link: (str) An absolute link to content related to the date event\n \
\ (ex. verified link or link to assignment)\n title:\
\ (str) The title of the date event\n dates_tab_link: (str) The URL\
\ to the Dates Tab\n user_timezone: (str) The timezone of the given\
\ user\n enroll_alert:\n can_enroll: (bool) Whether the user can\
\ enroll in the given course\n extra_text: (str)\n handouts_html:\
\ (str) Raw HTML for the handouts section of the course info\n has_ended:\
\ (bool) Indicates whether course has ended\n resume_course:\n has_visited_course:\
\ (bool) Whether the user has ever visited the course\n url: (str)\
\ The display name of the course block to resume\n welcome_message_html:\
\ (str) Raw HTML for the course updates banner\n\n**Returns**\n\n * 200\
\ on success with above fields.\n * 403 if the user is not authenticated.\n\
\ * 404 if the course is not available or cannot be seen."
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/OutlineTab'
tags:
- course_home
parameters:
- name: course_key_string
in: path
required: true
type: string
- name: var
in: path
required: true
type: string
? /course_home/v1/progress/(P{course_key_string}[/+]+{var}[/+]+api/course_home/v1/progress/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: course_home_v1_progress_+]+api_course_home_v1_progress_+]+(_|+)[_]+)_read
summary: '**Use Cases**'
description: "Request details for the Progress Tab\n\n**Example Requests**\n\
\n GET api/course_home/v1/progress/{course_key}\n\n**Response Values**\n\
\n Body consists of the following fields:\n\n certificate_data: Object\
\ containing information about the user's certificate status\n cert_web_view_url:\
\ (str) the url to view the certificate\n download_url: (str) the url\
\ to download the certificate\n is_downloadable: (bool) true if the\
\ status is downloadable and the download url is not None\n is_requestable:\
\ (bool) true if status is requesting and request_cert_url is not None\n \
\ msg: (str) message for the certificate status\n title: (str)\
\ title of the certificate status\n credit_course_requirements: An object\
\ containing the following fields\n dashboard_url: (str) the url to\
\ the user's dashboard\n eligibility_status: (str) the user's eligibility\
\ to receive a course credit\n requirements: object containing the\
\ following fields\n display_name: (str) the name of the requirement\
\ that should be displayed\n namespace: (str) the type that the\
\ requirement is\n min_grade: (float) the percentage formatted\
\ minimum grade needed for this requirement\n status: (str) the\
\ status of the requirement\n status_date: (str) the date the status\
\ was set\n credit_support_url: (str) the url to the support docs for purchasing\
\ a credit\n courseware_summary: List of serialized Chapters. each Chapter\
\ has the following fields:\n display_name: (str) a str of what the\
\ name of the Chapter is for displaying on the site\n subsections:\
\ List of serialized Subsections, each has the following fields:\n \
\ display_name: (str) a str of what the name of the Subsection is for\
\ displaying on the site\n due: (str) a DateTime string for when\
\ the Subsection is due\n format: (str) the format, if any, of\
\ the Subsection (Homework, Exam, etc)\n graded: (bool) whether\
\ or not the Subsection is graded\n graded_total: an object containing\
\ the following fields\n earned: (float) the amount of points\
\ the user earned\n possible: (float) the amount of points\
\ the user could have earned\n percent_graded: (float) the percentage\
\ of the points the user received for the subsection\n show_correctness:\
\ (str) a str representing whether to show the problem/practice scores based\
\ on due date\n show_grades: (bool) a bool for whether to show\
\ grades based on the access the user has\n url: (str) the absolute\
\ path url to the Subsection\n enrollment_mode: (str) a str representing\
\ the enrollment the user has ('audit', 'verified', ...)\n studio_url:\
\ (str) a str of the link to the grading in studio for the course\n user_timezone:\
\ (str) The user's preferred timezone\n verification_data: an object containing\n\
\ link: (str) the link to either start or retry verification\n \
\ status: (str) the status of the verification\n status_date: (str)\
\ the date time string of when the verification status was set\n\n\n\n**Returns**\n\
\n * 200 on success with above fields.\n * 302 if the user is not enrolled.\n\
\ * 403 if the user is not authenticated.\n * 404 if the course is not\
\ available or cannot be seen."
parameters: []
responses:
'200':
description: ''
schema:
$ref: '#/definitions/ProgressTab'
tags:
- course_home
parameters:
- name: course_key_string
in: path
required: true
type: string
- name: var
in: path
required: true
type: string
/course_home/v1/save_course_goal:
post:
operationId: course_home_v1_save_course_goal_create
description: ''
parameters: []
responses:
'201':
description: ''
tags:
- course_home
parameters: []
/course_modes/v1/courses/{course_id}/:
get:
operationId: course_modes_v1_courses_read
@@ -1072,18 +1354,21 @@ paths:
\ 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\
\ A blank/empty username can be used to request the blocks accessible\n\
\ to anonymous users (for public courses). Only users with course staff\n\
\ permissions can specify other users' usernames. If a username is\n\
\ specified, results include blocks that are visible to that user,\n\
\ including those based on group or cohort membership or randomized\n\
\ content assigned to that user.\n\n Example: username=anjali\n\
\ username=''\n username\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 \
@@ -1146,6 +1431,9 @@ paths:
\ 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.\n\n * Additional XBlock fields\
\ can be included in the response if they are\n configured via the\
\ COURSE_BLOCKS_API_EXTRA_FIELDS Django setting and\n requested via\
\ the \"requested_fields\" parameter."
parameters:
- name: page
@@ -1424,18 +1712,21 @@ paths:
\ 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\
\ A blank/empty username can be used to request the blocks accessible\n\
\ to anonymous users (for public courses). Only users with course staff\n\
\ permissions can specify other users' usernames. If a username is\n\
\ specified, results include blocks that are visible to that user,\n\
\ including those based on group or cohort membership or randomized\n\
\ content assigned to that user.\n\n Example: username=anjali\n\
\ username=''\n username\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 \
@@ -1498,6 +1789,9 @@ paths:
\ 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.\n\n * Additional XBlock fields\
\ can be included in the response if they are\n configured via the\
\ COURSE_BLOCKS_API_EXTRA_FIELDS Django setting and\n requested via\
\ the \"requested_fields\" parameter."
parameters:
- name: page
@@ -1524,6 +1818,25 @@ paths:
in: path
required: true
type: string
? /courseware/celebration/(P{course_key_string}[/+]+{var}[/+]+api/courseware/celebration/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: post:
operationId: courseware_celebration_+]+api_courseware_celebration_+]+(_|+)[_]+)_create
description: Handle a POST request.
parameters: []
responses:
'201':
description: ''
tags:
- courseware
parameters:
- name: course_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
@@ -1551,15 +1864,43 @@ paths:
\ 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."
\ effective user has staff access to the course\n * original_user_is_staff:\
\ Whether the original user has staff access to the course\n * user_has_passing_grade:\
\ Whether or not the effective user's grade is equal to or above the courses\
\ minimum\n passing grade\n * course_exit_page_is_active: Flag for\
\ the learning mfe on whether or not the course exit page should display\n\
\ * certificate_data: data regarding the effective user's certificate for\
\ the given course\n * verify_identity_url: URL for a learner to verify\
\ their identity. Only returned for learners enrolled in a\n verified\
\ mode. Will update to reverify URL if necessary.\n * linkedin_add_to_profile_url:\
\ URL to add the effective user's certificate to a LinkedIn Profile.\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/resume/(P{course_key_string}[/+]+{var}[/+]+api/courseware/resume/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+)
: get:
operationId: courseware_resume_+]+api_courseware_resume_+]+(_|+)[_]+)_list
description: Return response to a GET request.
parameters: []
responses:
'200':
@@ -1755,6 +2096,29 @@ paths:
in: path
required: true
type: string
/demographics/v1/demographics/status/:
get:
operationId: demographics_v1_demographics_status_list
summary: GET /api/user/v1/accounts/demographics/status
description: This is a Web API to determine the status of demographics related
features
parameters: []
responses:
'200':
description: ''
tags:
- demographics
patch:
operationId: demographics_v1_demographics_status_partial_update
summary: PATCH /api/user/v1/accounts/demographics/status
description: This is a Web API to update fields that are dependent on user interaction.
parameters: []
responses:
'200':
description: ''
tags:
- demographics
parameters: []
/discounts/course/(P{course_key_string}[/+]+{var}[/+]+api/discounts/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+):
get:
operationId: discounts_course_+]+api_discounts_course_+]+(_|+)[_]+)_list
@@ -2731,7 +3095,7 @@ paths:
- entitlements
post:
operationId: entitlements_v1_entitlements_create
description: ''
description: ViewSet for the Entitlements API.
parameters:
- name: data
in: body
@@ -2761,7 +3125,7 @@ paths:
- entitlements
put:
operationId: entitlements_v1_entitlements_update
description: ''
description: ViewSet for the Entitlements API.
parameters:
- name: data
in: body
@@ -2777,7 +3141,7 @@ paths:
- entitlements
patch:
operationId: entitlements_v1_entitlements_partial_update
description: ''
description: ViewSet for the Entitlements API.
parameters:
- name: data
in: body
@@ -2793,7 +3157,7 @@ paths:
- entitlements
delete:
operationId: entitlements_v1_entitlements_delete
description: ''
description: ViewSet for the Entitlements API.
parameters: []
responses:
'204':
@@ -3263,6 +3627,22 @@ paths:
in: path
required: true
type: string
/learning_sequences/v1/course_outline/{course_key_str}:
get:
operationId: learning_sequences_v1_course_outline_read
summary: The CourseOutline, customized for a given user.
description: Currently restricted to global staff.
parameters: []
responses:
'200':
description: ''
tags:
- learning_sequences
parameters:
- name: course_key_str
in: path
required: true
type: string
/mobile/{api_version}/course_info/{course_id}/handouts:
get:
operationId: mobile_course_info_handouts_list
@@ -3483,69 +3863,6 @@ paths:
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
@@ -4105,6 +4422,31 @@ paths:
in: path
required: true
type: string
/team/v0/teams/{team_id}/assignments:
get:
operationId: team_v0_teams_assignments_list
description: GET v0/teams/{team_id_pattern}/assignments
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:
- name: team_id
in: path
required: true
type: string
/team/v0/topics/:
get:
operationId: team_v0_topics_list
@@ -4270,6 +4612,17 @@ paths:
in: path
required: true
type: string
/toggles/v0/state/:
get:
operationId: toggles_v0_state_list
description: An endpoint for displaying the state of toggles in edx-platform.
parameters: []
responses:
'200':
description: ''
tags:
- toggles
parameters: []
/user/v1/accounts:
get:
operationId: user_v1_accounts_list
@@ -4552,6 +4905,26 @@ paths:
in: path
required: true
type: string
/user/v1/accounts/{username}/verifications/:
get:
operationId: user_v1_accounts_verifications_list
description: IDVerificationStatusDeetails endpoint to retrieve more details
about ID Verification status
parameters: []
responses:
'200':
description: ''
schema:
type: array
items:
$ref: '#/definitions/IDVerificationDetails'
tags:
- user
parameters:
- name: username
in: path
required: true
type: string
/user/v1/me:
get:
operationId: user_v1_get
@@ -4731,9 +5104,10 @@ paths:
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 }"
description: "Example request data:\n ```\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 }\n ```"
parameters: []
responses:
'200':
@@ -4752,63 +5126,6 @@ paths:
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
@@ -5145,6 +5462,17 @@ definitions:
type: array
items:
$ref: '#/definitions/commerce.CourseMode'
CourseDeadlinesMobile:
type: object
properties:
dates_banner_info:
title: Dates banner info
type: string
readOnly: true
has_ended:
title: Has ended
type: string
readOnly: true
CourseGoal:
required:
- user
@@ -5168,6 +5496,493 @@ definitions:
- complete
- explore
- unsure
CourseTab:
required:
- tab_id
type: object
properties:
tab_id:
title: Tab id
type: string
minLength: 1
title:
title: Title
type: string
readOnly: true
url:
title: Url
type: string
readOnly: true
CourseHomeMetadata:
required:
- course_id
- is_enrolled
- is_self_paced
- is_staff
- number
- org
- original_user_is_staff
- tabs
- title
type: object
properties:
course_id:
title: Course id
type: string
minLength: 1
is_enrolled:
title: Is enrolled
type: boolean
is_self_paced:
title: Is self paced
type: boolean
is_staff:
title: Is staff
type: boolean
number:
title: Number
type: string
minLength: 1
org:
title: Org
type: string
minLength: 1
original_user_is_staff:
title: Original user is staff
type: boolean
tabs:
type: array
items:
$ref: '#/definitions/CourseTab'
title:
title: Title
type: string
minLength: 1
DateSummary:
required:
- complete
- date
- date_type
- description
- link_text
- title
- extra_info
type: object
properties:
assignment_type:
title: Assignment type
type: string
minLength: 1
complete:
title: Complete
type: boolean
date:
title: Date
type: string
format: date-time
date_type:
title: Date type
type: string
minLength: 1
description:
title: Description
type: string
minLength: 1
learner_has_access:
title: Learner has access
type: string
readOnly: true
link:
title: Link
type: string
readOnly: true
link_text:
title: Link text
type: string
minLength: 1
title:
title: Title
type: string
minLength: 1
extra_info:
title: Extra info
type: string
minLength: 1
DatesTab:
required:
- course_date_blocks
- has_ended
- learner_is_full_access
- user_timezone
type: object
properties:
dates_banner_info:
title: Dates banner info
type: string
readOnly: true
course_date_blocks:
type: array
items:
$ref: '#/definitions/DateSummary'
has_ended:
title: Has ended
type: boolean
learner_is_full_access:
title: Learner is full access
type: boolean
user_timezone:
title: User timezone
type: string
minLength: 1
CourseBlock:
title: Course blocks
type: object
properties:
blocks:
title: Blocks
type: string
readOnly: true
CourseGoals:
title: Course goals
required:
- goal_options
- selected_goal
type: object
properties:
goal_options:
type: array
items:
type: string
selected_goal:
title: Selected goal
type: object
additionalProperties:
type: string
CourseTool:
required:
- analytics_id
- title
type: object
properties:
analytics_id:
title: Analytics id
type: string
minLength: 1
title:
title: Title
type: string
minLength: 1
url:
title: Url
type: string
readOnly: true
DatesWidget:
title: Dates widget
required:
- course_date_blocks
- dates_tab_link
- user_timezone
type: object
properties:
course_date_blocks:
type: array
items:
$ref: '#/definitions/DateSummary'
dates_tab_link:
title: Dates tab link
type: string
minLength: 1
user_timezone:
title: User timezone
type: string
minLength: 1
EnrollAlert:
title: Enroll alert
required:
- can_enroll
- extra_text
type: object
properties:
can_enroll:
title: Can enroll
type: boolean
extra_text:
title: Extra text
type: string
minLength: 1
ResumeCourse:
title: Resume course
required:
- has_visited_course
- url
type: object
properties:
has_visited_course:
title: Has visited course
type: boolean
url:
title: Url
type: string
format: uri
minLength: 1
OutlineTab:
required:
- course_blocks
- course_expired_html
- course_goals
- course_tools
- dates_widget
- enroll_alert
- handouts_html
- has_ended
- offer_html
- resume_course
- welcome_message_html
type: object
properties:
dates_banner_info:
title: Dates banner info
type: string
readOnly: true
course_blocks:
$ref: '#/definitions/CourseBlock'
course_expired_html:
title: Course expired html
type: string
minLength: 1
course_goals:
$ref: '#/definitions/CourseGoals'
course_tools:
type: array
items:
$ref: '#/definitions/CourseTool'
dates_widget:
$ref: '#/definitions/DatesWidget'
enroll_alert:
$ref: '#/definitions/EnrollAlert'
handouts_html:
title: Handouts html
type: string
minLength: 1
has_ended:
title: Has ended
type: boolean
offer_html:
title: Offer html
type: string
minLength: 1
resume_course:
$ref: '#/definitions/ResumeCourse'
welcome_message_html:
title: Welcome message html
type: string
minLength: 1
CertificateData:
title: Certificate data
required:
- cert_status
- cert_web_view_url
- download_url
- msg
- title
type: object
properties:
cert_status:
title: Cert status
type: string
minLength: 1
cert_web_view_url:
title: Cert web view url
type: string
minLength: 1
download_url:
title: Download url
type: string
minLength: 1
msg:
title: Msg
type: string
minLength: 1
title:
title: Title
type: string
minLength: 1
CreditRequirement:
required:
- display_name
- status
- status_date
type: object
properties:
display_name:
title: Display name
type: string
minLength: 1
min_grade:
title: Min grade
type: string
readOnly: true
status:
title: Status
type: string
minLength: 1
status_date:
title: Status date
type: string
format: date-time
CreditCourseRequirements:
title: Credit course requirements
required:
- eligibility_status
- requirements
type: object
properties:
dashboard_url:
title: Dashboard url
type: string
readOnly: true
eligibility_status:
title: Eligibility status
type: string
minLength: 1
requirements:
type: array
items:
$ref: '#/definitions/CreditRequirement'
GradedTotal:
title: Graded total
required:
- earned
- possible
type: object
properties:
earned:
title: Earned
type: number
possible:
title: Possible
type: number
Subsection:
required:
- display_name
- due
- format
- graded
- graded_total
- percent_graded
- show_correctness
type: object
properties:
display_name:
title: Display name
type: string
minLength: 1
due:
title: Due
type: string
format: date-time
format:
title: Format
type: string
minLength: 1
graded:
title: Graded
type: boolean
graded_total:
$ref: '#/definitions/GradedTotal'
percent_graded:
title: Percent graded
type: number
problem_scores:
title: Problem scores
type: string
readOnly: true
show_correctness:
title: Show correctness
type: string
minLength: 1
show_grades:
title: Show grades
type: string
readOnly: true
url:
title: Url
type: string
readOnly: true
Chapter:
required:
- display_name
- subsections
type: object
properties:
display_name:
title: Display name
type: string
minLength: 1
subsections:
type: array
items:
$ref: '#/definitions/Subsection'
VerificationData:
title: Verification data
required:
- link
- status
- status_date
type: object
properties:
link:
title: Link
type: string
format: uri
minLength: 1
status:
title: Status
type: string
minLength: 1
status_date:
title: Status date
type: string
format: date-time
ProgressTab:
required:
- certificate_data
- credit_course_requirements
- credit_support_url
- courseware_summary
- enrollment_mode
- studio_url
- user_timezone
- verification_data
type: object
properties:
certificate_data:
$ref: '#/definitions/CertificateData'
credit_course_requirements:
$ref: '#/definitions/CreditCourseRequirements'
credit_support_url:
title: Credit support url
type: string
format: uri
minLength: 1
courseware_summary:
type: array
items:
$ref: '#/definitions/Chapter'
enrollment_mode:
title: Enrollment mode
type: string
minLength: 1
studio_url:
title: Studio url
type: string
minLength: 1
user_timezone:
title: User timezone
type: string
minLength: 1
verification_data:
$ref: '#/definitions/VerificationData'
course_modes.CourseMode:
required:
- course_id
@@ -5792,31 +6607,6 @@ definitions:
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
@@ -6005,6 +6795,33 @@ definitions:
title: Remote id
type: string
readOnly: true
IDVerificationDetails:
required:
- status
- expiration_datetime
- updated_at
type: object
properties:
type:
title: Type
type: string
readOnly: true
status:
title: Status
type: string
minLength: 1
expiration_datetime:
title: Expiration datetime
type: string
format: date-time
message:
title: Message
type: string
readOnly: true
updated_at:
title: Updated at
type: string
format: date-time
EncodedVideo:
required:
- url
@@ -6086,62 +6903,3 @@ definitions:
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