{"swaggerDoc":{"swagger":"2.0","info":{"description":"ContentService API","version":"1.0.0","title":"Swagger ContentService","contact":{"email":"info@laerdal.com"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"host":"contentservice.net","basePath":"/api/v1","tags":[{"name":"user","description":"Operations about user"},{"name":"report","description":"Reports about compliance & course failures"}],"schemes":["https"],"securityDefinitions":{"bearer":{"type":"oauth2","authorizationUrl":"http://swagger.io/api/oauth/dialog","flow":"implicit","scopes":{"write:users":"foo","read:users":"foo"}}},"security":[{"bearer":["write:users","read:users"]}],"paths":{"/hierarchies/tcid/{tcid}/organization/{orgid}":{"parameters":[{"in":"path","name":"tcid","description":"The tool consumer id of the CDP installation","type":"string","required":true},{"in":"path","name":"orgid","description":"The CDP id of the organization","type":"string","required":true}],"post":{"tags":["Organizations"],"summary":"Inserts a full hierarchy, provided in the request body.","description":"This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Hierarchy to insert","required":true,"schema":{"type":"object","required":["hierarchy"],"properties":{"hierarchy":{"$ref":"#/definitions/OrganizationHierarchy"}}}}],"responses":{"200":{"description":"Post succeeded","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"get":{"tags":["hierarchy"],"summary":"Gets the full hierarchy, of the organization associated with the access token.","description":"This API is consumed by 1STOP & LLP","responses":{"200":{"description":"Get succeeded","schema":{"type":"object","required":["hierarchy"],"properties":{"hierarchy":{"$ref":"#/definitions/OrganizationHierarchy"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The organization does not exist, or the organization contains no hierarchy","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/hierarchies/tcid/{tcid}/organization/{orgid}/org_unit/{id}":{"parameters":[{"name":"tcid","in":"path","description":"The tool_consumer_id.","required":true,"type":"string"},{"name":"orgid","in":"path","description":"The external id of the org unit to be modified or inserted.","required":true,"type":"string"},{"name":"id","in":"path","description":"The external id of the org unit to be modified or inserted.","required":true,"type":"string"}],"put":{"tags":["hierarchy"],"summary":"Updates an existing org unit, or inserts a new org unit if the provided org unit does not yet exist.","description":"This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Organization unit to insert","required":true,"schema":{"$ref":"#/definitions/OrganizationUnit"}}],"responses":{"200":{"description":"Put succeeded, the org unit was updated or inserted.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The parent id of the organization unit was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/hierarchies/tcid/{tcid}/organization/{orgid}/users/{lms_user_id}":{"parameters":[{"in":"path","name":"tcid","description":"The tool consumer id of the CDP installation","type":"string","required":true},{"in":"path","name":"orgid","description":"The CDP id of the organization","type":"string","required":true},{"in":"path","name":"lms_user_id","description":"The id associated with the user in the lms. Assumed to be unique within the organization","type":"string","required":true}],"put":{"tags":["hierarchy"],"summary":"Upsert a user that is associated with an organization unit.","description":"This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values for the user to be upserted.","required":true,"schema":{"$ref":"#/definitions/hierarchyUser"}}],"responses":{"200":{"description":"User upserted succesfully.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The org unit associated with the user was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"get":{"tags":["hierarchy"],"summary":"Gets a user by lms_user_id, that is associated with an organization unit.","parameters":[{"in":"query","name":"org_unit_id","description":"Not used - only specified for backwards compatibility","type":"string","required":false}],"responses":{"200":{"description":"The requested user","schema":{"$ref":"#/definitions/hierarchyUser"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The user was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"patch":{"tags":["hierarchy"],"summary":"To make the user active or inactive based on tcid, orgid and lms user id","description":"Update user status when user is inactive for more than 90 days \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","required":["active"],"properties":{"active":{"type":"boolean","example":false,"description":"Whether the user is active (true) or inactive (false)"}}}}],"responses":{"200":{"description":"Patch succeeded","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"delete":{"tags":["hierarchy"],"summary":"Deletes a user by lms_user_id, that is associated with an organization unit.","parameters":[{"in":"path","name":"lms_user_id","description":"The lms_user_id associated with the user.","required":true,"type":"string"}],"responses":{"200":{"description":"User deleted succesfully.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The user was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/hierarchies/orgCleanup/orgId/{org_id}/tcid/{tcid}":{"parameters":[{"in":"path","name":"org_id","description":"The CDP id of the organization","type":"string","required":true},{"in":"path","name":"tcid","description":"The tool consumer id of the CDP installation","type":"string","required":true}],"put":{"tags":["hierarchy"],"summary":"Deactivate these users ,org ,orgunits, and licenses based on passed parameters.","parameters":[{"in":"path","name":"org_id","description":"The CDP id of the organization","type":"string","required":true},{"in":"path","name":"tcid","description":"The tool consumer id of the CDP installation","type":"string","required":true}],"responses":{"200":{"description":"success.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The ORG was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/hierarchies/cs_idmap_organization/tcid/{tcid}/organization/{orgid}":{"parameters":[{"in":"path","name":"tcid","description":"The tool consumer id of the CDP installation","type":"string","required":true},{"in":"path","name":"orgid","description":"The org id of Organization migration","type":"string","required":true}],"post":{"tags":["hierarchy"],"summary":"Create new Org Unit based on passed parameters.","parameters":[{"in":"body","name":"body","description":"Organization, Institution and Department unit to insert","required":true,"schema":{"$ref":"#/definitions/csIdmapOrganizationUnit"}}],"responses":{"200":{"description":"success.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/hierarchies/organization/{orgid}/deactivate-org-units":{"parameters":[{"in":"path","name":"orgid","description":"The org id of Organization migration","type":"string","required":true}],"post":{"tags":["hierarchy"],"summary":"This API is used to deactivate the bulk org units based on organization","description":"Deactivate the bulk org units","parameters":[{"in":"body","name":"body","description":"Values to post","required":true,"schema":{"type":"object","properties":{"org_unit_external_id":{"type":"array","items":{"type":"string","description":"org_unit_external_id wants to deactivate"}},"tool_consumer_id":{"type":"string","description":"The tool consumer id of the CDP installation"}}}}],"responses":{"200":{"description":"Post succeeded","schema":{"type":"object","properties":{"code":{"type":"string","example":"Success"},"reason":{"type":"object","properties":{"no_of_units_requested":{"type":"number","example":5},"no_of_units_deactivated":{"type":"number","example":3,"description":"No of deactivated units count in org_unit"},"no_of_units_not_processed":{"type":"number","example":2,"description":"No of not processed units count in org_unit"},"deactivated_units":{"type":"array","items":{"type":"string"},"description":"No of deactivated units in org_unit"},"not_processed_units":{"type":"array","items":{"type":"string"},"description":"No of not processed units in org_unit"}}},"request_id":{"type":"string","description":"Id for the request made"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/launch_lti":{"post":{"tags":["LTI launch"],"summary":"LTI launch","description":"Endpoint for doing a LTI launch. Further description of LTI parameters can be found at https://www.imsglobal.org/specs/ltiv1p1/implementation-guide.\n This API is consumed by 1STOP & LLP","parameters":[{"in":"query","name":"manifest_id","description":"id of the course that is to be launched","required":true,"type":"string"},{"in":"query","name":"launch_as","enum":["learner","administrator"],"description":"If this is not included in the query then an intermediate page is shown where one can choose to launch as administratior (if has administrator role) or learner. This field is required if custom_return_format is set to JSON in order to skip intermediate page","type":"string"},{"in":"query","type":"string","name":"test_today_date","description":"Test date to simulate MOC launch across dates. Only applicable to test courses. Format is YYYY-MM-DD"},{"in":"body","name":"body","description":"Values for LTI launch","required":true,"schema":{"$ref":"#/definitions/LtiLaunch"}}],"responses":{"200":{"description":"Launch succeeded","schema":{"$ref":"#/definitions/LtiLaunchResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/migratedata":{"post":{"tags":["Migrate User"],"summary":"Migrate user from healthstream to CTC","description":"Endpoint for migrating user from healthstream to CTC. \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values for Migrate user","required":true,"schema":{"type":"object","properties":{"old_lms_user_id":{"type":"string","description":""},"old_org_id":{"type":"number","description":""},"old_ins_id":{"type":"number","description":""},"old_dept_id":{"type":"number","description":""},"old_tool_consumer_id":{"type":"string","description":""},"old_org_unit_id":{"type":"number","description":""},"new_lms_user_id":{"type":"string","description":""},"new_org_id":{"type":"number","description":""},"new_ins_id":{"type":"number","description":""},"new_dept_id":{"type":"number","description":""},"new_tool_consumer_id":{"type":"string","description":""},"new_org_unit_id":{"type":"number","description":""}}}}],"responses":{"200":{"description":"Migration succeeded"},"400":{"description":"Bad request"},"404":{"description":"Resource not found. Failed to select details due to invalid parameter values"}}}},"/revert_migratedata":{"post":{"tags":["Migrate User"],"summary":"Revert migrated user from CTC to healthstream","description":"Endpoint for reverting migrated user from CTC to healthstream","parameters":[{"in":"body","name":"body","description":"Values for revert migrated user","required":true,"schema":{"type":"object","properties":{"old_lms_user_id":{"type":"string","description":""},"old_org_id":{"type":"number","description":""},"old_ins_id":{"type":"number","description":""},"old_dept_id":{"type":"number","description":""},"old_tool_consumer_id":{"type":"string","description":""},"old_org_unit_id":{"type":"number","description":""},"new_lms_user_id":{"type":"string","description":""},"new_org_id":{"type":"number","description":""},"new_ins_id":{"type":"number","description":""},"new_dept_id":{"type":"number","description":""},"new_tool_consumer_id":{"type":"string","description":""},"new_org_unit_id":{"type":"number","description":""}}}}],"responses":{"200":{"description":"Migration succeeded"},"400":{"description":"Bad request"},"404":{"description":"Resource not found. Failed to select details due to invalid parameter values"}}}},"/bulk_assignments":{"patch":{"tags":["assignment"],"summary":"Updates multiple assignments","description":"Change the state of multiple assignment \n This API is consumed by 1STOP & LLP","operationId":"patchAssignmentsMultiple","parameters":[{"in":"query","name":"user_id","description":"The id of the user associated with the assignment.","required":true,"type":"string"},{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","properties":{"lis_result_sourcedid":{"type":"string","example":"444","description":"The lis identifier for the course"},"active":{"type":"boolean","example":true,"description":"The status of the attempt"}}}}],"responses":{"200":{"description":"Patch succeeded","schema":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"array"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/nrp_grp_deactivate":{"patch":{"tags":["Deactivation of session"],"summary":"Updates NRP GRP team work session","description":"Change the state of NRP GRP team work session \n This API is consumed by 1STOP & LLP","parameters":[{"in":"query","name":"session_id","description":"The id of the session associated with the NRP group attempt.","required":true,"type":"string"}],"responses":{"200":{"description":"Session deactivated succeeded","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"400":{"description":"Bad request","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"404":{"description":"Resource not found. Failed to select details","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"422":{"description":"Session already in deactivated stage","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"500":{"description":"Internal server error","schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}},"/assignments":{"patch":{"tags":["assignment"],"summary":"Updates assignments","description":"The only supported use for this endpoint at the moment is to complete a course \n This API is consumed by 1STOP & LLP","operationId":"patchAssignments","parameters":[{"in":"query","name":"lis_result_sourcedid","description":"The lis identifier for the course. This is returned during launch. When launching a curriculum, this value is also returned for every course inside the curriculum","required":true,"type":"string"},{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","properties":{"result_score":{"type":"number","example":1,"description":"The new score for the assignment. Only the value 1 is accepted at the moment"},"completed_at":{"type":"string","example":"2024-03-05 22:00:00.0000000","description":"The completion date & time in (UTC). Its optional Parameter"}}}}],"responses":{"200":{"description":"Patch succeeded","schema":{"type":"object","properties":{"code":{"type":"string"},"request_id":{"type":"string","description":"id for the request made"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"put":{"tags":["assignment"],"summary":"Updates assignments","description":"Change the state of an assignment\n This API is consumed by 1STOP & LLP","operationId":"putAssignments","parameters":[{"in":"query","name":"lis_result_sourcedid","description":"The lis identifier for the course. This is returned during launch. When launching a curriculum, this value is also returned for every course inside the curriculum","required":true,"type":"string"},{"in":"query","name":"user_id","description":"The id of the user associated with the assignment.","required":true,"type":"string"},{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","properties":{"active":{"type":"boolean","example":true,"description":"The status of the attempt"}}}}],"responses":{"200":{"description":"Put succeeded","schema":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"array"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/users/{lms_user_id}":{"patch":{"tags":["user"],"summary":"To make the single user active or inactive","parameters":[{"in":"path","name":"lms_user_id","description":"The lms user id of the user that needs to be modified","required":true,"type":"string"},{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","required":["active"],"properties":{"active":{"type":"boolean","example":false,"description":"Whether the user is active (true) or inactive (false)"}}}}],"responses":{"200":{"description":"Patch succeeded"},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}},"delete":{"tags":["user"],"summary":"To Delete a single user by lms_user_id","parameters":[{"in":"path","name":"lms_user_id","description":"The lms_user_id associated with the user.","required":true,"type":"string"}],"responses":{"200":{"description":"User deleted succesfully.","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"403":{"description":"The organization, that this bearer token is authorizing, was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"The user was not found.","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error.","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/vsiUpdate":{"patch":{"tags":["user"],"summary":"Update the VSI for a single user","description":"This API is consumed by 1STOP & LLP","operationId":"patchUserVSI","parameters":[{"in":"body","name":"body","description":"Values to patch","required":true,"schema":{"type":"object","properties":{"lms_user_id":{"type":"string","example":"12345678"},"vendor_sharable_id":{"type":"string","example":"12345678"},"tool_consumer_id":{"type":"string","example":"12345678"}}}}],"responses":{"200":{"description":"Patch succeeded","schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/users/{id}/compliance_history":{"get":{"tags":["user"],"summary":"Get a single user compliance details based on user id and manifest id","parameters":[{"name":"id","in":"path","description":"The id of the user that needs to be fetched","required":true,"type":"string"},{"name":"manifest_id","in":"query","type":"string","required":true,"description":"The id of the manifest for which to get the compliance history"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/UserComplianceHistory"}},"204":{"description":"No content"},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error"}}}},"/users/tcid/{tcid}/lms_user_id/{lms_user_id}/courses":{"get":{"tags":["user"],"summary":"Get a single user compliance details based on tcid and lms_user_id","description":"This API is consumed by 1STOP & LLP","parameters":[{"name":"lms_user_id","in":"path","description":"lms_user_id","required":true,"type":"string"},{"name":"tcid","in":"path","type":"string","required":true,"description":"User organization tool_consumer_id"},{"name":"includeEntryEcard","in":"query","type":"boolean","description":"include entry ecard in response","default":false},{"name":"skipInactiveLicenses","in":"query","type":"boolean","description":"skip inactivate licenses in response","default":false}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/UserCourseInfo"}},"204":{"description":"No content"},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error"}}}},"/tcs/{tcid}/organizations/{orgid}/reports/compliance":{"get":{"tags":["report"],"summary":"Get MOC compliance report for an organization based on tcid and orgid","description":"Get MOC compliance report for an organization \n This API is consumed by 1STOP & LLP","operationId":"getComplianceReport","parameters":[{"name":"tcid","in":"path","description":"The identifier for the CDP installation","required":true,"type":"string"},{"name":"orgid","in":"path","description":"The CDP identifier for the organization","required":true,"type":"string"},{"name":"test_today_date","in":"query","description":"returns the compliance report for the test date. Must be in YYYY-MM-DD format","required":false,"type":"string"},{"name":"manifest_id","in":"query","description":"manifest id of the course for the compliance report","required":false,"type":"string"},{"name":"org_unit_id","in":"query","description":"the compliance report for this org_unit_id and it children","required":false,"type":"string"},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ComplianceReport"}},"400":{"description":"The request was called with invalid parameters"},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"organization not found"},"500":{"description":"Internal Server Error"}}}},"/tcs/{tcid}/organizations/{orgid}/reports/failures":{"get":{"tags":["report"],"summary":"Get failure report for courses in a MOC curriculum based on tcid and orgid","description":"Get failure report for courses in a MOC curriculum \n This API is consumed by 1STOP & LLP","operationId":"getFailuresReport","parameters":[{"name":"tcid","in":"path","description":"The identifier for the CDP installation","required":true,"type":"string"},{"name":"orgid","in":"path","description":"The CDP identifier for the organization","required":true,"type":"string"},{"name":"min","in":"query","description":"only include courses that have failures more than or equal to this value","required":false,"type":"integer"},{"name":"complete","in":"query","description":"if set only course with this completion status will be returned, otherwise both completed and not completed course failures will be returned","required":false,"type":"boolean"},{"name":"manifest_id","in":"query","description":"manifest id of the course for which to look the failure report","required":false,"type":"string"},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]},{"name":"before","in":"query","description":"ISO 8601 date for which the failures should be before","required":false,"type":"string"},{"name":"after","in":"query","description":"ISO 8601 date for which the failures should be after","required":false,"type":"string"}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/FailureReports"}},"400":{"description":"The request was called with invalid parameters"},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"organization not found"},"500":{"description":"Internal Server Error"}}}},"/v2/tcs/{tcid}/organizations/{orgid}/reports/failures":{"get":{"tags":["report"],"summary":"Get failure report for courses in a MOC curriculum based on tcid and orgid (ALL)(version2)","description":"Get failure report for courses in a MOC curriculum \n This API is consumed by 1STOP & LLP","operationId":"getFailuresReport","parameters":[{"name":"tcid","in":"path","description":"The identifier for the CDP installation","required":true,"type":"string"},{"name":"orgid","in":"path","description":"The CDP identifier for the organization","required":true,"type":"string"},{"name":"min","in":"query","description":"only include courses that have failures more than or equal to this value","required":false,"type":"integer"},{"name":"complete","in":"query","description":"if set only course with this completion status will be returned, otherwise both completed and not completed course failures will be returned","required":false,"type":"boolean"},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]},{"name":"before","in":"query","description":"ISO 8601 date for which the modified date (UTC) should be before","required":false,"type":"string"},{"name":"after","in":"query","description":"ISO 8601 date for which the modified date (UTC) should be after","required":false,"type":"string"}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/FailureReports"}},"400":{"description":"The request was called with invalid parameters"},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"organization not found"},"500":{"description":"Internal Server Error"}}}},"/tcs/{tcid}/organizations/{orgid}/reports/course_schedule":{"get":{"tags":["report"],"summary":"Get users schedule course status","description":"Get users schedule course status","operationId":"getCourseSchedule","parameters":[{"name":"tcid","in":"path","description":"The identifier for the CDP installation","required":true,"type":"string"},{"name":"orgid","in":"path","description":"The CDP identifier for the organization","required":true,"type":"string"},{"name":"manifest_id","in":"query","description":"returns the course schedule report for the given manifest id","required":false,"type":"string"},{"name":"max_history_days","in":"query","description":"the max number of days for which course should be fetch, back in the history","required":false,"type":"integer","default":90},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/CourseSchedule"}},"400":{"description":"The request was called with invalid parameters"},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"user not found"},"500":{"description":"Internal Server Error"}}}},"/reports/compliance":{"get":{"tags":["report"],"summary":"Get MOC compliance report for an organization","description":"Get MOC compliance report for an organization","operationId":"getComplianceReport","parameters":[{"name":"institution_id","in":"query","description":"returns the compliance report for the given institution id in the organization","required":false,"type":"string"},{"name":"department_id","in":"query","description":"returns the compliance report for the given department id in the organization","required":false,"type":"string"},{"name":"test_today_date","in":"query","description":"returns the compliance report for the test date. Must be in YYYY-MM-DD format","required":false,"type":"string"},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ComplianceReport"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"organization not found"},"500":{"description":"Internal Server Error"}}}},"/reports/failures":{"get":{"tags":["report"],"summary":"Get All failure report for courses in a MOC curriculum","description":"Get failure report for courses in a MOC curriculum","operationId":"getFailuresReport","parameters":[{"name":"institution_id","in":"query","description":"returns the failure report for the given instution id in the organization","required":false,"type":"string"},{"name":"department_id","in":"query","description":"returns the failure report for the given department id in the organization","required":false,"type":"string"},{"name":"min","in":"query","description":"only include courses that have failures more than or equal to this value","required":false,"type":"integer"},{"name":"complete","in":"query","description":"if set only course with this completion status will be returned, otherwise both completed and not completed course failures will be returned","required":false,"type":"boolean"},{"name":"manifest_id","in":"query","description":"manifest id of the course for which to look the failure report","required":false,"type":"string"},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]},{"name":"before","in":"query","description":"ISO 8601 date for which the failures should be before","required":false,"type":"string"},{"name":"after","in":"query","description":"ISO 8601 date for which the failures should be after","required":false,"type":"string"}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/FailureReports"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"organization not found"},"500":{"description":"Internal Server Error"}}}},"/reports/course_schedule":{"get":{"tags":["report"],"summary":"Get users schedule course status","description":"Get users schedule course status","operationId":"getCourseSchedule","parameters":[{"name":"lms_user_id","in":"query","description":"returns the course schedule report for the given user id in the organization","required":false,"type":"string"},{"name":"institution_id","in":"query","description":"returns the course schedule report for the given instution id in the organization","required":false,"type":"string"},{"name":"department_id","in":"query","description":"returns the course schedule report for the given department id in the organization","required":false,"type":"string"},{"name":"manifest_id","in":"query","description":"returns the course schedule report for the given manifest id","required":false,"type":"string"},{"name":"max_history_days","in":"query","description":"the max number of days for which course should be fetch, back in the history","required":false,"type":"integer","default":90},{"name":"include_inactive_assignments","in":"query","description":"whether to include report for inactive assignments","required":false,"type":"string","default":"false","enum":["true","false"]}],"produces":["application/json"],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/CourseSchedule"}},"403":{"description":"The organization, that this bearer token is authorizing, was not found."},"404":{"description":"user not found"}}}},"/../controls/v1/whiteList/addUrls":{"post":{"tags":["whitelist Controls"],"summary":"Add URLs for whitelist verification","description":"URLs can be added against manifestId and this will trigger whitelist verification while course launch \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values for addUrls","required":true,"schema":{"$ref":"#/definitions/addUrlsBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/addUrlsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/whiteList/updateUrls":{"patch":{"tags":["whitelist Controls"],"summary":"Update urls","description":"Can update urls by supplying updated set of urls and manifestId \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values for updateUrls","required":true,"schema":{"$ref":"#/definitions/updateUrlsBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/updateUrlsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/whiteList/updateStatus":{"patch":{"tags":["whitelist Controls"],"summary":"Update Status","description":"Update isActive column by appending 0 or 1. Whitelist verification will be triggered only if isActive is 1.Get api will fetch urls only if its isActive is 1 \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"Values for updateStatus","required":true,"schema":{"$ref":"#/definitions/updateStatusBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/updateStatusResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/whiteList/getUrls":{"get":{"tags":["whitelist Controls"],"summary":"Fetch urls from db","description":"Fetch urls by manifestId. Get api will fetch urls only if its isActive is 1 \n This API is consumed by 1STOP & LLP","parameters":[{"name":"manifestId","in":"query","description":"ManifestId","required":true,"type":"string"}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/getUrlsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../complianceinfo/v1/certificate":{"get":{"tags":["Fetch Dates for certificate"],"summary":"Fetch dates for certificate basepath : cs-env/api/","description":"Fetch compliantUntilDate, courseCompletionDate, expirationDate, lastUpdateDate for certificate by appending attemptId. All dates are in format YYYY-MM-DD HH:mm:ss.SSSSSSS","parameters":[{"name":"attemptId","in":"query","description":"attemptId","required":true,"type":"string"}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/getCertificateDates"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../generate_lis_token":{"post":{"tags":["Generate LIS Token"],"summary":"Generate LIS Token","description":"Generate LIS token and insert/update in database. All dates are in format YYYY-MM-DD HH:mm:ss.SSSSSSS","responses":{"200":{"description":"Success Message","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../cron/v1/generate/lisToken":{"post":{"tags":["Generate LIS Token"],"summary":"Generate LIS Token with bearer token basepath : cs-env/api/","description":"Generate LIS token with bearer token and insert/update in database. All dates are in format YYYY-MM-DD HH:mm:ss.SSSSSSS","responses":{"200":{"description":"Success Message","schema":{"type":"object","properties":{"status":{"type":"string"}}}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/ltiDetails/add":{"post":{"tags":["Manage LTI Details of Third Party Courses"],"summary":"Add LTI Details","description":"Save LTI Url, auth key, auth secret against manifest id","parameters":[{"in":"body","name":"body","description":"LTI Details","required":true,"schema":{"$ref":"#/definitions/addLTIDetailsBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/addLTIDetailsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/ltiDetails/update":{"put":{"tags":["Manage LTI Details of Third Party Courses"],"summary":"Update LTI Details","description":"Update LTI Url, auth key, auth secret against manifest id","parameters":[{"in":"body","name":"body","description":"LTI Details","required":true,"schema":{"$ref":"#/definitions/addLTIDetailsBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/updateLTIDetailsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/ltiDetails/delete":{"delete":{"tags":["Manage LTI Details of Third Party Courses"],"summary":"Delete LTI Details of a manifest Id","description":"Delete LTI details against manifest id","parameters":[{"in":"body","name":"body","description":"LTI Details","required":true,"schema":{"$ref":"#/definitions/deleteLTIDetailsBody"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/deleteLTIDetailsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/../controls/v1/ltiDetails/get":{"get":{"tags":["Manage LTI Details of Third Party Courses"],"summary":"Get LTI Details of all added manifests","description":"Get LTI details","parameters":[],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/getLTIDetailsResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/team_reporter_topic_completion":{"post":{"tags":["Manage LTI Details of Team Reporter Topic"],"summary":"Complete team reporter topic in group","description":"Allows multiple users to complete team reporter topic in a session/group \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"TR Details","required":true,"schema":{"$ref":"#/definitions/trTopicCompletion"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/teamReporterSuccessResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/get_read_blob":{"post":{"tags":["Upload blob for other learners"],"summary":"Upload blob for other learners who completed TR topic in group","description":"Allows multiple users to upload blob team reporter topic who completed in other session/group \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"TR blob upload through session_id","required":true,"schema":{"$ref":"#/definitions/trBlobUpload"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/teamReporterBlobUploadSuccessResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/nrp_ile_topic_completion":{"post":{"tags":["Manage LTI Details of NRP ILE Topic"],"summary":"Complete NRP ILE topic","description":"Allows users to complete NRP ILE topic \n This API is consumed by 1STOP & LLP","parameters":[{"in":"body","name":"body","description":"NRP Details","required":true,"schema":{"$ref":"#/definitions/nrpTopicCompletion"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/nrpSuccessResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/users/merge_user_license":{"post":{"tags":["user"],"summary":"Merge the license of the secondary user with that of the primary user.","parameters":[{"in":"body","name":"body","description":"User merge Request","required":true,"schema":{"$ref":"#/definitions/userMergeDefinition"}}],"responses":{"200":{"description":"Success Message","schema":{"$ref":"#/definitions/userMergeSuccessResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/userMerge400ErrorMessage"}},"404":{"description":"Resource not found","schema":{"$ref":"#/definitions/userMerge404ErrorMessage"}},"500":{"description":"Internal server error","schema":{"$ref":"#/definitions/userMerge500ErrorMessage"}}}}},"/bulk_course_deactivation":{"post":{"tags":["assignment"],"summary":"Deactivate bulk courses","description":"Deactivate the bulk courses","parameters":[{"in":"body","name":"body","description":"Values to post","required":true,"schema":{"type":"object","properties":{"lis_result_sourcedid":{"type":"array","items":{"type":"string","description":"courses id wants to deactivate"}},"tool_consumer_id":{"type":"string","description":"The tool consumer id of the CDP installation"}}}}],"responses":{"200":{"description":"Post succeeded","schema":{"type":"object","properties":{"code":{"type":"string","example":"SUCCESS"},"reason":{"type":"object","properties":{"no_of_licences_requested":{"type":"number","example":5},"no_of_licences_deactivated":{"type":"number","example":3},"no_of_licences_not_processed":{"type":"number","example":2},"deactivated_licences":{"type":"array","items":{"type":"string"}},"not_processed_licences":{"type":"array","items":{"type":"string"}}}},"request_id":{"type":"string","description":"id for the request made"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}},"/users/bulk_user_deactivation":{"post":{"tags":["user"],"summary":"This API is used to deactivate the bulk users by the lms_user_ids","description":"Deactivate the bulk users","parameters":[{"in":"body","name":"body","description":"Values to post","required":true,"schema":{"type":"object","properties":{"lms_user_id":{"type":"array","items":{"type":"string","description":"lms_user_id wants to deactivate"}},"tool_consumer_id":{"type":"string","description":"The tool consumer id of the CDP installation"}}}}],"responses":{"200":{"description":"Post succeeded","schema":{"type":"object","properties":{"code":{"type":"string","example":"SUCCESS"},"reason":{"type":"object","properties":{"no_of_users_requested":{"type":"number","example":5},"no_of_users_deactivated":{"type":"number","example":3,"description":"No of deactivated users count in cs_user"},"no_of_users_not_processed":{"type":"number","example":2,"description":"No of not processed users count in cs_user"},"deactivated_users":{"type":"array","items":{"type":"string"},"description":"No of deactivated users in cs_user"},"not_processed_users":{"type":"array","items":{"type":"string"},"description":"No of not processed users in cs_user"}}},"request_id":{"type":"string","description":"id for the request made"}}}},"400":{"description":"The request was called with invalid parameters","schema":{"$ref":"#/definitions/ErrorMessage"}},"403":{"description":"Unauthorized. Organization included in token is different than assignment's organization","schema":{"$ref":"#/definitions/ErrorMessage"}},"404":{"description":"Assignment could not be found","schema":{"$ref":"#/definitions/ErrorMessage"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorMessage"}}}}}},"definitions":{"trTopicCompletion":{"type":"object","required":["org_id","course_manifest_id","manifest_id","tool_consumer_instance_guid","lis_outcome_service_url","tool_consumer_info_product_family_code","session_id","score","start_date","completed_at","is_perpetual","topic_id","topic_title","is_completion","learners"],"properties":{"org_id":{"type":"string","example":12345678,"description":"orgId is the external id of org"},"course_manifest_id":{"type":"string","example":"manifest/rqi_for_teams_perpetual_dummy_moc","description":"manifest id eg: rqi_for_teams_perpetual_dummy_moc"},"manifest_id":{"type":"string","example":"manifest/testcourse_lms_skip_test","description":"topic manifest id eg: rqi_for_teams_prep_dummy_moc"},"tool_consumer_instance_guid":{"type":"string","example":"launch-lti-html","description":"tool consumer instance guid is from org"},"lis_outcome_service_url":{"type":"string","example":"http://localhost:3000/moc_lis_endpoint","description":"http://localhost:3000/moc_lis_endpoint"},"tool_consumer_info_product_family_code":{"type":"string","example":"moc_lti_launch","description":"Ex: moc_lti_launch"},"session_id":{"type":"number","example":777,"description":"Ex: 777"},"score":{"type":"number","example":1,"description":"Ex: 1/0"},"start_date":{"type":"string","example":"2021-06-03 22:00:00.0000000","description":"Ex: 2021-06-03 22:00:00.0000000"},"completed_at":{"type":"number","example":"2021-12-24 00:00:00.0000000","description":"Ex: 2021-12-24 00:00:00.0000000"},"is_perpetual":{"type":"number","example":"1","description":"Ex: 1/0"},"topic_id":{"type":"string","example":"rqi_for_teams_prep_simulation","description":"Ex: rqi_for_teams_prep_simulation"},"topic_title":{"type":"string","example":"Manikin Activity: HP-CPR Team Simulation Assessment","description":"Manikin Activity: HP-CPR Team Simulation Assessment"},"is_completion":{"description":"if learner already completed the course with another session then true","example":true,"type":"boolean"},"learners":{"type":"array","items":{"$ref":"#/definitions/TeamReporterLearnerArray"}}}},"nrpTopicCompletion":{"type":"object","required":["org_id","manifest_id","tool_consumer_instance_guid","score","completed_at","topic_id","lms_user_id","license_id","resource_link_id","custom_start_date","status"],"properties":{"org_id":{"type":"string","example":12345678,"description":"orgId is the external id of org"},"manifest_id":{"type":"string","example":"manifest/testcourse_lms_skip_test","description":"manifest id eg: rqi_for_teams_prep_dummy_moc"},"tool_consumer_instance_guid":{"type":"string","example":"launch-lti-html","description":"tool consumer instance guid is from org"},"score":{"type":"number","example":1,"description":"Ex: 1/0"},"completed_at":{"type":"number","example":"2021-12-24 00:00:00.0000000","description":"Ex: 2021-12-24 00:00:00.0000000"},"topic_id":{"type":"string","example":"nrp_instructor_course","description":"Ex: nrp_instructor_course"},"lms_user_id":{"type":"string","example":"12345678","description":"Ex: 12345678"},"license_id":{"type":"string","example":"12345678","description":"Ex: 12345678"},"resource_link_id":{"type":"string","example":"F2773403-2B5F-EC11-B0E4-A86DAAAA00E0|nrp_instructor_course|1638313200000|253402300738000","description":"Ex: source id"},"custom_start_date":{"type":"string","example":"2021-11-30 23:00:00.0000000","description":"Ex: 2021-11-30 23:00:00.0000000"},"status":{"type":"string","example":"inprogress/completed","description":"Ex: inprogress/completed"}}},"nrpSuccessResponse":{"type":"object","required":["lms_user_id","status"],"properties":{"lms_user_id":{"type":"string","description":"User Id"},"status":{"type":"string","description":"success/inprogress"}}},"trBlobUpload":{"type":"object","required":["session_id"],"properties":{"session_id":{"type":"number","example":"777","description":"Ex: 777"}}},"teamReporterBlobUploadSuccessResponse":{"type":"object","required":["session_id"],"properties":{"session_id":{"type":"number","description":"Pass session_id to upload blob for other learners"}}},"TeamReporterLearnerArray":{"type":"object","additionalProperties":false,"required":["lms_user_id","license_id","resource_link_id","context_id","custom_start_date"],"properties":{"lms_user_id":{"type":"string","example":"User-12345678","description":"Contains user_id that which is passed from CDP"},"license_id":{"type":"string","example":"12345678","description":"Contains license that which is passed from CDP"},"resource_link_id":{"type":"string","example":"572B43EA-70EB-EB11-B0D7-482AE32D12A5|rqi_for_teams_prep_simulation|1577833200000|253402300738000","description":"contains topic id with combination of four paramters"},"context_id":{"type":"string","example":"572B43EA-70EB-EB11-B0D7-482AE32D12A5|rqi_for_teams_prep_simulation|1577833200000|253402300738000","description":"contains topic id with combination of four paramters"},"custom_start_date":{"type":"string","example":"2021-05-31 22:00:00.0000000","description":"Ex: 2021-05-31 22:00:00.0000000"}}},"teamReporterSuccessResponse":{"type":"object","required":["attempt_id","blob","lms_user_id","status","topic_attempt_id"],"properties":{"attempt_id":{"type":"string","description":"Main manifest attempt uuid"},"blob":{"type":"string","description":"http://localhost:3000/blob/upload?access=45FD778A-1F33-4139-86C2-9C300D3B6E06|637672133861220000|0e13d32ba19d96c9&sco=skip_test&tag=skills&session_id=777"},"lms_user_id":{"type":"string","description":"User Id"},"status":{"type":"string","description":"Success/Failed"},"topic_attempt_id":{"type":"string","description":"Topic manifest attempt uuid"}}},"hierarchyUser":{"type":"object","required":["org_unit_id"],"properties":{"lms_user_name":{"description":"The name of the user","example":"John Doe","type":["string","null"]},"lms_user_email":{"description":"The email of the user","example":"john.doe@maildomain.com","type":["string","null"]},"active":{"description":"Whether the user is active or not","example":true,"type":"boolean"},"notify_on_start":{"description":"Whether the user should get email notification when starting a curriculum","example":true,"type":"boolean"},"notify_before_due":{"description":"Whether the user should get email notification before a due date","example":true,"type":"boolean"},"notify_past_due":{"description":"Whether the user should get email notification when overdue","example":true,"type":"boolean"},"validation_code":{"description":"The users validation code","example":"123","type":["string","null"]},"job_category_name":{"description":"The job category name of the user","example":"healthcare","type":["string","null"]},"job_title_name":{"description":"The job title name of the user","example":"Pediatric Doctor","type":["string","null"]},"lms_user_name_given":{"description":"The given lms user name of the user","example":"John D","type":["string","null"]},"lms_user_name_family":{"description":"The user name family of the user","example":"Family","type":["string","null"]},"job_category_id":{"description":"The job category id of the user","example":"1001","type":["string","null"]},"job_title_id":{"description":"The job title id of the user","example":"10010","type":["string","null"]},"org_unit_id":{"description":"The external id of the org unit associated with this user","example":"12345678","type":"string"},"vendor_sharable_id":{"description":"The vendor sharable id of the user","example":"12345678","type":"string"}}},"OrganizationHierarchy":{"type":"object","required":["external_id","descendants","label","type","deleted"],"properties":{"external_id":{"type":"string","example":"hospital-1","description":"The id of the org unit. Expected to be unique within the organization."},"label":{"type":"string","example":"Hospital One","description":"Label for the org Unit"},"type":{"type":"string","example":"hospital","description":"An arbitrary string, describing the type of the org unit"},"time_zone":{"type":["string","null"],"example":"America/Whitehorse","description":"The time zone of this org unit."},"deleted":{"type":"boolean","example":false,"description":"Whether this org unit is deleted or not"},"descendants":{"type":"array","items":{"type":"object","properties":{"OrganizationHierarchy":{"type":"object"}}}}}},"OrganizationUnit":{"type":"object","required":["deleted"],"properties":{"parent_id":{"type":"string","example":"region-of-hospital-1","description":"The external id of this org units parent."},"label":{"type":"string","example":"Hospital One","description":"Label for the org Unit"},"type":{"type":"string","example":"hospital","description":"An arbitrary string, describing the type of the org unit"},"time_zone":{"type":["string","null"],"example":"America/Whitehorse","description":"The time zone of this org unit."},"deleted":{"type":"boolean","example":false,"description":"Whether this org unit is deleted or not"}}},"UserComplianceHistoryEvent":{"type":"object","additionalProperties":false,"required":["date_of_action","new_expiration_date","source_id","source_type","course_name","action"],"properties":{"date_of_action":{"type":["string","null"],"format":"date","example":"2017-01-01","description":"The date when the event occurred that caused compliance to change."},"new_expiration_date":{"type":["string","null"],"format":"date","example":"2017-01-01","description":"The new date to which the user is compliant."},"source_id":{"type":"string","example":"cognitive","description":"The id of the course completed that caused the compliance to change"},"source_type":{"type":"string","example":"moc","description":"Type of source"},"course_name":{"type":"string","description":"Name of the course, provided we have received it from the LMS."},"action":{"type":"string","example":"create|update|advance"}}},"UserComplianceHistory":{"type":"object","additionalProperties":false,"required":["user_id","events"],"properties":{"user_id":{"type":"string","example":"17b447ab-a50f-4447-b6a1-8a4222d74a1a"},"events":{"type":"array","items":{"$ref":"#/definitions/UserComplianceHistoryEvent"}}}},"UserCourseInfo":{"type":"object","additionalProperties":true,"required":["cs_user_availability","cs_user_status","department_id","department_name","email","institution_id","institution_name","lms_user_id","lmsuser_first_name","lmsuser_last_name","organization_id","organization_name","vendor_sharable_id","courses"],"properties":{"cs_user_availability":{"type":"boolean","example":true},"cs_user_status":{"type":"boolean","example":true},"department_id":{"type":"string","example":"12345678"},"department_name":{"type":"string","example":"12345678"},"email":{"type":"string","example":"12345678"},"institution_id":{"type":"string","example":"12345678"},"institution_name":{"type":"string","example":"12345678"},"lms_user_id":{"type":"string","example":"12345678"},"lmsuser_first_name":{"type":"string","example":"12345678"},"lmsuser_last_name":{"type":"string","example":"12345678"},"organization_id":{"type":"string","example":"12345678"},"organization_name":{"type":"string","example":"12345678"},"vendor_sharable_id":{"type":"string","example":"12345678"},"courses":{"type":"array","items":{"$ref":"#/definitions/UserCourseInfoArray"}}}},"UserCourseInfoArray":{"type":"object","additionalProperties":true,"required":["certificate_url","completion_date","completion_status","compliance_date","course_type","ecard_valid_till","last_activity_date","learning_cycles","license_id","license_status","manifest_id"],"properties":{"certificate_url":{"type":"string","example":"/en-US/getsignedcert/FAFFB157-1BB7-EC11-9E33-A86DAA7FCA5A|637958140799990000|febc4eb4aff60212/398/moc","description":"Contains certificate_url for the course"},"completion_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains completion_date for the course"},"completion_status":{"type":"boolean","example":true,"description":"Contains completion_status for the course"},"compliance_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains compliance_date for the course"},"course_type":{"type":"string","example":"TOPIC/COURSE","description":"Contains course_type for the course"},"ecard_valid_till":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains ecard_valid_till for the course"},"last_activity_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains last_activity_date for the course"},"license_id":{"type":"number","example":7777711,"description":"Contains license_id for the course"},"license_status":{"type":"boolean","example":true,"description":"Contains license_status for the course"},"manifest_id":{"type":"string","example":"rqi_bls_provider_moc_aha","description":"Contains manifest_id for the course"},"learning_cycles":{"type":"array","items":{"$ref":"#/definitions/UserCourseLearningCyclesArray"}}}},"UserCourseLearningCyclesArray":{"type":"object","additionalProperties":false,"required":["cycle","completion_date","completion_status","custom_end_date","custom_start_date","session"],"properties":{"cycle":{"type":"number","example":1,"description":"Contains cycle for the course"},"completion_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains completion_date for the course"},"completion_status":{"type":"boolean","example":true,"description":"Contains completion_status for the course"},"custom_end_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains custom_end_date for the course"},"custom_start_date":{"type":"string","example":"2022-04-01 04:00:00.0000000","description":"Contains custom_start_date for the course"},"session":{"type":"number","example":1,"description":"Contains session for the course"}}},"FailureReports":{"type":"array","description":"a list of failures","items":{"$ref":"#/definitions/FailureReport"}},"FailureReport":{"type":"object","additionalProperties":false,"required":["active","complete","course_id","course_start_date","failures","manifest_id","score","lms_assignment_id","lms_user_id","last_failure_date","attempt_id"],"properties":{"active":{"type":"boolean","description":"whether learner's attempt is active"},"complete":{"type":"boolean","description":"completion status of the course"},"completed_at":{"type":"string","description":"the completed date on which the user completed the topic"},"course_id":{"type":"string","description":"id of course in MOC manifest"},"course_start_date":{"type":"string","description":"start date of the course"},"failures":{"type":"integer","description":"number of times learner failed the course"},"manifest_id":{"type":"string","description":"manifest id of the MOC curriculum"},"score":{"type":"number","description":"score of the course. Value is between 0 and 1"},"lms_assignment_id":{"type":"string","description":"License id in LMS"},"lms_user_id":{"type":"string","description":"User's id in LMS"},"last_failure_date":{"type":"string","description":"the last date on which the user failed the course if any"},"attempt_id":{"type":"string","example":"03C0423E-F36B-1410-8003-800000000000","description":"the unique identifier for this curriculum attempt"},"institution_id":{"type":"string","description":"the lms id of learner's institution"},"department_id":{"type":"string","description":"the lms id of learner's department"}}},"Course":{"type":"object","properties":{"course_id":{"type":"string","example":"baseline","description":"the id of this course"},"course_name":{"type":"string","example":"Baseline Adult and Infant","description":"the name of this course"},"start_date":{"type":"string","example":"2018-03-31","description":"the start date for this course"},"due_date":{"type":"string","example":"2018-03-31","description":"the due date for this course"},"status":{"type":"string","enum":["completed","past_due_started","past_due_not_started","locked_by_past_due","started","not_started","locked_by_dependencies","upcoming"],"description":"the status for this course"}}},"CurrentCourse":{"type":"object","properties":{"course_id":{"type":"string","example":"baseline","description":"the id of this course"},"course_name":{"type":"string","example":"Baseline Adult and Infant","description":"the name of this course"},"start_date":{"type":"string","example":"2018-03-31","description":"the start date for this course"},"due_date":{"type":"string","example":"2018-03-31","description":"the due date for this course"},"started_date":{"type":"string","example":"2018-03-31","description":"the date this course was launched"},"status":{"type":"string","enum":["completed","past_due_started","past_due_not_started","locked_by_past_due","started","not_started","locked_by_dependencies","upcoming"],"description":"the status for this course"}}},"PastCourse":{"type":"object","properties":{"course_id":{"type":"string","example":"baseline","description":"the id of this course"},"course_name":{"type":"string","example":"Baseline Adult and Infant","description":"the name of this course"},"start_date":{"type":"string","example":"2018-03-31","description":"the start date for this course"},"due_date":{"type":"string","example":"2018-03-31","description":"the due date for this course"},"started_date":{"type":"string","example":"2018-03-31","description":"the date this course was launched"},"completed_date":{"type":"string","example":"2018-03-31","description":"the completion date for this course"},"status":{"type":"string","enum":["completed","past_due_started","past_due_not_started","locked_by_past_due","started","not_started","locked_by_dependencies","upcoming"],"description":"the status for this course"}}},"Curriculum":{"type":"object","additionalProperties":false,"required":["manifest_id","title","compliant_until","ecard_valid_until","all_courses_completed","attempt_id","active","first_attempt_date","compliance_status","current_courses","future_courses","past_courses"],"properties":{"manifest_id":{"type":"string","description":"manifest id of this curriculum"},"title":{"type":"string","description":"the title of this curriculum"},"compliant_until":{"type":["string","null"],"example":"2019-03-31","description":"the compliant until date for this curriculum"},"ecard_valid_until":{"type":["string","null"],"example":"2019-03-31","description":"the ecard valid until date"},"ecard_last_renewal_date":{"type":"string","example":"2018-03-31","description":"the date last time the ecard was renewed"},"all_courses_completed":{"type":"boolean","description":"whether all the courses in this curriculum are completed"},"attempt_id":{"type":"string","example":"03C0423E-F36B-1410-8003-800000000000","description":"the unique identifier for this curriculum attempt"},"active":{"type":"boolean","description":"whether the curriculum is active for this organization or not"},"first_attempt_date":{"type":"string","example":"2018-03-31","description":"the first date this curriculum has been attempted"},"compliance_status":{"type":"string","enum":["compliant","interim","uncompliant"],"description":"whether this user is compliant to this curriculum"},"current_courses":{"type":"array","description":"a list of courses currently available for the user","items":{"$ref":"#/definitions/CurrentCourse"}},"future_courses":{"type":"array","description":"a list of courses that will be available for the user in the future","items":{"$ref":"#/definitions/Course"}},"past_courses":{"type":"array","description":"a list of courses that the user has already passed","items":{"$ref":"#/definitions/PastCourse"}}}},"ScheduleUser":{"type":"object","additionalProperties":false,"properties":{"lms_user_id":{"type":"string","description":"the unique identifier for this user within this organization"},"user_id":{"type":"string","example":"04C0423E-F36B-1410-8003-800000000000","description":"the unique identifier for this"},"full_name":{"type":"string","example":"John Doe","description":"the full name for this user"},"email":{"type":"string","example":"john@doe.org","description":"the email for this user"},"user_active":{"type":"boolean","description":"whether the user is active or not"},"curriculums":{"type":"array","description":"a list of all the curriculums assigned to this user","items":{"$ref":"#/definitions/Curriculum"}}}},"CourseSchedule":{"type":"object","additionalProperties":false,"properties":{"organization_id":{"type":"string","description":"the lms organization id for all the user"},"organization_timezone":{"type":"string","description":"time zone of learner's organization"},"users":{"type":"array","description":"a list of users schedule within this organization","items":{"$ref":"#/definitions/ScheduleUser"}}}},"ComplianceReport":{"type":"object","additionalProperties":false,"properties":{"curricula":{"type":"array","additionalProperties":false,"items":{"required":["manifest_id","manifest_name","active_learners_count","inactive_learners_count","incompliant_learners_count","interim_learners_count"],"properties":{"manifest_id":{"type":"string","description":"manifest id of the curriculum"},"manifest_name":{"type":"string","description":"name of the curriculum defined in the manifest"},"active_learners_count":{"type":"integer","description":"number of active learners"},"inactive_learners_count":{"type":"integer","description":"number of inactive learners"},"incompliant_learners_count":{"type":"integer","description":"number of incompliant learners"},"interim_learners_count":{"type":"integer","description":"number of interim learners"}}}},"assignments":{"type":"array","additionalProperties":false,"items":{"required":["assignment_id","resource_link_id","manifest_id","manifest_name","organization_id","organization_timezone","user_id","active","moc_active","user_active","compliant_until","ecard_until","compliance_status","ecard_status"],"properties":{"assignment_id":{"type":"string","description":"id of the launch"},"resource_link_id":{"type":"string","description":"assignment id in the LMS"},"manifest_id":{"type":"string","description":"id of the manifest"},"manifest_name":{"type":"string","description":"name of the curriculum defined in the manifest"},"organization_id":{"type":"string","description":"the lms id of the organization"},"organization_name":{"type":"string","description":"name of learner's organization"},"organization_timezone":{"type":"string","description":"time zone of learner's organization"},"institution_id":{"type":"string","description":"the lms id of learner's institution"},"institution_name":{"type":"string","description":"name of learner's institution"},"department_id":{"type":"string","description":"the lms id of learner's department"},"department_name":{"type":"string","description":"name of learner's department"},"user_id":{"type":"string","description":"id of learner in CS"},"lms_user_id":{"type":"string","description":"id of learner provided by LMS"},"lms_user_name":{"type":"string","description":"name of learner provided by LMS"},"lms_user_email":{"type":"string","description":"email of learner provided by LMS"},"roles":{"type":"string","description":"comma separated values of roles associated with the launch"},"active":{"type":"boolean","description":"whether learner's attempt is active"},"moc_active":{"type":"boolean","description":"whether curriculum for the organization is active"},"user_active":{"type":"boolean","description":"whether learner is active"},"compliant_until":{"type":["string","null"],"description":"date until when learner is compliant"},"ecard_until":{"type":["string","null"],"description":"date until when learner's ecard is valid"},"last_completion":{"type":["string","null"],"description":"last activity date that made learner compliant"},"compliance_status":{"type":"boolean","description":"whether learner is compliant or not"},"ecard_status":{"type":"boolean","description":"whether ecard is valid or not"}}}}}},"ErrorMessage":{"type":"object","required":["request_id","code","reason"],"properties":{"request_id":{"type":"string","description":"id for the request made"},"code":{"type":"string","description":"codes that can provide further detail on error","enum":["Unauthorized","NotFoundError","InvalidInput","InternalServerError"]},"reason":{"type":"string","description":"Message describing the error"},"context":{"type":"object","description":"Includes other properties that may further improve error message"}}},"LtiLaunch":{"type":"object","required":["oauth_consumer_key","lis_result_sourcedid","lis_outcome_service_url","user_id","resource_link_id","context_id","tool_consumer_instance_guid","tool_consumer_info_product_family_code","oauth_timestamp","oauth_nonce"],"properties":{"context_id":{"type":"string","description":"id of the context to which assignment belongs"},"custom_organization_id":{"type":"string","description":"id of learner's organization. Not to be set if custom_org_unit_id is set."},"custom_organization_name":{"type":"string","description":"name of learner's organization"},"custom_lis_person_timezone":{"type":"string","description":"time zone of learner's organization"},"custom_institution_id":{"type":"string","description":"id of learner's institution. Not to be set if custom_org_unit_id is set."},"custom_institution_name":{"type":"string","description":"name of learner's institution"},"custom_department_id":{"type":"string","description":"id of learner's department. Not to be set if custom_org_unit_id is set."},"custom_org_unit_id":{"type":"string","description":"the organizational unit this learner belongs to, cannot be used with other institution / department ids. It is assumed that the underlying org_unit already exists on the content service. If it does not, an error will be returned."},"custom_department_name":{"type":"string","description":"name of learner's department"},"custom_job_category_id":{"type":"string","description":"id of learner's job category"},"custom_job_category":{"type":"string","description":"learner's job category. This is old field and will be removed at some point. Instead job_category_id and job_category_name should be used"},"custom_job_category_name":{"type":"string","description":"name of learner's job category"},"custom_job_title_id":{"type":"string","description":"id of learner's job title"},"custom_job_title":{"type":"string","description":"id of learner's job title. This is old field and will be removed at some point. Instead job_title_id and job_title_name should be used"},"custom_job_title_name":{"type":"string","description":"name of learner's job title"},"custom_assignment_name":{"type":"string","description":"name of the assignment as it appears in TC"},"custom_return_format":{"type":"string","enum":["JSON"],"description":"If passed the launch data will will be returned in JSON format else MOC GUI will be presented "},"complete_on_advance":{"type":"number","enum":[0,1],"description":"tells whether to send completion LIS message to TC on compliance update."},"launch_presentation_return_url":{"type":"string","description":"url in TC where TP can redirect"},"launch_presentation_locale":{"type":"string","description":"3rd party course can be utilizated"},"lis_result_sourcedid":{"type":"string","description":"this identifies a unique row and column within the TC gradebook"},"lis_outcome_service_url":{"type":"string","description":"this is the endpoint in TC which can be contacted by TP"},"user_id":{"type":"string","description":"user id of the learner in TC"},"lis_person_name_full":{"type":"string","description":"given name of learner"},"lis_person_name_given":{"type":"string","description":"family name of learner"},"lis_person_name_family":{"type":"string","description":"full name of learner"},"lis_person_contact_email_primary":{"type":"string","description":"email of learner"},"oauth_consumer_key":{"type":"string","description":"Consumer key needed for signing the launch. It is in format of organization_id|license_key"},"oauth_signature":{"type":"string","description":"signature of the request"},"oauth_nonce":{"type":"string","description":"nonce of the request"},"oauth_timestamp":{"type":"string","description":"timestamp of the request"},"resource_link_id":{"type":"string","description":"assignment id"},"roles":{"type":"string","description":"comma separated values of roles assigned to learner"},"role_scope_mentor":{"type":"string","description":"comma separated ids of learners on whose behalf assignment was launched"},"tool_consumer_instance_guid":{"type":"string","description":"id that identifies TC"},"tool_consumer_info_product_family_code":{"type":"string","description":"code for TC"},"international_course":{"type":"string","description":"This param only for internaltional course and need to pass 1"},"launch_lang":{"type":"string","description":"This param only for internaltional course to display selected language"}}},"LtiLaunchResponse":{"type":"object","properties":{"attemptDate":{"type":"string","description":"first date of the launch"},"attemptId":{"type":"string","description":"unique identifier for the launch"},"certificateUrl":{"type":"string","description":"url to get the certificate"},"compliance":{"type":"object","properties":{"complianceStatus":{"type":"string","enum":["interim","compliant","uncompliant"],"description":"compliance status"},"compliantOffset":{"type":"string","description":"number of months to be added to compliant until date for the ecard"},"compliantUntilDate":{"type":"string","description":"date until when learner is compliant"},"lastComplianceUpdateDate":{"type":"string","description":"date when compliance date advanced"},"certificateKey":{"type":"string","description":"key for the claimed certificate. If not present, certificate has not been claimed yet"}}},"courses":{"type":"object","properties":{"current":{"type":"array","items":{"$ref":"#/definitions/LtiLaunchResponseCourse"}},"future":{"type":"array","items":{"$ref":"#/definitions/LtiLaunchResponseCourse"}},"past":{"type":"array","items":{"$ref":"#/definitions/LtiLaunchResponseCourse"}}}},"currentCycle":{"type":"number","description":"denotes the current cycle"},"manifest":{"type":"object","properties":{"id":{"type":"string","description":"id of the manifest"},"title":{"type":"string","description":"title of the manifest"},"url":{"type":"string","description":"url from where manifest is located"}}},"testParams":{"type":"object","properties":{"manifest":{"type":"string","description":"manifest id of the launched curriculum"},"launch_as":{"type":"string","description":"whether course was launched as Administrator or Learner"},"test_today_date":{"type":"string","description":"date for testing."}}},"user":{"type":"object","properties":{"id":{"type":"string","description":"id of the learner"},"lmsUserId":{"type":"string","description":"learner id provided by TC"},"name":{"type":"string","description":"name of learner"},"fullName":{"type":"string","description":"full name of learner"},"email":{"type":"string","description":"email of learner"},"emailValidated":{"type":"boolean","description":"if learner email is validated or not"},"orgName":{"type":"string","description":"name of learner's organization"},"orgTimeZone":{"type":"string","description":"time zone of learner's organization"},"institutionName":{"type":"string","description":"name of learne's institution"},"emailPref":{"type":"object","properties":{"onStart":{"type":"number","description":"learner is to be notified when course becomes available"},"beforeDue":{"type":"number","description":"learner is to be notified when an incomplete course is about to approach due date"},"pastDue":{"type":"number","description":"learner is to be notified when an incomplete course is past due date"}}}}}}},"LtiLaunchResponseCourse":{"type":"object","properties":{"id":{"type":"string","description":"manifest id of course"},"title":{"type":"string","description":"title of course"},"launch":{"type":"object","description":"Use following values for LTI parameters for the course launch","properties":{"lti_link":{"type":"string","description":"launch url for course"},"oauth_consumer_key":{"type":"string"},"oauth_consumer_secret":{"type":"string"},"resource_link_id":{"type":"string"},"context_id":{"type":"string"},"tool_consumer_info_product_family_code":{"type":"string"},"tool_consumer_instance_guid":{"type":"string"},"lis_result_sourcedid":{"type":"string"},"lis_outcome_service_url":{"type":"string"},"custom_start_date":{"type":"string"},"custom_due_date":{"type":"string"}}},"locked":{"type":"boolean","description":"if course is cannot be launched because of it's dependencies are not met"},"depends_on":{"type":"array","items":{"type":"string","description":"ids of the courses that should be completed before this course can be launched"}},"start_dates":{"type":"array","items":{"type":"number","description":"start months of the coruse. Ex. if course is launched in January and value of this property is 0 and 3, then course starts in January and another instance will start on April"}},"due_period":{"type":"number","description":"duration of course in months"},"instance":{"type":"string","description":"current instance of course."},"startDate":{"type":"string","description":"start date of course"},"instanceStartPeriod":{},"dueDate":{"type":"string","description":"due date of course"},"dueDaysLeft":{"type":"string","description":"days left until due date"},"status":{"type":"string","description":"status of the course","enum":["completed","pastDueStarted","pastDueNotStarted","lockedByPastDue","started","notStarted","lockedByDependencies","upcoming"]},"canLaunch":{"type":"boolean","description":"whether course can be launched or not"},"allCourseMapIndex":{"type":"number"},"progress":{"type":"object","properties":{"attemptId":{"type":"string","description":"attempt id of the curriculum"},"courseId":{"type":"string","description":"id of the course in the curriculum"},"startDate":{"type":"string","description":"start date of the course"},"dueDate":{"type":"string","description":"due date of the course"},"completedDate":{"type":"string","description":"date at which learner completed the course"},"startedDate":{"type":"string","description":"date at which learner started the course"},"modifiedDate":{"type":"string","description":"date at which course progress was modified"}}}}},"addUrlsBody":{"type":"object","required":["manifestId","urls"],"properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"},"urls":{"type":"array","items":{"type":"string","description":"URL which needs to be checked in whitelist"}}}},"updateUrlsBody":{"type":"object","required":["manifestId","urls"],"properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"},"urls":{"type":"array","items":{"type":"string","description":"URL which needs to be checked in whitelist"}}}},"updateStatusBody":{"type":"object","required":["manifestId","isActive"],"properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"},"isActive":{"type":"number","description":"can have value 0 or 1"}}},"addUrlsResponse":{"type":"object","properties":{"message":{"type":"string","description":"URLS have been updated successfully"}}},"updateUrlsResponse":{"type":"object","properties":{"message":{"type":"string","description":"URLS have been updated successfully"}}},"updateStatusResponse":{"type":"object","properties":{"message":{"type":"string","description":"Successfully updated status"}}},"getUrlsResponse":{"type":"object","properties":{"isActive":{"type":"number","description":"0 for in active and 1 for active"},"urls":{"type":"array","items":{"type":"string","description":"urls"}}}},"getCertificateDates":{"type":"object","properties":{"data":{"type":"object","properties":{"attemptId":{"type":"string","description":"attemptId"},"compliantUntilDate":{"type":"string","description":"compliantUntilDate (format YYYY-MM-DD HH:mm:ss.SSSSSSS)"},"courseCompletionDate":{"type":"string","description":"Date of completion of last course in MOC (format YYYY-MM-DD HH:mm:ss.SSSSSSS)"},"expirationDate":{"type":"string","description":"Equivalent to ecard until of CS (format YYYY-MM-DD HH:mm:ss.SSSSSSS)"},"lastUpdateDate":{"type":"string","description":"When did last compliant until date got changed (format YYYY-MM-DD HH:mm:ss.SSSSSSS)"},"manifestId":{"type":"string","description":"manifestId"}}}}},"addLTIDetailsBody":{"type":"object","required":["manifestId","ltiUrl","authKey","authSecret"],"properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"},"ltiUrl":{"type":"string","description":"LTI URL of LMS eg: https://eu.example.com/integration/launch.php?plp=59&sign=dd"},"authKey":{"type":"string","description":"Auth key given by LMS eg: KUILJ"},"authSecret":{"type":"string","description":"Auth secret given by LMS id eg: utYttHTYuhyT"}}},"addLTIDetailsResponse":{"type":"object","properties":{"message":{"type":"string","description":"LTI Details are added for manifest id : x "}}},"updateLTIDetailsResponse":{"type":"object","properties":{"message":{"type":"string","description":"LTI Details are updated for manifest id : x "}}},"deleteLTIDetailsBody":{"type":"object","required":["manifestId"],"properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"}}},"deleteLTIDetailsResponse":{"type":"object","properties":{"message":{"type":"string","description":"LTI Details for manifest id : x is deleted"}}},"getLTIDetailsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"manifestId":{"type":"string","description":"manifest id eg: testcourse_moc_ready"},"ltiUrl":{"type":"string","description":"LTI URL of LMS eg: https://eu.example.com/integration/launch.php?plp=59&sign=dd"},"authKey":{"type":"string","description":"Auth key given by LMS eg: KUILJ"},"authSecret":{"type":"string","description":"Auth secret given by LMS id eg: utYttHTYuhyT"}}}}}},"userMergeDefinition":{"type":"object","required":["primary_lms_user_id","secondary_lms_user_id","org_id","tool_consumer_id"],"properties":{"primary_lms_user_id":{"type":"string","example":"PRIMARYLMSUSERID - 12345678","description":"The licenses are going to move to the lms_user_id specified."},"secondary_lms_user_id":{"type":"string","example":"SECONDARYLMSUSERID - 123345684","description":"The lms_user_id from which the licenses are being moved."},"org_id":{"type":"string","example":"ORGEXTERNALID - 12345","description":"The LMS user's Organization's external_id"},"tool_consumer_id":{"type":"string","example":"TOOLCONSUMERID - local-launch","description":"The Organization's tool_consumer_instance_guid id"}}},"userMergeSuccessResponse":{"type":"object","required":["code","reason","request_id"],"properties":{"code":{"type":"string","description":"SUCCESS response code","example":"string","enum":["SUCCESS","NO_LICENSE_FOUND"]},"reason":{"type":"string","description":"Reason for Success","example":"string","enum":["The secondary user's course has been merged with the primary user","For Secondary user {SECONDARYLMSUSERID}, No courses found & secondary user already in deactivated status","For Secondary user {SECONDARYLMSUSERID}, No courses found. Hence deactivating the secondary user"]},"request_id":{"type":"string","description":"id for the request made"}}},"userMerge400ErrorMessage":{"type":"object","required":["request_id","code","reason"],"properties":{"request_id":{"type":"string","description":"id for the request made"},"code":{"type":"string","description":"codes that can provide further detail on error","example":"string","enum":["BAD_REQUEST"]},"reason":{"type":"string","description":"Message describing the error","example":"string","enum":["Primary & Secondary lms_user_id should not be same","Error: Missing parameter(s). Please include all of the following parameters in the request body: primary_lms_user_id, secondary_lms_user_id, org_id, and tool_consumer_id"]}}},"userMerge404ErrorMessage":{"type":"object","required":["request_id","code","reason"],"properties":{"request_id":{"type":"string","description":"id for the request made"},"code":{"type":"string","description":"codes that can provide further detail on error","example":"string","enum":["ORG_NOT_EXIST","PRIMARY_USER_NOT_EXIST","PRIMARY_USER_NOT_ACTIVE","SECONDARY_USER_NOT_EXIST"]},"reason":{"type":"string","description":"Message describing the error","example":"string","enum":["Requested Org Id {ORGEXTERNALID} does not exist with Tool Consumer Id {TOOLCONSUMERID}","Requested Primary user {PRIMARYLMSUSERID} does not exist with requested Org Id {ORGEXTERNALID} & Tool Consumer Id {TOOLCONSUMERID}","Requested Primary user {PRIMARYLMSUSERID} is not in active status","Requested Secondary user {SECONDARYLMSUSERID} does not exist with requested Org Id {ORGEXTERNALID} & Tool Consumer Id {TOOLCONSUMERID}"]}}},"userMerge500ErrorMessage":{"type":"object","required":["request_id","code","reason"],"properties":{"request_id":{"type":"string","description":"id for the request made"},"code":{"type":"string","description":"codes that can provide further detail on error","example":"string","enum":["DUPLICATE_COURSE_MERGE","UNIQUE_INDEX_ERROR","UPDATE_QUERY_ERROR","FAILURE"]},"reason":{"type":"string","description":"Message describing the error","example":"string","enum":["Courses active in both users with manifestId: {MATCHMANIFESTLIST}. Hence Merge request not processed.","{UNIUEINDEX} UniqueIndex already exist in Primary User {PRIMARYLMSUSERID}","Error while runnig the update query, {ERROR}","Something went wrong, Error: {ERROR}"]}}},"csIdmapOrganizationUnit":{"type":"object","items":{"type":"object","required":["org_name","time_zone","data"],"properties":{"org_name":{"type":"string","example":"hospital","description":"The org_name of this org parent."},"time_zone":{"type":"string","example":"America/Whitehorse","description":"The time_zone of this org parent."},"data":{"type":"array","items":{"type":"object","required":["external_id","name","type"],"properties":{"external_id":{"type":"string","example":"763723","description":"The external id of this org units parent."},"parent_org_external_id":{"type":"string","example":"763723","description":"The type of this units."},"name":{"type":"string","example":"Hospital One","description":"name for the Unit"},"type":{"type":"string","example":"hospital","description":"An arbitrary string, describing the type of the org unit"}}}}}}}},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"}},"customOptions":{}}