"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$metadataFieldsListMetadataFields = void 0;
const z = __importStar(require("zod"));
const metadataFieldsListMetadataFields_js_1 = require("../../funcs/metadataFieldsListMetadataFields.js");
const tools_js_1 = require("../tools.js");
const args = {
    externalIds: z.array(z.string()).optional(),
};
exports.tool$metadataFieldsListMetadataFields = {
    name: "list-metadata-fields",
    description: `Purpose: Retrieves a comprehensive list of all structured metadata fields configured in your Cloudinary account, providing the schema and configuration details for each field used to organize and categorize your assets.
Usage: Use this to discover available metadata fields, build dynamic forms, audit metadata configurations, or understand the data structure available for asset organization. Essential for metadata management interfaces and asset organization workflows.
Example request: GET /metadata_fields?external_ids=product_category,brand_name (no request body required)
Parameters: external_ids(filter by specific field identifiers - if not provided, returns all fields)
When Not to Use: Don't use for retrieving a single field's details (use get-metadata-field instead) or for high-frequency polling as metadata schemas change infrequently.
Output: Returns array of metadata field configurations: metadata_fields(array of field objects). Each field contains: external_id(unique identifier), type(field data type), label(human-readable name), mandatory(required status), default_value(default value), datasource(available values for enum/set), validation(field rules), created_at(creation timestamp), updated_at(last modification time)
Example output: {"metadata_fields":[{"external_id":"product_category","type":"string","label":"Product Category","mandatory":false,"default_value":"uncategorized"},{"external_id":"price","type":"integer","label":"Price","mandatory":true}]}
`,
    scopes: ["builder"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await (0, metadataFieldsListMetadataFields_js_1.metadataFieldsListMetadataFields)(client, args.externalIds, { 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=metadataFieldsListMetadataFields.js.map