"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Lms = void 0;
const lmsBatchUpsertContent_js_1 = require("../funcs/lmsBatchUpsertContent.js");
const lmsCreateUserAssignment_js_1 = require("../funcs/lmsCreateUserAssignment.js");
const lmsCreateUserCompletion_js_1 = require("../funcs/lmsCreateUserCompletion.js");
const lmsDeleteUserCompletion_js_1 = require("../funcs/lmsDeleteUserCompletion.js");
const lmsGetAssignment_js_1 = require("../funcs/lmsGetAssignment.js");
const lmsGetCategory_js_1 = require("../funcs/lmsGetCategory.js");
const lmsGetCompletion_js_1 = require("../funcs/lmsGetCompletion.js");
const lmsGetContent_js_1 = require("../funcs/lmsGetContent.js");
const lmsGetCourse_js_1 = require("../funcs/lmsGetCourse.js");
const lmsGetSkill_js_1 = require("../funcs/lmsGetSkill.js");
const lmsGetUser_js_1 = require("../funcs/lmsGetUser.js");
const lmsGetUserAssignment_js_1 = require("../funcs/lmsGetUserAssignment.js");
const lmsGetUserCompletion_js_1 = require("../funcs/lmsGetUserCompletion.js");
const lmsListAssignments_js_1 = require("../funcs/lmsListAssignments.js");
const lmsListCategories_js_1 = require("../funcs/lmsListCategories.js");
const lmsListCompletions_js_1 = require("../funcs/lmsListCompletions.js");
const lmsListContent_js_1 = require("../funcs/lmsListContent.js");
const lmsListCourses_js_1 = require("../funcs/lmsListCourses.js");
const lmsListSkills_js_1 = require("../funcs/lmsListSkills.js");
const lmsListUserAssignments_js_1 = require("../funcs/lmsListUserAssignments.js");
const lmsListUserCompletions_js_1 = require("../funcs/lmsListUserCompletions.js");
const lmsListUsers_js_1 = require("../funcs/lmsListUsers.js");
const lmsUpdateContent_js_1 = require("../funcs/lmsUpdateContent.js");
const lmsUpsertContent_js_1 = require("../funcs/lmsUpsertContent.js");
const sdks_js_1 = require("../lib/sdks.js");
const operations_js_1 = require("../sdk/types/operations.js");
const fp_js_1 = require("./types/fp.js");
class Lms extends sdks_js_1.ClientSDK {
    /**
     * Batch Upsert External Linking Learning Objects
     *
     * @remarks
     * Batch upsert multiple external linking learning objects that redirect users to a provider platform for consumption and progress tracking.
     *
     * See [here](https://docs.stackone.com/integration-guides/lms/external-content-providers/introduction) for more information about external linking learning objects.
     */
    async batchUpsertContent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsBatchUpsertContent_js_1.lmsBatchUpsertContent)(this, request, options));
    }
    /**
     * Create User Assignment
     *
     * @remarks
     * Create an assignment type learning record for a user.
     *
     * This is the record linking a user to a learning object.
     *
     * It can be pending or in progress.
     */
    async createUserAssignment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsCreateUserAssignment_js_1.lmsCreateUserAssignment)(this, request, options));
    }
    /**
     * Create User Completion
     *
     * @remarks
     * Create a completed learning record for a user.
     *
     * This is the record of a user completing a learning object.
     */
    async createUserCompletion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsCreateUserCompletion_js_1.lmsCreateUserCompletion)(this, request, options));
    }
    /**
     * Delete User Completion
     *
     * @remarks
     * Delete a completion type learning record for a user.
     *
     * This is a record of a user completing a learning object.
     */
    async deleteUserCompletion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsDeleteUserCompletion_js_1.lmsDeleteUserCompletion)(this, request, options));
    }
    /**
     * Get Assignment
     *
     * @remarks
     * Retrieve an assignment type learning record by its identifier.
     *
     * This is the record linking a user to a learning object.
     *
     * It can be pending, in progress, or completed.
     */
    async getAssignment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetAssignment_js_1.lmsGetAssignment)(this, request, options));
    }
    /**
     * Get Category
     */
    async getCategory(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetCategory_js_1.lmsGetCategory)(this, request, options));
    }
    /**
     * Get Completion
     *
     * @remarks
     * Retrieve a completed learning record by its identifier. This is the record of a user completing a learning object.
     */
    async getCompletion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetCompletion_js_1.lmsGetCompletion)(this, request, options));
    }
    /**
     * Get Content
     *
     * @remarks
     * Retrieve a content type learning object by its identifier.
     *
     * These are the most granular learning objects (e.g. video, document, podcast) on a platform.
     *
     * Only content objects for which the platform supports progress and completion tracking are returned.
     */
    async getContent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetContent_js_1.lmsGetContent)(this, request, options));
    }
    /**
     * Get Course
     *
     * @remarks
     * Retrieve a course type learning object by its identifier.
     *
     * These are collections of content type learning objects that are grouped together for a specific learning purpose.
     */
    async getCourse(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetCourse_js_1.lmsGetCourse)(this, request, options));
    }
    /**
     * Get Skill
     */
    async getSkill(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetSkill_js_1.lmsGetSkill)(this, request, options));
    }
    /**
     * Get User
     */
    async getUser(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetUser_js_1.lmsGetUser)(this, request, options));
    }
    /**
     * Get User Assignment
     *
     * @remarks
     * Retrieve an assignment type learning record for a user by its identifier.
     *
     * This is the record linking a user to a learning object.
     *
     * It can be pending, in progress, or completed.
     */
    async getUserAssignment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetUserAssignment_js_1.lmsGetUserAssignment)(this, request, options));
    }
    /**
     * Get User Completion
     *
     * @remarks
     * Retrieve a completed learning record for a user by its identifier.
     *
     * This is the record of a user completing a learning object.
     */
    async getUserCompletion(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsGetUserCompletion_js_1.lmsGetUserCompletion)(this, request, options));
    }
    /**
     * List Assignments
     *
     * @remarks
     * Retrieve a list of assignment type learning records.
     *
     * These are the records linking a user to a learning object.
     *
     * They can be pending, in progress, or completed.
     */
    async listAssignments(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListAssignments_js_1.lmsListAssignments)(this, request, options));
    }
    /**
     * List Categories
     */
    async listCategories(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListCategories_js_1.lmsListCategories)(this, request, options));
    }
    /**
     * List Completions
     *
     * @remarks
     * Retrieve a list of completed learning records. These are the records of a user completing learning objects.
     */
    async listCompletions(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListCompletions_js_1.lmsListCompletions)(this, request, options));
    }
    /**
     * List Content
     *
     * @remarks
     * Retrieve a list of content type learning objects.
     *
     * These are the most granular learning objects (e.g. video, document, podcast) on a platform.
     *
     * Only content objects for which the platform supports progress and completion tracking are returned.
     */
    async listContent(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListContent_js_1.lmsListContent)(this, request, options));
    }
    /**
     * List Courses
     *
     * @remarks
     * Retrieve a list of course type learning objects.
     *
     * These are collections of content type learning objects that are grouped together for a specific learning purpose.
     */
    async listCourses(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListCourses_js_1.lmsListCourses)(this, request, options));
    }
    /**
     * List Skills
     */
    async listSkills(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListSkills_js_1.lmsListSkills)(this, request, options));
    }
    /**
     * List User Assignments
     *
     * @remarks
     * Retrieve a list of assignment type learning records for a user.
     *
     * These are the records linking a user to learning objects.
     *
     * They can be pending, in progress, or completed.
     */
    async listUserAssignments(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListUserAssignments_js_1.lmsListUserAssignments)(this, request, options));
    }
    /**
     * List User Completions
     *
     * @remarks
     * Retrieve a list of completed learning records for a user.
     *
     * These are the records of a user completing learning objects.
     */
    async listUserCompletions(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListUserCompletions_js_1.lmsListUserCompletions)(this, request, options));
    }
    /**
     * List Users
     */
    async listUsers(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, lmsListUsers_js_1.lmsListUsers)(this, request, options));
    }
    /**
     * Update External Linking Learning Objects
     *
     * @remarks
     * Update an external linking learning object that redirects users to a provider platform for consumption and progress tracking.
     *
     * See [here](https://docs.stackone.com/integration-guides/lms/external-content-providers/introduction) for more information about external linking learning objects.
     */
    async updateContent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsUpdateContent_js_1.lmsUpdateContent)(this, request, options));
    }
    /**
     * Upsert External Linking Learning Objects
     *
     * @remarks
     * Create or update an external linking learning object that redirects users to a provider platform for consumption and progress tracking.
     *
     * See [here](https://docs.stackone.com/integration-guides/lms/external-content-providers/introduction) for more information about external linking learning objects.
     */
    async upsertContent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, lmsUpsertContent_js_1.lmsUpsertContent)(this, request, options));
    }
}
exports.Lms = Lms;
//# sourceMappingURL=lms.js.map