"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$metadataRulesCreateMetadataRule = void 0;
const metadataRulesCreateMetadataRule_js_1 = require("../../funcs/metadataRulesCreateMetadataRule.js");
const components = __importStar(require("../../models/components/index.js"));
const tools_js_1 = require("../tools.js");
const args = {
    request: components.MetadataRuleCreate$inboundSchema,
};
exports.tool$metadataRulesCreateMetadataRule = {
    name: "create-metadata-rule",
    description: `Purpose: Creates automated metadata rules that populate metadata fields based on asset properties or conditions, enabling dynamic content organization and reducing manual tagging overhead.
Usage: Use this to automate metadata assignment based on upload conditions like file names, folder paths, tags, or other asset properties. Essential for implementing consistent metadata workflows and automatic content categorization.
Example request: {"metadata_field_id": "product_category", "name": "Auto-tag electronics", "condition": {"resource_type": "image", "tags": {"$in": ["electronics", "gadgets"]}}, "result": {"value": "electronics"}, "state": "active", "position": 1}
Parameters: metadata_field_id(target field ID), name(rule description), condition(trigger criteria), result(value to assign), state(active/inactive), position(execution order)
When Not to Use: Don't create overlapping rules that might conflict. Avoid complex conditions that could slow down upload processing. Be careful with broad conditions that might incorrectly categorize assets.
Output: Returns created metadata rule: external_id(unique rule identifier), metadata_field_id(target field), name(rule name), condition(trigger criteria), result(assigned value), state(activation status), position(execution order), created_at(creation time)
Example output: {"external_id":"rule_123","metadata_field_id":"product_category","name":"Auto-tag electronics","condition":{"tags":{"$in":["electronics","gadgets"]}},"result":{"value":"electronics"},"state":"active","position":1,"created_at":"2023-01-15T16:00:00Z"}
`,
    scopes: ["builder"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await (0, metadataRulesCreateMetadataRule_js_1.metadataRulesCreateMetadataRule)(client, args.request, { 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=metadataRulesCreateMetadataRule.js.map