microservices/course_ingestion/api_spec.yaml (2,689 lines of code) (raw):
tags:
- name: Learning Content Ingestion
description: Ingests a particular learning content, performs CRUD at learning content level.
- name: Course Creation
description: Perform CRUDs course level.
- name: Competency level
description: Performs CRUD at Competency level.
- name: Competency level from Learning Content
description: Competency level operations from particular Learning content
- name: Competency level from Course
description: Competency level operations from particular Course
- name: Sub Competency level
description: Performs CRUD at SubCompetency level.
- name: Learning Objective level
description: Performs CRUD at Learning Objective level.
- name: Learning Unit level
description: Performs CRUD at Learning Unit level.
- name: Topic Tree
description: Performs topic tree creation at all levels, fetches complete topic tree
- name: Triple level
description: Performs CRUD at Triple level.
- name: Job Status Check
description: Checks and returns status of long running jobs
paths:
/course_ingestion/api/v1/course/:
get:
tags:
- Course Creation
description: This route fetches all the courses stored in firestore.
parameters:
- in: query
name: competencies
required: false
description: Flag to fetch competencies for each course.
schema:
type: string
enum: ["true", "false"]
example: "true"
responses:
"200":
description: All the courses present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/AllCourseResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Course Creation
description: This route creates a course.
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/courseCreateSchema"
responses:
"200":
description: Updates a particular course present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CourseResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/course/{id}:
get:
tags:
- Course Creation
description: This route fetches a particular course using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the course
responses:
"200":
description: A particular course present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CourseResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Course Creation
description: This route updates a particular course using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the course
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/updateCourseSchema"
responses:
"200":
description: Updates a particular course present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/updateCourseResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Course Creation
description: This route deletes a particular course using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the course
responses:
"200":
description: Deleted a particular course present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/deleteCourse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_content/:
get:
tags:
- Learning Content Ingestion
description: This route fetches all the learning content items stored in firestore.
parameters: []
responses:
"200":
description: All the learning contents present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/allLearningContentResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Learning Content Ingestion
description: This route initiates a batch job to create a learning content.
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/learningContentCreate"
responses:
"200":
description: Creates a Learning content in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/jobStartedResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_content/{id}:
get:
tags:
- Learning Content Ingestion
description: This route fetches a particular learning content using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the learning content
responses:
"200":
description: A particular learning content present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/learningContentResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Learning Content Ingestion
description: This route updates a particular learning content using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the learning content
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/updateLearningContentSchema"
responses:
"200":
description: Updates a particular learning content present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/updateLearningContentResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Learning Content Ingestion
description: This route deletes a particular learning content using id.
parameters:
- in: path
name: id
schema:
type: string
required: true
description: Firestore ID of the learning content
responses:
"200":
description: Deleted a particular learning content present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/learningContentDelete"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/jobs/:
get:
tags:
- Job Status Check
description: This route fetches status of all jobs.
responses:
"200":
description: Returns the status of all jobs
content:
application/json:
schema:
$ref: "#/components/schemas/jobStatusCheck"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/jobs/{job_name}:
get:
tags:
- Job Status Check
description: This route fetches status of given job name.
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
responses:
"200":
description: Returns the status a single job given job_name or all jobs
content:
application/json:
schema:
$ref: "#/components/schemas/jobStatusCheck"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Job Status Check
description: This route removes the job from the namespace and updates the stauts.
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
responses:
"200":
description: Removes the job from cluster and updates the status accordingly.
content:
application/json:
schema:
$ref: "#/components/schemas/jobPutResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Job Status Check
description: This route removes the the particular job document from firestore.
parameters:
- in: path
name: job_name
schema:
type: string
required: true
description: Job name
responses:
"200":
description: Deletes the job document from the firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/jobDeleteResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/course/{id}/competency/:
get:
tags:
- Competency level from Course
description: This route fetches all the competencies of a given course
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
"200":
description: All the competency of course with the given id present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/AllCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Competency level from Course
description: This route creates a competency using request parameters and associates it with the current course.
parameters:
- in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyRequest"
responses:
"200":
description: competency created in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/course/{id}/competency/{competency_id}:
get:
tags:
- Competency level from Course
description: This route fetches a particular competency of a course using id.
parameters:
- in: path
name: id
required: true
schema:
type: string
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: Competency fetched from the firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Competency level from Course
description: This route deletes(unlinks) a particular competency using id from a course.
parameters:
- in: path
name: id
required: true
schema:
type: string
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the competency from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_content/{id}/competency/:
get:
tags:
- Competency level from Learning Content
description: This route fetches all the competencies of a given learning content
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
"200":
description: All the competency of learning content with the given id present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/AllCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Competency level from Learning Content
description: This route creates a competency using request parameters and associates it with current learning content.
parameters:
- in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyRequest"
responses:
"200":
description: competency created in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_content/{id}/competency/{competency_id}:
get:
tags:
- Competency level from Learning Content
description: This route fetches a particular competency using id with a learning content.
parameters:
- in: path
name: id
required: true
schema:
type: string
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: Competency fetched from the firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Competency level from Learning Content
description: This route deletes(unlink) a particular competency using id from a learning content.
parameters:
- in: path
name: id
required: true
schema:
type: string
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the competency from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/competency/:
get:
tags:
- Competency level
description: This route fetches all the competencies.
responses:
"200":
description: All the competency of course with the given id present in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/AllCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Competency level
description: This route creates a competency using request parameters.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyRequest"
responses:
"200":
description: competency created in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/competency/{competency_id}:
get:
tags:
- Competency level
description: This route fetches a particular competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
- in: query
name: is_text_required
required: false
description: Flag to fetch text of competency.
schema:
type: string
enum: ["true", "false"]
example: "false"
responses:
"200":
description: Competency fetched from the firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Competency level
description: This route updates a particular competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateCompetencyRequest"
responses:
"200":
description: Updated competency of the course
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Competency level
description: This route deletes a particular competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the competency from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/competency/{competency_id}/sub_competency/:
get:
tags:
- Sub Competency level
description: This route fetches all the sub competencies of a particular competency
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
responses:
"200":
description: All the sub competencies of competency with the given id.
content:
application/json:
schema:
$ref: "#/components/schemas/AllSubCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Sub Competency level
description: This route creates a particular sub competency using request parameters.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateSubCompetencyRequest"
responses:
"200":
description: Created a sub competency in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateSubCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/competency/{competency_id}/sub_competency/{sub_competency_id}:
get:
tags:
- Sub Competency level
description: This route fetches a particular sub competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
- in: path
name: sub_competency_id
required: true
schema:
type: string
- in: query
name: is_text_required
required: false
description: Flag to fetch text of subcompetency.
schema:
type: string
enum: ["true", "false"]
example: "false"
responses:
"200":
description: Fetched sub competency from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetSubCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Sub Competency level
description: This route updates a particular sub competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
- in: path
name: sub_competency_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateSubCompetencyRequest"
responses:
"200":
description: Updated sub competency of the course
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateSubCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Sub Competency level
description: This route deletes a particular sub competency using id.
parameters:
- in: path
name: competency_id
required: true
schema:
type: string
- in: path
name: sub_competency_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the sub competency from firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteSubCompetencyResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/sub_competency/{sub_competency_id}/learning_objective/:
get:
tags:
- Learning Objective level
description: This route fetches all the learning objectives of a particular sub competency
parameters:
- in: path
name: sub_competency_id
required: true
schema:
type: string
responses:
"200":
description: Fetched all learning objectives of the given sub competency.
content:
application/json:
schema:
$ref: "#/components/schemas/AllLearningObjectiveResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Learning Objective level
description: This route creates a learning objective using request parameters.
parameters:
- in: path
name: sub_competency_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateLearningObjectiveRequest"
responses:
"200":
description: Created a learning objective in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateLearningObjectiveResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/sub_competency/{sub_competency_id}/learning_objective/{learning_objective_id}:
get:
tags:
- Learning Objective level
description: This route fetches a particular learning objective using id.
parameters:
- in: path
name: sub_competency_id
required: true
schema:
type: string
- in: path
name: learning_objective_id
required: true
schema:
type: string
responses:
"200":
description: Fetched learning objective from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetLearningObjectiveResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Learning Objective level
description: This route updates a particular learning objective using id.
parameters:
- in: path
name: sub_competency_id
required: true
schema:
type: string
- in: path
name: learning_objective_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateLearningObjectiveRequest"
responses:
"200":
description: Updated learning objective in firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateLearningObjectiveResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Learning Objective level
description: This route deletes a particular learning objective using id
parameters:
- in: path
name: sub_competency_id
required: true
schema:
type: string
- in: path
name: learning_objective_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the learning objective from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteLearningObjectiveResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_objective/{learning_objective_id}/learning_unit/tree:
post:
tags:
- Learning Unit level
description: This route creates learning units for a given learning objective
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/createLUFromLO"
responses:
"200":
description: Created learning units from Learning Objective
content:
application/json:
schema:
$ref: "#/components/schemas/createLUFromLOResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_objective/{learning_objective_id}/learning_unit/:
get:
tags:
- Learning Unit level
description: This route fetches all the learning units of a particular learning objective
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
responses:
"200":
description: All the learning units of learning objective with the given id.
content:
application/json:
schema:
$ref: "#/components/schemas/AllLearningUnitResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Learning Unit level
description: This route creates a learning unit using request parameters.
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateLearningUnitRequest"
responses:
"200":
description: Created a learning unit in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateLearningUnitResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_objective/{learning_objective_id}/learning_unit/{learning_unit_id}:
get:
tags:
- Learning Unit level
description: This route fetches a particular learning unit using id.
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
- in: path
name: learning_unit_id
required: true
schema:
type: string
responses:
"200":
description: Fetched learning unit from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetLearningUnitResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Learning Unit level
description: This route updates a particular learning unit using id.
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
- in: path
name: learning_unit_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateLearningUnitRequest"
responses:
"200":
description: Updated learning unit of the course
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateLearningUnitResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Learning Unit level
description: This route deletes a particular learning unit using id.
parameters:
- in: path
name: learning_objective_id
required: true
schema:
type: string
- in: path
name: learning_unit_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the learning unit from firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteLearningUnitResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_unit/{learning_unit_id}/triple/:
get:
tags:
- Triple level
description: This route fetches all the triples of a particular learning unit
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
responses:
"200":
description: All the triples of learning unit with the given id.
content:
application/json:
schema:
$ref: "#/components/schemas/AllTriplesResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Triple level
description: This route creates a triple using request parameters.
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateTripleRequest"
responses:
"200":
description: Created a triple in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/CreateTripleResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_unit/{learning_unit_id}/lu/triple/:
post:
tags:
- Triple level
description: Creates triples for a given learning unit ID.
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateTriplesForLU"
responses:
"200":
description: Created a triple in firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/AllTriplesResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/learning_unit/{learning_unit_id}/triple/{triple_id}:
get:
tags:
- Triple level
description: This route fetches a particular triple using id.
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
- in: path
name: triple_id
required: true
schema:
type: string
responses:
"200":
description: Fetched triple from firestore.
content:
application/json:
schema:
$ref: "#/components/schemas/GetTripleResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
put:
tags:
- Triple level
description: This route updates a particular triple using id.
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
- in: path
name: triple_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateTripleRequest"
responses:
"200":
description: Updated triple of the course
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateTripleResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
delete:
tags:
- Triple level
description: This route deletes a particular triple using id.
parameters:
- in: path
name: learning_unit_id
required: true
schema:
type: string
- in: path
name: triple_id
required: true
schema:
type: string
responses:
"200":
description: Deleted the triple from firestore collection.
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteTripleResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
/course_ingestion/api/v1/topic_tree/:
get:
tags:
- Topic Tree
description: This route fetches entire topic tree for a given node id along with corresponding hierarchy level
parameters:
- in: query
name: level
required: true
description: Topic tree hierarchy level
schema:
type: string
enum: ["learning_content","course","competency", "sub_competency","learning_objective","learning_unit"]
example: learning_objective
- in: query
name: id
required: true
description: Unique document identifier.
schema:
type: string
example: nczwaowmwvr
responses:
"200":
description: Topic tree for the given node id and level.
content:
application/json:
schema:
$ref: "#/components/schemas/TopicTreeGetResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
post:
tags:
- Topic Tree
description: This route initiates a batch job to create a topic tree for a given node.
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TopicTreePostRequest"
responses:
"200":
description: Replaces the existing children nodes with newly created nodes
content:
application/json:
schema:
$ref: "#/components/schemas/TopicTreePostResponse"
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/errorResponse"
components:
schemas:
defaultResponseSchema:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "All good"
data:
type: object
CourseResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the course(s)"
data:
$ref: '#/components/schemas/courseSchemaWithCompetency'
updateCourseResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the course"
data:
allOf:
- $ref: '#/components/schemas/courseSchemaWithCompetency'
- type: object
properties:
title:
type: string
example: "Updated title"
courseSchema:
type: object
properties:
title:
type: string
example: "course 1 title"
label:
type: string
example: "sample label"
updateCourseSchema:
allOf:
- $ref: '#/components/schemas/courseSchema'
- type: object
properties:
title:
type: string
example: "Updated title"
competency_ids:
type: array
items:
type: string
example: ["fdskajgsdfg"]
override_existing_competencies:
type: boolean
default: False
description: If False then it will append the competency ids to existing competency ids.
courseCreateSchema:
type: object
required:
- title
- label
properties:
title:
type: string
example: "course 1 title"
label:
type: string
example: "sample title"
competency_ids:
type: array
items:
type: string
example: "dsfkjafal"
add_competencies_from_learning_content:
type: boolean
default: False
description: If set to True all competencies from the given learning content ids will be considered for course creation, ignoring field competency_ids.
learning_content_ids:
type: array
items:
type: string
example: "fkdaflgsgff"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
course_category:
type: string
enum: ["default", "bio"]
description: If course is scientific choose "bio" else default
courseSchemaWithCompetency:
type: object
properties:
title:
type: string
example: "course 1 title"
label:
type: string
example: "sample label"
is_valid:
type: boolean
example: true
type:
type: string
example: "course"
id:
type: string
example: "jfkdsafjalfd"
competencies:
type: array
items:
$ref: '#/components/schemas/competencySchema'
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
course_category:
type: string
example: "bio"
deleteCourse:
allOf:
- $ref: '#/components/schemas/defaultResponseSchema'
- type: object
properties:
message:
type: string
example: "Successfully deleted the course"
learningContentDelete:
allOf:
- $ref: '#/components/schemas/defaultResponseSchema'
- type: object
properties:
message:
type: string
example: "Successfully deleted the Learning Content"
learningContentSchema:
type: object
properties:
title:
type: string
example: "learning content 1 title"
description:
type: string
example: "sample description"
format:
type: string
example: "pdf"
competency_ids:
type: array
items:
type: string
example: ["fjsdsaflasdkfl"]
gcs_path:
type: string
example: "gs://bucket-name/learning_contents/sample_content.pdf"
override_existing_competencies:
type: boolean
default: False
description: If False then it will append the competency ids to existing competency ids.
course_category:
type: string
example: "bio"
updateLearningContentSchema:
allOf:
- $ref: '#/components/schemas/learningContentSchema'
- type: object
properties:
title:
type: string
example: "Updated title"
allLearningContentResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the learning content item(s)"
data:
type: array
items:
$ref: '#/components/schemas/learningConentWithCompetency'
learningContentResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the learning content item(s)"
data:
$ref: '#/components/schemas/learningConentWithCompetency'
updateLearningContentResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the learning content item(s)"
data:
allOf:
- $ref: '#/components/schemas/learningConentWithCompetency'
- type: object
properties:
title:
type: string
example: "Updated title"
learningConentWithCompetency:
type: object
properties:
title:
type: string
example: "learning content 1 title"
description:
type: string
example: "sample description"
document_type:
type: string
example: "pdf"
id:
type: string
example: "jfkdsafjalfd"
gcs_path:
type: string
example: "gs://bucket-name/learning_contents/sample_content.pdf"
competencies:
type: array
items:
$ref: '#/components/schemas/competencyWithoutParent'
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
course_category:
type: string
example: "bio"
competencyWithoutParent:
type: object
properties:
title:
type: string
example: "competency title"
description:
type: string
example: "description"
is_valid:
type: boolean
example: true
id:
type: string
example: "fjaskdfjas"
type:
type: string
example: "competencies"
label:
type: string
example: "sample label"
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
learningContentCreate:
type: object
required:
- title
- gcs_path
- format
properties:
title:
type: string
example: "Sample Learning Content title"
gcs_path:
type: string
example: "gs://bucket-name/learning_contents/sample_content.pdf"
format:
type: string
example: "pdf"
start_page:
type: integer
example: 30
end_page:
type: integer
example: 300
created_by:
type: string
example: "user 1"
last_modified_by:
type: string
example: "user 2"
description:
type: string
example: "sample description"
create_learning_units:
type: boolean
default: true
create_triples:
type: boolean
default: false
using_parser:
type: boolean
default: false
description: "Whether to use only parser to ingest learning content"
fcm_token:
type: string
example: "dmiBYXlO3lI:APA91bEXIGi_13Ofwdu9-GPBbQQs_4eANqx2DW"
description: "Firebase Cloud Messaging token, used to send notifications about batch job status"
course_category:
type: string
enum: ["default", "bio"]
description: If course is scientific choose "bio" else default
jobStartedResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name abcd-ajdf-sdfk-sdff has been started"
data:
type: object
properties:
job_name:
type: string
example: "abcd-ajdf-sdfk-sdff"
status:
type: string
example: "running"
TopicTreePostResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name abcd-ajdf-sdfk-sdff has been started"
data:
type: object
properties:
job_name:
type: string
example: "abcd-ajdf-sdfk-sdff"
status:
type: string
example: "running"
jobStatusCheck:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Batch Job status: succeeded"
data:
type: object
properties:
job_name:
type: string
example: "abcd-ajdf-sdfk-sdff"
created_by:
type: string
example: "Sample User"
created_time:
type: string
example: "2021-09-03 11:56:25.370711+00:00"
last_modified_by:
type: string
example: "Sample User"
last_modified_time:
type: string
example: "2021-09-03 11:56:25.370711+00:00"
input_data:
type: object
properties:
title:
type: string
example: "Sample title"
gcs_path:
type: string
example: "gs://bucket-name/learning_contents/sample_content.pdf"
format:
type: string
example: "pdf"
start_page:
type: number
example: 1
end_page:
type: number
example: 200
status:
type: string
example: "succeeded"
generated_item_id:
type: string
example: "HlgZWSyu5hvNGZX5sb7t"
jobPutResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name abcd-ajdf-sdfk-sdff has been aborted"
data:
type: object
jobDeleteResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name abcd-ajdf-sdfk-sdff has been deleted"
data:
type: object
AllCourseResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the course"
data:
type: array
items:
type: object
properties:
title:
type: string
example: "course 1 title"
is_valid:
type: boolean
example: true
type:
type: string
example: "course"
id:
type: string
example: "jfkdsafjalfd"
competencies:
type: array
items:
$ref: '#/components/schemas/competencySchema'
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
course_category:
type: string
example: "bio"
AllCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the competency(s)"
data:
type: array
items:
$ref: '#/components/schemas/competencySchema'
UpdateCompetencyRequest:
type: object
properties:
title:
type: string
example: updated title
CreateCompetencyRequest:
type: object
required:
- title
- label
properties:
title:
type: string
example: "competency title"
description:
type: string
example: "description"
label:
type: string
example: "sample label"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully created the competency"
data:
$ref: '#/components/schemas/competencySchema'
DeleteCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully deleted the competency"
data:
type: object
GetCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the competency(s)"
data:
$ref: '#/components/schemas/competencySchema'
UpdateCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the competency(s)"
data:
allOf:
- $ref: '#/components/schemas/competencySchema'
- type: object
properties:
title:
type: string
example: "updated title"
AllSubCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the sub competency(s)"
data:
type: array
items:
$ref: '#/components/schemas/SubCompetencySchema'
UpdateSubCompetencyRequest:
type: object
properties:
title:
type: string
example: updated title
CreateSubCompetencyRequest:
type: object
required:
- title
- label
properties:
title:
type: string
example: "sub competency title"
description:
type: string
example: "description"
all_learning_resource:
type: string
example: ""
label:
type: string
example: "sample label"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateSubCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully created the sub competency"
data:
$ref: '#/components/schemas/SubCompetencySchema'
DeleteSubCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully deleted the sub competency"
data:
type: object
GetSubCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the sub competency(s)"
data:
$ref: '#/components/schemas/SubCompetencySchema'
UpdateSubCompetencyResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the sub competency"
data:
allOf:
- $ref: '#/components/schemas/SubCompetencySchema'
- type: object
properties:
title:
type: string
example: "updated title"
AllLearningObjectiveResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the Learning objective(s)"
data:
type: array
items:
$ref: '#/components/schemas/LearningObjectiveSchema'
CreateLearningObjectiveRequest:
type: object
required:
- title
- text
properties:
title:
type: string
example: "learning objective title"
description:
type: string
example: "description"
text:
type: array
items:
type: string
example: ["paragraph 1", "paragraph 2"]
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateLearningObjectiveResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully created the learning objective"
data:
$ref: '#/components/schemas/LearningObjectiveSchema'
DeleteLearningObjectiveResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully deleted the learning objective"
data:
type: object
GetLearningObjectiveResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the learning objective(s)"
data:
$ref: "#/components/schemas/LearningObjectiveSchema"
UpdateLearningObjectiveRequest:
type: object
properties:
title:
type: string
example: updated title
UpdateLearningObjectiveResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the learning objective"
data:
allOf:
- $ref: '#/components/schemas/LearningObjectiveSchema'
- type: object
properties:
title:
type: string
example: "updated title"
createLUFromLO:
type: object
required:
- create_triples
properties:
created_by:
type: string
example: User 1
last_modified_by:
type: string
example: User 1
create_triples:
type: boolean
example: false
default: false
createLUFromLOResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "A job with name abcd-ajdf-sdfk-sdff has been started"
data:
type: object
properties:
job_name:
type: string
example: "abcd-ajdf-sdfk-sdff"
status:
type: string
example: "running"
AllLearningUnitResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the Learning unit(s)"
data:
type: array
items:
$ref: '#/components/schemas/LearningUnitSchema'
CreateLearningUnitRequest:
type: object
required:
- title
- text
properties:
title:
type: string
example: "learning unit title"
pdf_title:
type: string
example: ""
text:
type: array
items:
type: string
example: "Sample paragraph"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateLearningUnitResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully created the learning unit"
data:
$ref: '#/components/schemas/LearningUnitSchema'
DeleteLearningUnitResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully deleted the learning unit"
data:
type: object
GetLearningUnitResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the learning unit(s)"
data:
$ref: "#/components/schemas/LearningUnitSchema"
UpdateLearningUnitRequest:
type: object
properties:
title:
type: string
example: updated title
UpdateLearningUnitResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the learning unit"
data:
allOf:
- $ref: '#/components/schemas/LearningUnitSchema'
- type: object
properties:
title:
type: string
example: "updated title"
AllTriplesResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the triple(s)"
data:
type: array
items:
$ref: '#/components/schemas/TripleSchema'
CreateTripleRequest:
type: object
required:
- subject
- predicate
- object
- confidence
- sentence
properties:
subject:
type: string
example: "subject"
predicate:
type: string
example: "predicate"
object:
type: string
example: "object"
confidence:
type: number
example: 0.9
sentence:
type: string
example: "This sentence has subject predicate object."
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateTripleResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully created the learning unit"
data:
$ref: '#/components/schemas/TripleSchema'
DeleteTripleResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully deleted the triple"
data:
type: object
GetTripleResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the triple(s)"
data:
$ref: "#/components/schemas/TripleSchema"
UpdateTripleRequest:
type: object
properties:
subject:
type: string
example: updated subject
UpdateTripleResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully updated the triple"
data:
allOf:
- $ref: '#/components/schemas/TripleSchema'
- type: object
properties:
subject:
type: string
example: "updated subject"
TripleSchema:
type: object
properties:
subject:
type: string
example: "subject"
predicate:
type: string
example: "predicate"
object:
type: string
example: "object"
confidence:
type: number
example: 0.9
sentence:
type: string
example: "This sentence contains subject predicate object"
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
CreateTriplesForLU:
type: object
properties:
top_n:
type: number
example: 1
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
competencySchema:
type: object
properties:
title:
type: string
example: "competency title"
description:
type: string
example: "sample description"
is_valid:
type: boolean
example: true
id:
type: string
example: "fjaskdfjas"
type:
type: string
example: "competencies"
label:
type: string
example: "sample label"
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
SubCompetencySchema:
type: object
properties:
title:
type: string
example: "sub competency title"
description:
type: string
example: "description"
parent_node:
type: string
example: "competency/jfkdsafjalfd"
all_learning_resource:
type: string
example: ""
is_valid:
type: boolean
example: true
id:
type: string
example: "nczwaowmwvr"
label:
type: string
example: "sample label"
total_lus:
type: number
example: 10
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
LearningObjectiveSchema:
type: object
properties:
title:
type: string
example: "learning objective title"
description:
type: string
example: "description"
parent_node:
type: string
example: "sub_competency/jfkdsafjalfd"
is_valid:
type: boolean
example: true
id:
type: string
example: "nczwaowmwvr"
text:
type: array
items:
type: string
example: ["paragraph 1", "paragraph 2"]
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
LearningObjectivewithLearingUnitSchema:
type: object
properties:
title:
type: string
example: "learning objective title"
description:
type: string
example: "description"
parent_node:
type: string
example: "sub_competency/jfkdsafjalfd"
is_valid:
type: boolean
example: true
id:
type: string
example: "nczwaowmwvr"
text:
type: string
example: "sample text"
learningunits:
type: array
items:
$ref: '#/components/schemas/LearningUnitSchema'
LearningUnitSchema:
type: object
properties:
title:
type: string
example: "learning unit title"
parent_node:
type: string
example: "learning_objective/jfkdsafjalfd"
pdf_title:
type: string
example: ""
is_valid:
type: boolean
example: true
id:
type: string
example: "nczwaowmwvr"
text:
type: array
items:
type: string
example: "Amino acids are the monomers that comprise proteins."
topics:
type: array
items:
type: object
properties:
entity:
type: string
example : "Amino acids"
salience:
type: number
example : 0.35
created_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
last_modified_time:
type: string
example: "2021-08-12 15:24:53.674795+00:00"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
TopicTreePostRequest:
type: object
required:
- id
- level
- text
properties:
id:
type: string
example: "7xoVamA9KASRPkQNP5zg"
description: "Id of the parent node from which topic tree has to be created"
level:
type: string
example: "learning_objective"
description: "Level of the parent node from which topic tree has to be created"
text:
type: array
items:
type: string
example: "Sample paragraph"
description: "List of paragraphs to consider for topic tree creation"
created_by:
type: string
example: "User 1"
last_modified_by:
type: string
example: "User 1"
create_learning_units:
type: boolean
default: true
create_triples:
type: boolean
default: false
TopicTreeGetResponse:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: "Successfully fetched the Tree"
data:
$ref: '#/components/schemas/LearningObjectivewithLearingUnitSchema'
errorResponse:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Something went wrong
data:
type: object
nullable: true
example: null
badRequestResponse:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Validation failed
data:
type: object
nullable: true
example: null