"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.SDK_METADATA = exports.ServerRegion = exports.ServerList = void 0;
exports.serverURLFromOptions = serverURLFromOptions;
const url_js_1 = require("./url.js");
/**
 * Contains the list of servers available to the SDK
 */
exports.ServerList = [
    /**
     * Regional API endpoints for optimal performance.
     */
    "https://{region}.cloudinary.com",
    /**
     * Custom domains for enterprise deployments.
     */
    "https://{host}",
];
/**
 * Regional endpoint selection
 */
exports.ServerRegion = {
    Api: "api",
    ApiEu: "api-eu",
    ApiAp: "api-ap",
};
function serverURLFromOptions(options) {
    let serverURL = options.serverURL;
    const serverParams = [
        {
            "region": options.region ?? "api",
        },
        {
            "host": options.host ?? "api.cloudinary.com",
        },
    ];
    let params = {};
    if (!serverURL) {
        const serverIdx = options.serverIdx ?? 0;
        if (serverIdx < 0 || serverIdx >= exports.ServerList.length) {
            throw new Error(`Invalid server index ${serverIdx}`);
        }
        serverURL = exports.ServerList[serverIdx] || "";
        params = serverParams[serverIdx] || {};
    }
    const u = (0, url_js_1.pathToFunc)(serverURL)(params);
    return new URL(u);
}
exports.SDK_METADATA = {
    language: "typescript",
    openapiDocVersion: "0.2.5",
    sdkVersion: "0.3.4",
    genVersion: "2.629.1",
    userAgent: "speakeasy-sdk/typescript 0.3.4 2.629.1 0.2.5 @cloudinary/environment-config",
};
//# sourceMappingURL=config.js.map