"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Terms = void 0;
const termsGet_js_1 = require("../funcs/termsGet.js");
const termsGetClasses_js_1 = require("../funcs/termsGetClasses.js");
const termsGetGradingPeriods_js_1 = require("../funcs/termsGetGradingPeriods.js");
const termsList_js_1 = require("../funcs/termsList.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");
class Terms extends sdks_js_1.ClientSDK {
    /**
     * Get all Terms
     *
     * @remarks
     * To get all Terms on the service provider.
     */
    async list(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, termsList_js_1.termsList)(this, request, options));
    }
    /**
     * Get a specific Term
     *
     * @remarks
     * To get a specific Term on the service provider.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, termsGet_js_1.termsGet)(this, request, options));
    }
    /**
     * Get Classes for a Term
     *
     * @remarks
     * To get the set of Classes related to a specific Term. If the specified term cannot be identified within the service provider, the api will return a 404 error code and message 'Term not found.'
     */
    async getClasses(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, termsGetClasses_js_1.termsGetClasses)(this, request, options));
    }
    /**
     * Get Grading Periods for a Term
     *
     * @remarks
     * To get the set of Grading Periods related to a specific Term. If the specified Term cannot be identified within the service provider, the api will return a 404 error code and message 'Term not found.'
     */
    async getGradingPeriods(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, termsGetGradingPeriods_js_1.termsGetGradingPeriods)(this, request, options));
    }
}
exports.Terms = Terms;
//# sourceMappingURL=terms.js.map