"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.tool$metadataRulesUpdateMetadataRule = void 0;
const z = __importStar(require("zod"));
const metadataRulesUpdateMetadataRule_js_1 = require("../../funcs/metadataRulesUpdateMetadataRule.js");
const components = __importStar(require("../../models/components/index.js"));
const tools_js_1 = require("../tools.js");
const args = {
    externalId: z.string(),
    metadataRuleUpdate: components.MetadataRuleUpdate$inboundSchema,
};
exports.tool$metadataRulesUpdateMetadataRule = {
    name: "update-metadata-rule",
    description: `Purpose: Updates the configuration of existing automated metadata rules, allowing you to modify conditions, results, execution order, or activation status without recreating the rule from scratch.
Usage: Use this to refine metadata automation logic as requirements evolve, fix rule conditions that aren't working correctly, change rule priorities through position updates, or temporarily disable rules. Essential for maintaining effective metadata workflows.
Example request: {"name": "Updated auto-tag rule", "condition": {"resource_type": "image", "tags": {"$in": ["electronics", "gadgets", "tech"]}}, "result": {"value": "technology"}, "state": "active", "position": 2}
Parameters: external_id(rule identifier from URL path), plus updatable properties: name(rule description), condition(trigger criteria), result(assigned value), state(active/inactive), position(execution order)
When Not to Use: Avoid updating rules that are actively processing uploads without testing. Don't change critical production rules during peak hours. Be careful with condition changes that might affect existing asset categorization.
Output: Returns updated metadata rule: external_id(unique identifier), metadata_field_id(target field), name(updated description), condition(updated criteria), result(updated value), state(current status), position(execution order), updated_at(modification time)
Example output: {"external_id":"rule_123","metadata_field_id":"product_category","name":"Updated auto-tag rule","condition":{"tags":{"$in":["electronics","gadgets","tech"]}},"result":{"value":"technology"},"state":"active","position":2,"updated_at":"2023-01-15T17:00:00Z"}
`,
    scopes: ["builder"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await (0, metadataRulesUpdateMetadataRule_js_1.metadataRulesUpdateMetadataRule)(client, args.externalId, args.metadataRuleUpdate, { fetchOptions: { signal: ctx.signal } }).$inspect();
        if (!result.ok) {
            return {
                content: [{ type: "text", text: result.error.message }],
                isError: true,
            };
        }
        const value = result.value;
        return (0, tools_js_1.formatResult)(value, apiCall);
    },
};
//# sourceMappingURL=metadataRulesUpdateMetadataRule.js.map