"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$metadataFieldsCreateMetadataField = void 0;
const metadataFieldsCreateMetadataField_js_1 = require("../../funcs/metadataFieldsCreateMetadataField.js");
const components = __importStar(require("../../models/components/index.js"));
const tools_js_1 = require("../tools.js");
const args = {
    request: components.MetadataField$inboundSchema,
};
exports.tool$metadataFieldsCreateMetadataField = {
    name: "create-metadata-field",
    description: `Purpose: Creates a new structured metadata field that can be used to store custom information with your assets. Metadata fields define the schema for storing structured data like product information, content tags, or custom attributes that can be searched and filtered.
Usage: Use this to establish custom data structures for your assets, enabling rich content organization and searchability. Essential for content management workflows, asset categorization, and building custom asset management interfaces.
Example request: {"type": "string", "label": "Product Category", "external_id": "product_category", "mandatory": false, "default_value": "uncategorized"}
Parameters: type(field data type - string/integer/date/enum/set), label(human-readable field name), external_id(unique field identifier), mandatory(whether field is required), default_value(default field value), datasource(for enum/set types - predefined values), validation(validation rules), restrictions(field access restrictions)
When Not to Use: Don't create fields for data that changes frequently or is better suited for tags. Avoid creating too many fields as this can impact performance and user experience.
Output: Returns created metadata field configuration: external_id(unique identifier), type(field type), label(display name), mandatory(required status), default_value(default value), datasource(available values for enum/set types), validation(field rules), created_at(creation timestamp)
Example output: {"external_id":"product_category","type":"string","label":"Product Category","mandatory":false,"default_value":"uncategorized","created_at":"2023-01-15T10:00:00Z"}
`,
    scopes: ["admin"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await (0, metadataFieldsCreateMetadataField_js_1.metadataFieldsCreateMetadataField)(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=metadataFieldsCreateMetadataField.js.map