/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { termsGet } from "../funcs/termsGet.js";
import { termsGetClasses } from "../funcs/termsGetClasses.js";
import { termsGetGradingPeriods } from "../funcs/termsGetGradingPeriods.js";
import { termsList } from "../funcs/termsList.js";
import { ClientSDK } from "../lib/sdks.js";
import { unwrapAsync } from "../types/fp.js";
import { unwrapResultIterator } from "../types/operations.js";
export class Terms extends ClientSDK {
    /**
     * Get all Terms
     *
     * @remarks
     * To get all Terms on the service provider.
     */
    async list(request, options) {
        return unwrapResultIterator(termsList(this, request, options));
    }
    /**
     * Get a specific Term
     *
     * @remarks
     * To get a specific Term on the service provider.
     */
    async get(request, options) {
        return unwrapAsync(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 unwrapResultIterator(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 unwrapResultIterator(termsGetGradingPeriods(this, request, options));
    }
}
//# sourceMappingURL=terms.js.map