"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.RoutingRules = void 0;
const routingRulesCreate_js_1 = require("../funcs/routingRulesCreate.js");
const routingRulesDelete_js_1 = require("../funcs/routingRulesDelete.js");
const routingRulesList_js_1 = require("../funcs/routingRulesList.js");
const routingRulesRetrieve_js_1 = require("../funcs/routingRulesRetrieve.js");
const routingRulesUpdate_js_1 = require("../funcs/routingRulesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class RoutingRules extends sdks_js_1.ClientSDK {
    /**
     * List routing rules
     *
     * @remarks
     * Returns a paginated list of routing rules for the current project, ordered by priority ascending.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, routingRulesList_js_1.routingRulesList)(this, request, options));
    }
    /**
     * Create routing rule
     *
     * @remarks
     * Creates a new routing rule with expression, models configuration, and priority settings.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, routingRulesCreate_js_1.routingRulesCreate)(this, request, options));
    }
    /**
     * Delete routing rule
     *
     * @remarks
     * Deletes an existing routing rule by ID.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, routingRulesDelete_js_1.routingRulesDelete)(this, request, options));
    }
    /**
     * Get routing rule
     *
     * @remarks
     * Retrieves the details of an existing routing rule by ID.
     */
    async retrieve(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, routingRulesRetrieve_js_1.routingRulesRetrieve)(this, request, options));
    }
    /**
     * Update routing rule
     *
     * @remarks
     * Partially updates an existing routing rule. Only provided fields are updated.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, routingRulesUpdate_js_1.routingRulesUpdate)(this, request, options));
    }
}
exports.RoutingRules = RoutingRules;
//# sourceMappingURL=routingrules.js.map