"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Classes = void 0;
const classesAddStudent_js_1 = require("../funcs/classesAddStudent.js");
const classesAddTeacher_js_1 = require("../funcs/classesAddTeacher.js");
const classesCreate_js_1 = require("../funcs/classesCreate.js");
const classesCreateResults_js_1 = require("../funcs/classesCreateResults.js");
const classesDelete_js_1 = require("../funcs/classesDelete.js");
const classesGet_js_1 = require("../funcs/classesGet.js");
const classesGetAll_js_1 = require("../funcs/classesGetAll.js");
const classesGetCategories_js_1 = require("../funcs/classesGetCategories.js");
const classesGetScoreScales_js_1 = require("../funcs/classesGetScoreScales.js");
const classesGetStudentResults_js_1 = require("../funcs/classesGetStudentResults.js");
const classesGetStudents_js_1 = require("../funcs/classesGetStudents.js");
const classesGetTeachers_js_1 = require("../funcs/classesGetTeachers.js");
const classesListResources_js_1 = require("../funcs/classesListResources.js");
const classesUpdate_js_1 = require("../funcs/classesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
const operations_js_1 = require("../types/operations.js");
const classesresults_js_1 = require("./classesresults.js");
class Classes extends sdks_js_1.ClientSDK {
    get results() {
        return (this._results ?? (this._results = new classesresults_js_1.ClassesResults(this._options)));
    }
    /**
     * Create Results for an Academic Session for a Class
     *
     * @remarks
     * To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class or academic session not found.'
     */
    async createResults(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesCreateResults_js_1.classesCreateResults)(this, request, options));
    }
    /**
     * Get Results for a Student for a Class
     *
     * @remarks
     * Get the set of results on the service provider for a specific student and for a specific class. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class or student not found.'
     */
    async getStudentResults(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetStudentResults_js_1.classesGetStudentResults)(this, request, options));
    }
    /**
     * Get Categories for a Class
     *
     * @remarks
     * Get the set of categories on the service provider for a specific class. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class not found.'
     */
    async getCategories(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetCategories_js_1.classesGetCategories)(this, request, options));
    }
    /**
     * Get Score Scales for a Class
     *
     * @remarks
     * Get the set of scoreScales on the service provider for a specific class. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class not found.'
     */
    async getScoreScales(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetScoreScales_js_1.classesGetScoreScales)(this, request, options));
    }
    /**
     * Get all Classes
     *
     * @remarks
     * To get all Classes on the service provider.
     */
    async getAll(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetAll_js_1.classesGetAll)(this, request, options));
    }
    /**
     * Create a new Class
     *
     * @remarks
     * To create a new Class. The responding system must return the set of sourcedIds that have been allocated to the newly created class record.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesCreate_js_1.classesCreate)(this, request, options));
    }
    /**
     * Get a specific class
     *
     * @remarks
     * Get a specific Class on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class not found.'
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesGet_js_1.classesGet)(this, request, options));
    }
    /**
     * Update a Class
     *
     * @remarks
     * To update an existing Class. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesUpdate_js_1.classesUpdate)(this, request, options));
    }
    /**
     * Delete a Class
     *
     * @remarks
     * Perform a soft delete on a specific Class on the service provider. This operation changes the status of the Class to 'tobedeleted'.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesDelete_js_1.classesDelete)(this, request, options));
    }
    /**
     * Get resources for a class
     *
     * @remarks
     * To get the collection of resources available to a specific class. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class not found.'
     */
    async listResources(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesListResources_js_1.classesListResources)(this, request, options));
    }
    /**
     * Add a teacher to a Class
     *
     * @remarks
     * Enrolls a teacher to a specific Class. The responding system must return the set of sourcedIds that have been allocated to the newly created enrollment record.
     */
    async addTeacher(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesAddTeacher_js_1.classesAddTeacher)(this, request, options));
    }
    /**
     * Get Teachers for a specific Class in a School
     *
     * @remarks
     * To get all Teachers for a Class in a School on the service provider. If the specified school and/or class cannot be identified within the service provider, the api will return a 404 error code and message 'School or class not found.'
     */
    async getTeachers(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetTeachers_js_1.classesGetTeachers)(this, request, options));
    }
    /**
     * Get students for a Class
     *
     * @remarks
     * To get all students enrolled in a specific Class. If the corresponding record cannot be located, the api will return a 404 error code and message 'Class not found.'
     */
    async getStudents(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, classesGetStudents_js_1.classesGetStudents)(this, request, options));
    }
    /**
     * Add a student to a Class
     *
     * @remarks
     * Enrolls a student in a specific Class. The responding system must return the set of sourcedIds that have been allocated to the newly created enrollment record.
     */
    async addStudent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, classesAddStudent_js_1.classesAddStudent)(this, request, options));
    }
}
exports.Classes = Classes;
//# sourceMappingURL=classes.js.map