/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { resultsCreate } from "../funcs/resultsCreate.js";
import { resultsCreateForLineItem } from "../funcs/resultsCreateForLineItem.js";
import { resultsDelete } from "../funcs/resultsDelete.js";
import { resultsGet } from "../funcs/resultsGet.js";
import { resultsGetAll } from "../funcs/resultsGetAll.js";
import { resultsUpdate } from "../funcs/resultsUpdate.js";
import { ClientSDK } from "../lib/sdks.js";
import { unwrapAsync } from "../types/fp.js";
import { unwrapResultIterator } from "../types/operations.js";
export class Results extends ClientSDK {
    /**
     * Get all Results
     *
     * @remarks
     * Get all of the results on the service provider.
     */
    async getAll(request, options) {
        return unwrapResultIterator(resultsGetAll(this, request, options));
    }
    /**
     * Create a Result
     *
     * @remarks
     * To create a new result. The request body must include a `result` object with the following required fields: `lineItem` (with sourcedId), `student` (with sourcedId), `scoreStatus`, and `scoreDate`. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.
     */
    async create(request, options) {
        return unwrapAsync(resultsCreate(this, request, options));
    }
    /**
     * Get a Result
     *
     * @remarks
     * Get a specific result on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Result not found.'
     */
    async get(request, options) {
        return unwrapAsync(resultsGet(this, request, options));
    }
    /**
     * Update a Result
     *
     * @remarks
     * To update an existing result. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    async update(request, options) {
        return unwrapAsync(resultsUpdate(this, request, options));
    }
    /**
     * Delete a Result
     *
     * @remarks
     * Perform a soft delete on a specific Result on the service provider. This operation changes the status of the Result to 'tobedeleted'.
     */
    async delete(request, options) {
        return unwrapAsync(resultsDelete(this, request, options));
    }
    /**
     * Create a Result for a Line Item
     *
     * @remarks
     * To create a new result for a specific Line Item. 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 'Line item not found.'
     */
    async createForLineItem(request, options) {
        return unwrapAsync(resultsCreateForLineItem(this, request, options));
    }
}
//# sourceMappingURL=results.js.map