"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$metadataFieldsUpdateMetadataField = void 0;
const z = __importStar(require("zod"));
const metadataFieldsUpdateMetadataField_js_1 = require("../../funcs/metadataFieldsUpdateMetadataField.js");
const components = __importStar(require("../../models/components/index.js"));
const tools_js_1 = require("../tools.js");
const args = {
    externalId: z.string(),
    metadataField: components.MetadataField$inboundSchema,
};
exports.tool$metadataFieldsUpdateMetadataField = {
    name: "update-metadata-field",
    description: `Purpose: Updates the configuration properties of an existing structured metadata field, allowing you to modify field labels, validation rules, default values, and datasource options without recreating the field.
Usage: Use this to refine metadata field configurations as requirements evolve, such as updating validation rules, changing labels, adding new enum values, or modifying default values. Essential for maintaining current metadata schemas and improving data quality.
Example request: {"label": "Updated Product Category", "default_value": "general", "datasource": {"values": [{"value": "electronics", "position": 1}, {"value": "clothing", "position": 2}, {"value": "books", "position": 3}]}}
Parameters: external_id(field identifier from URL path), plus updatable field properties: label(display name), default_value(default field value), datasource(available values for enum/set), validation(field constraints), mandatory(required status), restrictions(access controls)
When Not to Use: Avoid changing field types after creation as this can break existing data. Don't update fields that are actively used in production without careful testing. Be cautious with mandatory field changes as this affects existing assets.
Output: Returns updated metadata field configuration: external_id(unique identifier), type(field data type), label(updated name), mandatory(required status), default_value(updated default), datasource(updated values), validation(updated rules), updated_at(modification timestamp)
Example output: {"external_id":"product_category","type":"enum","label":"Updated Product Category","mandatory":false,"default_value":"general","datasource":{"values":[{"value":"electronics","position":1},{"value":"clothing","position":2},{"value":"books","position":3}]},"updated_at":"2023-01-15T14:30:00Z"}
`,
    scopes: ["admin"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await (0, metadataFieldsUpdateMetadataField_js_1.metadataFieldsUpdateMetadataField)(client, args.externalId, args.metadataField, { 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=metadataFieldsUpdateMetadataField.js.map