"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.UploadMappings = void 0;
const uploadMappingsCreateUploadMapping_js_1 = require("../funcs/uploadMappingsCreateUploadMapping.js");
const uploadMappingsDeleteUploadMapping_js_1 = require("../funcs/uploadMappingsDeleteUploadMapping.js");
const uploadMappingsListUploadMappings_js_1 = require("../funcs/uploadMappingsListUploadMappings.js");
const uploadMappingsReplaceUploadMappings_js_1 = require("../funcs/uploadMappingsReplaceUploadMappings.js");
const uploadMappingsUpdateUploadMapping_js_1 = require("../funcs/uploadMappingsUpdateUploadMapping.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class UploadMappings extends sdks_js_1.ClientSDK {
    /**
     * Retrieves a list of all upload mapping rules configured in your Cloudinary product environment
     *
     * @remarks
     * Returns a list of all upload mappings defined for your account.
     * Upload mappings allow you to map an upload preset to a specific folder and URL template.
     */
    async listUploadMappings(folder, nextCursor, maxResults, options) {
        return (0, fp_js_1.unwrapAsync)((0, uploadMappingsListUploadMappings_js_1.uploadMappingsListUploadMappings)(this, folder, nextCursor, maxResults, options));
    }
    /**
     * Creates a new upload mapping
     *
     * @remarks
     * Creates a new upload mapping for the specified folder
     */
    async createUploadMapping(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, uploadMappingsCreateUploadMapping_js_1.uploadMappingsCreateUploadMapping)(this, request, options));
    }
    /**
     * Updates an existing upload mapping by changing its remote URL template for a given
     *
     * @remarks
     * Updates the URL template for an existing folder mapping
     */
    async updateUploadMapping(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, uploadMappingsUpdateUploadMapping_js_1.uploadMappingsUpdateUploadMapping)(this, request, options));
    }
    /**
     * Deletes a folder upload mapping
     *
     * @remarks
     * Permanently deletes the upload mapping for the specified folder
     */
    async deleteUploadMapping(folder, options) {
        return (0, fp_js_1.unwrapAsync)((0, uploadMappingsDeleteUploadMapping_js_1.uploadMappingsDeleteUploadMapping)(this, folder, options));
    }
    /**
     * Replaces all upload mappings
     */
    async replaceUploadMappings(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, uploadMappingsReplaceUploadMappings_js_1.uploadMappingsReplaceUploadMappings)(this, request, options));
    }
}
exports.UploadMappings = UploadMappings;
//# sourceMappingURL=uploadmappings.js.map