"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.GuardrailRules = void 0;
const guardrailRulesCreate_js_1 = require("../funcs/guardrailRulesCreate.js");
const guardrailRulesDelete_js_1 = require("../funcs/guardrailRulesDelete.js");
const guardrailRulesList_js_1 = require("../funcs/guardrailRulesList.js");
const guardrailRulesRetrieve_js_1 = require("../funcs/guardrailRulesRetrieve.js");
const guardrailRulesUpdate_js_1 = require("../funcs/guardrailRulesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class GuardrailRules extends sdks_js_1.ClientSDK {
    /**
     * List guardrail rules
     *
     * @remarks
     * Returns a paginated list of guardrail rules for the current project.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, guardrailRulesList_js_1.guardrailRulesList)(this, request, options));
    }
    /**
     * Create guardrail rule
     *
     * @remarks
     * Creates a new guardrail rule with expression, guardrails configuration, and timeout settings.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, guardrailRulesCreate_js_1.guardrailRulesCreate)(this, request, options));
    }
    /**
     * Delete guardrail rule
     *
     * @remarks
     * Deletes an existing guardrail rule by ID.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, guardrailRulesDelete_js_1.guardrailRulesDelete)(this, request, options));
    }
    /**
     * Get guardrail rule
     *
     * @remarks
     * Retrieves the details of an existing guardrail rule by ID.
     */
    async retrieve(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, guardrailRulesRetrieve_js_1.guardrailRulesRetrieve)(this, request, options));
    }
    /**
     * Update guardrail rule
     *
     * @remarks
     * Partially updates an existing guardrail rule. Only provided fields are updated.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, guardrailRulesUpdate_js_1.guardrailRulesUpdate)(this, request, options));
    }
}
exports.GuardrailRules = GuardrailRules;
//# sourceMappingURL=guardrailrules.js.map