"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Users = void 0;
const usersAssignResource_js_1 = require("../funcs/usersAssignResource.js");
const usersCreate_js_1 = require("../funcs/usersCreate.js");
const usersDelete_js_1 = require("../funcs/usersDelete.js");
const usersGet_js_1 = require("../funcs/usersGet.js");
const usersGetAll_js_1 = require("../funcs/usersGetAll.js");
const usersGetClasses_js_1 = require("../funcs/usersGetClasses.js");
const usersGetResources_js_1 = require("../funcs/usersGetResources.js");
const usersUpdate_js_1 = require("../funcs/usersUpdate.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 Users extends sdks_js_1.ClientSDK {
    /**
     * Get resources for a user
     *
     * @remarks
     * To get the collection of resources available to a specific user. If the corresponding record cannot be located, the api will return a 404 error code and message 'User not found.'
     */
    async getResources(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, usersGetResources_js_1.usersGetResources)(this, request, options));
    }
    /**
     * Assign a resource to a user
     *
     * @remarks
     * To assign an existing resource to the specified user. If the corresponding record cannot be located, the api will return a 404 error code and message 'User or resource not found.'
     */
    async assignResource(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, usersAssignResource_js_1.usersAssignResource)(this, request, options));
    }
    /**
     * Get all Users
     *
     * @remarks
     * To get all Users on the service provider.
     */
    async getAll(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, usersGetAll_js_1.usersGetAll)(this, request, options));
    }
    /**
     * Create a new User
     *
     * @remarks
     * To create a new User on the service provider. The responding system must return the set of sourcedIds that have been allocated to the newly created user record.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, usersCreate_js_1.usersCreate)(this, request, options));
    }
    /**
     * Get a specific User
     *
     * @remarks
     * To get a specific User on the service provider.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, usersGet_js_1.usersGet)(this, request, options));
    }
    /**
     * Update an existing User
     *
     * @remarks
     * To update an existing User on the service provider. 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, usersUpdate_js_1.usersUpdate)(this, request, options));
    }
    /**
     * Delete a User
     *
     * @remarks
     * Perform a soft delete on a specific User on the service provider. This operation changes the status of the User to 'tobedeleted'.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, usersDelete_js_1.usersDelete)(this, request, options));
    }
    /**
     * Get Classes for a User
     *
     * @remarks
     * To get the set of Classes a User is enrolled in.
     */
    async getClasses(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, usersGetClasses_js_1.usersGetClasses)(this, request, options));
    }
}
exports.Users = Users;
//# sourceMappingURL=users.js.map