@datadog/datadog-api-client
Version:
OpenAPI client for Datadog APIs
252 lines • 10.7 kB
JavaScript
"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