"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Policies = void 0;
const policiesCreate_js_1 = require("../funcs/policiesCreate.js");
const policiesDelete_js_1 = require("../funcs/policiesDelete.js");
const policiesList_js_1 = require("../funcs/policiesList.js");
const policiesRetrieve_js_1 = require("../funcs/policiesRetrieve.js");
const policiesUpdate_js_1 = require("../funcs/policiesUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Policies extends sdks_js_1.ClientSDK {
    /**
     * List policies
     *
     * @remarks
     * Returns a paginated list of policies for the current project.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, policiesList_js_1.policiesList)(this, request, options));
    }
    /**
     * Create policy
     *
     * @remarks
     * Creates a new router policy with model configuration, evaluators, retry settings, and limits.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, policiesCreate_js_1.policiesCreate)(this, request, options));
    }
    /**
     * Delete policy
     *
     * @remarks
     * Deletes an existing policy by ID.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, policiesDelete_js_1.policiesDelete)(this, request, options));
    }
    /**
     * Get policy
     *
     * @remarks
     * Retrieves the details of an existing policy by ID.
     */
    async retrieve(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, policiesRetrieve_js_1.policiesRetrieve)(this, request, options));
    }
    /**
     * Update policy
     *
     * @remarks
     * Partially updates an existing policy. Only provided fields are updated.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, policiesUpdate_js_1.policiesUpdate)(this, request, options));
    }
}
exports.Policies = Policies;
//# sourceMappingURL=policies.js.map