"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Schools = void 0;
const schoolsCreate_js_1 = require("../funcs/schoolsCreate.js");
const schoolsDelete_js_1 = require("../funcs/schoolsDelete.js");
const schoolsGet_js_1 = require("../funcs/schoolsGet.js");
const schoolsGetAll_js_1 = require("../funcs/schoolsGetAll.js");
const schoolsGetClasses_js_1 = require("../funcs/schoolsGetClasses.js");
const schoolsGetEnrollments_js_1 = require("../funcs/schoolsGetEnrollments.js");
const schoolsGetStudents_js_1 = require("../funcs/schoolsGetStudents.js");
const schoolsGetTeachers_js_1 = require("../funcs/schoolsGetTeachers.js");
const schoolsGetTerms_js_1 = require("../funcs/schoolsGetTerms.js");
const schoolsUpdate_js_1 = require("../funcs/schoolsUpdate.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 schoolscourses_js_1 = require("./schoolscourses.js");
const schoolslineitems_js_1 = require("./schoolslineitems.js");
class Schools extends sdks_js_1.ClientSDK {
    get lineItems() {
        return (this._lineItems ?? (this._lineItems = new schoolslineitems_js_1.SchoolsLineItems(this._options)));
    }
    get courses() {
        return (this._courses ?? (this._courses = new schoolscourses_js_1.SchoolsCourses(this._options)));
    }
    /**
     * Get all Schools
     *
     * @remarks
     * To get all Schools on the service provider.
     */
    async getAll(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetAll_js_1.schoolsGetAll)(this, request, options));
    }
    /**
     * Create a new School
     *
     * @remarks
     * To create a new School. The responding system must return the set of sourcedIds that have been allocated to the newly created school record.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, schoolsCreate_js_1.schoolsCreate)(this, request, options));
    }
    /**
     * Get a specific School
     *
     * @remarks
     * Get a specific School on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'School not found.'
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, schoolsGet_js_1.schoolsGet)(this, request, options));
    }
    /**
     * Update a School
     *
     * @remarks
     * To update an existing School. 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, schoolsUpdate_js_1.schoolsUpdate)(this, request, options));
    }
    /**
     * Delete a School
     *
     * @remarks
     * Perform a soft delete on a specific School on the service provider. The operation changes the status of the School to 'tobedeleted'.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, schoolsDelete_js_1.schoolsDelete)(this, request, options));
    }
    /**
     * Get all Classes for a School
     *
     * @remarks
     * To get all Classes for a School on the service provider. If the specified school cannot be identified within the service provider, the api will return a 404 error code and message 'School not found.'
     */
    async getClasses(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetClasses_js_1.schoolsGetClasses)(this, request, options));
    }
    /**
     * Get all Terms for a School
     *
     * @remarks
     * To get all Terms for a School on the service provider. If the specified school cannot be identified within the service provider, the api will return a 404 error code and message 'School not found.'
     */
    async getTerms(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetTerms_js_1.schoolsGetTerms)(this, request, options));
    }
    /**
     * Get all teachers for a school
     *
     * @remarks
     * To get all Teachers for a School on the service provider. If the specified school cannot be identified within the service provider, the api will return a 404 error code and message 'School not found.'
     */
    async getTeachers(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetTeachers_js_1.schoolsGetTeachers)(this, request, options));
    }
    /**
     * Get all Students for a School
     *
     * @remarks
     * To get all Students for a School on the service provider.
     */
    async getStudents(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetStudents_js_1.schoolsGetStudents)(this, request, options));
    }
    /**
     * Get all Enrollments for a School
     *
     * @remarks
     * To get all Enrollments for a School on the service provider. If the specified school cannot be identified within the service provider, the api will return a 404 error code and message 'School not found.'
     */
    async getEnrollments(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, schoolsGetEnrollments_js_1.schoolsGetEnrollments)(this, request, options));
    }
}
exports.Schools = Schools;
//# sourceMappingURL=schools.js.map