UNPKG

@datadog/datadog-api-client

Version:

OpenAPI client for Datadog APIs

252 lines 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.applySecurityAuthentication = exports.setServerVariables = exports.getServer = exports.createConfiguration = exports.Configuration = void 0; const isomorphic_fetch_1 = require("./http/isomorphic-fetch"); const servers_1 = require("./servers"); const auth_1 = require("./auth"); const logger_1 = require("../../logger"); class Configuration { constructor(baseServer, serverIndex, operationServerIndices, httpApi, authMethods, httpConfig, debug, enableRetry, maxRetries, backoffBase, backoffMultiplier, unstableOperations) { this.baseServer = baseServer; this.serverIndex = serverIndex; this.operationServerIndices = operationServerIndices; this.httpApi = httpApi; this.authMethods = authMethods; this.httpConfig = httpConfig; this.debug = debug; this.enableRetry = enableRetry; this.maxRetries = maxRetries; this.backoffBase = backoffBase; this.backoffMultiplier = backoffMultiplier; this.unstableOperations = unstableOperations; this.servers = []; for (const server of servers_1.servers) { this.servers.push(server.clone()); } this.operationServers = {}; for (const endpoint in servers_1.operationServers) { this.operationServers[endpoint] = []; for (const server of servers_1.operationServers[endpoint]) { this.operationServers[endpoint].push(server.clone()); } } if (backoffBase && backoffBase < 2) { throw new Error("Backoff base must be at least 2"); } } setServerVariables(serverVariables) { if (this.baseServer !== undefined) { this.baseServer.setVariables(serverVariables); return; } const index = this.serverIndex; this.servers[index].setVariables(serverVariables); for (const op in this.operationServers) { const index = op in this.operationServerIndices ? this.operationServerIndices[op] : this.serverIndex; this.operationServers[op][index].setVariables(serverVariables); } } getServer(endpoint) { if (this.baseServer !== undefined) { return this.baseServer; } const index = endpoint in this.operationServerIndices ? this.operationServerIndices[endpoint] : this.serverIndex; return endpoint in servers_1.operationServers ? this.operationServers[endpoint][index] : this.servers[index]; } } exports.Configuration = Configuration; /** * Configuration factory function * * If a property is not included in conf, a default is used: * - baseServer: null * - serverIndex: 0 * - operationServerIndices: {} * - httpApi: IsomorphicFetchHttpLibrary * - authMethods: {} * - httpConfig: {} * - debug: false * * @param conf partial configuration */ function createConfiguration(conf = {}) { if (typeof process !== "undefined" && process.env && process.env.DD_SITE) { const serverConf = servers_1.server1.getConfiguration(); servers_1.server1.setVariables({ site: process.env.DD_SITE }); for (const op in servers_1.operationServers) { servers_1.operationServers[op][0].setVariables({ site: process.env.DD_SITE }); } } const authMethods = conf.authMethods || {}; if (!("apiKeyAuth" in authMethods) && typeof process !== "undefined" && process.env && process.env.DD_API_KEY) { authMethods["apiKeyAuth"] = process.env.DD_API_KEY; } if (!("appKeyAuth" in authMethods) && typeof process !== "undefined" && process.env && process.env.DD_APP_KEY) { authMethods["appKeyAuth"] = process.env.DD_APP_KEY; } const configuration = new Configuration(conf.baseServer, conf.serverIndex || 0, conf.operationServerIndices || {}, conf.httpApi || new isomorphic_fetch_1.IsomorphicFetchHttpLibrary(), (0, auth_1.configureAuthMethods)(authMethods), conf.httpConfig || {}, conf.debug, conf.enableRetry || false, conf.maxRetries || 3, conf.backoffBase || 2, conf.backoffMultiplier || 2, { "v2.cancelFleetDeployment": false, "v2.createFleetDeploymentConfigure": false, "v2.getFleetDeployment": false, "v2.listFleetDeployments": false, "v2.createOpenAPI": false, "v2.deleteOpenAPI": false, "v2.getOpenAPI": false, "v2.listAPIs": false, "v2.updateOpenAPI": false, "v2.cancelHistoricalJob": false, "v2.convertJobResultToSignal": false, "v2.deleteHistoricalJob": false, "v2.getFinding": false, "v2.getHistoricalJob": false, "v2.getRuleVersionHistory": false, "v2.getSBOM": false, "v2.getSecurityMonitoringHistsignal": false, "v2.getSecurityMonitoringHistsignalsByJobId": false, "v2.listAssetsSBOMs": false, "v2.listFindings": false, "v2.listHistoricalJobs": false, "v2.listScannedAssetsMetadata": false, "v2.listSecurityMonitoringHistsignals": false, "v2.listVulnerabilities": false, "v2.listVulnerableAssets": false, "v2.muteFindings": false, "v2.runHistoricalJob": false, "v2.searchSecurityMonitoringHistsignals": false, "v2.createDataset": false, "v2.deleteDataset": false, "v2.getAllDatasets": false, "v2.getDataset": false, "v2.updateDataset": false, "v2.cancelDataDeletionRequest": false, "v2.createDataDeletionRequest": false, "v2.getDataDeletionRequests": false, "v2.createIncident": false, "v2.createIncidentImpact": false, "v2.createIncidentIntegration": false, "v2.createIncidentNotificationRule": false, "v2.createIncidentNotificationTemplate": false, "v2.createIncidentTodo": false, "v2.createIncidentType": false, "v2.deleteIncident": false, "v2.deleteIncidentImpact": false, "v2.deleteIncidentIntegration": false, "v2.deleteIncidentNotificationRule": false, "v2.deleteIncidentNotificationTemplate": false, "v2.deleteIncidentTodo": false, "v2.deleteIncidentType": false, "v2.getIncident": false, "v2.getIncidentIntegration": false, "v2.getIncidentNotificationRule": false, "v2.getIncidentNotificationTemplate": false, "v2.getIncidentTodo": false, "v2.getIncidentType": false, "v2.listIncidentAttachments": false, "v2.listIncidentImpacts": false, "v2.listIncidentIntegrations": false, "v2.listIncidentNotificationRules": false, "v2.listIncidentNotificationTemplates": false, "v2.listIncidents": false, "v2.listIncidentTodos": false, "v2.listIncidentTypes": false, "v2.searchIncidents": false, "v2.updateIncident": false, "v2.updateIncidentAttachments": false, "v2.updateIncidentIntegration": false, "v2.updateIncidentNotificationRule": false, "v2.updateIncidentNotificationTemplate": false, "v2.updateIncidentTodo": false, "v2.updateIncidentType": false, "v2.createMonitorUserTemplate": false, "v2.deleteMonitorUserTemplate": false, "v2.getMonitorUserTemplate": false, "v2.listMonitorUserTemplates": false, "v2.updateMonitorUserTemplate": false, "v2.validateExistingMonitorUserTemplate": false, "v2.validateMonitorUserTemplate": false, "v2.listRoleTemplates": false, "v2.createPipeline": false, "v2.deletePipeline": false, "v2.getPipeline": false, "v2.listPipelines": false, "v2.updatePipeline": false, "v2.validatePipeline": false, "v2.createScorecardOutcomesBatch": false, "v2.createScorecardRule": false, "v2.deleteScorecardRule": false, "v2.listScorecardOutcomes": false, "v2.listScorecardRules": false, "v2.updateScorecardOutcomesAsync": false, "v2.updateScorecardRule": false, "v2.createIncidentService": false, "v2.deleteIncidentService": false, "v2.getIncidentService": false, "v2.listIncidentServices": false, "v2.updateIncidentService": false, "v2.createSLOReportJob": false, "v2.getSLOReport": false, "v2.getSLOReportJobStatus": false, "v2.getSPARecommendations": false, "v2.createSCAResolveVulnerableSymbols": false, "v2.createSCAResult": false, "v2.addMemberTeam": false, "v2.listMemberTeams": false, "v2.removeMemberTeam": false, "v2.syncTeams": false, "v2.createIncidentTeam": false, "v2.deleteIncidentTeam": false, "v2.getIncidentTeam": false, "v2.listIncidentTeams": false, "v2.updateIncidentTeam": false, "v2.searchFlakyTests": false, }); configuration.httpApi.zstdCompressorCallback = conf.zstdCompressorCallback; configuration.httpApi.debug = configuration.debug; configuration.httpApi.enableRetry = configuration.enableRetry; configuration.httpApi.maxRetries = configuration.maxRetries; configuration.httpApi.backoffBase = configuration.backoffBase; configuration.httpApi.backoffMultiplier = configuration.backoffMultiplier; configuration.httpApi.fetch = conf.fetch; return configuration; } exports.createConfiguration = createConfiguration; function getServer(conf, endpoint) { logger_1.logger.warn("getServer is deprecated, please use Configuration.getServer instead."); return conf.getServer(endpoint); } exports.getServer = getServer; /** * Sets the server variables. * * @param serverVariables key/value object representing the server variables (site, name, protocol, ...) */ function setServerVariables(conf, serverVariables) { logger_1.logger.warn("setServerVariables is deprecated, please use Configuration.setServerVariables instead."); return conf.setServerVariables(serverVariables); } exports.setServerVariables = setServerVariables; /** * Apply given security authentication method if avaiable in configuration. */ function applySecurityAuthentication(conf, requestContext, authMethods) { for (const authMethodName of authMethods) { const authMethod = conf.authMethods[authMethodName]; if (authMethod) { authMethod.applySecurityAuthentication(requestContext); } } } exports.applySecurityAuthentication = applySecurityAuthentication; //# sourceMappingURL=configuration.js.map