"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Projects = void 0;
const projectsCreate_js_1 = require("../funcs/projectsCreate.js");
const projectsDelete_js_1 = require("../funcs/projectsDelete.js");
const projectsGet_js_1 = require("../funcs/projectsGet.js");
const projectsList_js_1 = require("../funcs/projectsList.js");
const projectsUpdate_js_1 = require("../funcs/projectsUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Projects extends sdks_js_1.ClientSDK {
    /**
     * List all projects
     *
     * @remarks
     * Returns projects visible to the current workspace, ordered by creation time with the newest project first. Use `starting_after` or `ending_before` to page through large collections.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, projectsList_js_1.projectsList)(this, request, options));
    }
    /**
     * Create a new project
     *
     * @remarks
     * Creates a project in the current workspace. Projects are workspace-level containers for resources such as skills, deployments, datasets, rules, and related team access.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, projectsCreate_js_1.projectsCreate)(this, request, options));
    }
    /**
     * Retrieve a project
     *
     * @remarks
     * Retrieves the details of an existing project by its unique project ID.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, projectsGet_js_1.projectsGet)(this, request, options));
    }
    /**
     * Delete a project
     *
     * @remarks
     * Deletes a project from the workspace. The response body is empty when the delete succeeds.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, projectsDelete_js_1.projectsDelete)(this, request, options));
    }
    /**
     * Update a project
     *
     * @remarks
     * Updates the specified project by setting the values of the parameters passed.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, projectsUpdate_js_1.projectsUpdate)(this, request, options));
    }
}
exports.Projects = Projects;
//# sourceMappingURL=projects.js.map