"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetadataRules = void 0;
const metadataRulesCreateMetadataRule_js_1 = require("../funcs/metadataRulesCreateMetadataRule.js");
const metadataRulesDeleteMetadataRule_js_1 = require("../funcs/metadataRulesDeleteMetadataRule.js");
const metadataRulesListMetadataRules_js_1 = require("../funcs/metadataRulesListMetadataRules.js");
const metadataRulesUpdateMetadataRule_js_1 = require("../funcs/metadataRulesUpdateMetadataRule.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class MetadataRules extends sdks_js_1.ClientSDK {
    /**
     * Creates a new conditional metadata rule
     *
     * @remarks
     * Creates a new metadata rule with the specified properties and configuration.
     */
    async createMetadataRule(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, metadataRulesCreateMetadataRule_js_1.metadataRulesCreateMetadataRule)(this, request, options));
    }
    /**
     * Retrieves a list of all conditional metadata rules defined in your accountcloudinary
     *
     * @remarks
     * Retrieves a list of all metadata rules in the cloud.
     */
    async listMetadataRules(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, metadataRulesListMetadataRules_js_1.metadataRulesListMetadataRules)(this, request, options));
    }
    /**
     * Updates an existing conditional metadata rule's definition
     *
     * @remarks
     * Updates the properties and configuration of an existing metadata rule.
     */
    async updateMetadataRule(externalId, metadataRuleUpdate, options) {
        return (0, fp_js_1.unwrapAsync)((0, metadataRulesUpdateMetadataRule_js_1.metadataRulesUpdateMetadataRule)(this, externalId, metadataRuleUpdate, options));
    }
    /**
     * Deletes a conditional metadata rule by its ID
     *
     * @remarks
     * Permanently deletes a metadata rule.
     */
    async deleteMetadataRule(externalId, options) {
        return (0, fp_js_1.unwrapAsync)((0, metadataRulesDeleteMetadataRule_js_1.metadataRulesDeleteMetadataRule)(this, externalId, options));
    }
}
exports.MetadataRules = MetadataRules;
//# sourceMappingURL=metadatarules.js.map