"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Budgets = void 0;
const budgetsCreate_js_1 = require("../funcs/budgetsCreate.js");
const budgetsDelete_js_1 = require("../funcs/budgetsDelete.js");
const budgetsGet_js_1 = require("../funcs/budgetsGet.js");
const budgetsList_js_1 = require("../funcs/budgetsList.js");
const budgetsUpdate_js_1 = require("../funcs/budgetsUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Budgets extends sdks_js_1.ClientSDK {
    /**
     * List budget configurations
     *
     * @remarks
     * Retrieves a paginated list of budget configurations in your workspace. Supports filtering by type (contact or workspace). For workspace budgets, only one budget can exist per workspace.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, budgetsList_js_1.budgetsList)(this, request, options));
    }
    /**
     * Create budget configuration
     *
     * @remarks
     * Create a new budget configuration for a contact or workspace. For contacts, provide the external ID in entity_id field. For workspaces, only the type field is required (entity_id is not needed). Only one budget can exist per workspace.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, budgetsCreate_js_1.budgetsCreate)(this, request, options));
    }
    /**
     * Get budget configuration
     *
     * @remarks
     * Get budget configuration by ID.
     */
    async get(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, budgetsGet_js_1.budgetsGet)(this, request, options));
    }
    /**
     * Update budget configuration
     *
     * @remarks
     * Update budget configuration by ID
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, budgetsUpdate_js_1.budgetsUpdate)(this, request, options));
    }
    /**
     * Delete budget configuration
     *
     * @remarks
     * Delete budget configuration by ID
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, budgetsDelete_js_1.budgetsDelete)(this, request, options));
    }
}
exports.Budgets = Budgets;
//# sourceMappingURL=budgets.js.map