in sdk/metricsadvisor/ai-metrics-advisor/src/transforms.ts [874:1192]
export function fromServiceDataFeedDetailUnion(
original: ServiceDataFeedDetailUnion,
): MetricsAdvisorDataFeed {
const metricMap: Record<string, string> = {};
for (const metric of original.metrics) {
metricMap[metric.name] = metric.id!;
}
const common = {
id: original.dataFeedId!,
name: original.dataFeedName,
metricIds: metricMap,
createdOn: original.createdTime!,
status: original.status!,
isAdmin: original.isAdmin!,
creator: original.creator!,
schema: {
metrics: original.metrics,
dimensions: original.dimension,
timestampColumn: original.timestampColumn,
},
granularity: fromServiceGranularity(original.granularityName, original.granularityAmount),
ingestionSettings: {
ingestionStartTime: original.dataStartFrom,
ingestionStartOffsetInSeconds: original.startOffsetInSeconds,
dataSourceRequestConcurrency: original.maxConcurrency,
ingestionRetryDelayInSeconds: original.minRetryIntervalInSeconds,
stopRetryAfterInSeconds: original.stopRetryAfterInSeconds,
},
description: original.dataFeedDescription,
actionLinkTemplate: original.actionLinkTemplate,
rollupSettings: toRollupSettings(original),
missingDataPointFillSettings:
original.fillMissingPointType === "CustomValue"
? {
fillType: original.fillMissingPointType!,
customFillValue: original.fillMissingPointValue!,
}
: {
fillType: original.fillMissingPointType!,
},
accessMode: original.viewMode,
admins: original.admins,
viewers: original.viewers,
};
switch (original.dataSourceType) {
case "AzureApplicationInsights": {
const orig = original as ServiceAzureApplicationInsightsDataFeed;
const result1: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "AzureApplicationInsights",
azureCloud: orig.dataSourceParameter.azureCloud!,
applicationId: orig.dataSourceParameter.applicationId!,
apiKey: orig.dataSourceParameter.apiKey,
query: orig.dataSourceParameter.query,
authenticationType: "Basic",
},
};
return result1;
}
case "AzureBlob": {
const orig2 = original as ServiceAzureBlobDataFeed;
let auth: { authenticationType: "Basic" } | { authenticationType: "ManagedIdentity" };
if (!original.authenticationType) {
auth = { authenticationType: "Basic" };
} else if (
original.authenticationType === "Basic" ||
original.authenticationType === "ManagedIdentity"
) {
auth = { authenticationType: original.authenticationType };
} else {
throw new Error(`Unexpected authentication type: '${original.authenticationType}'`);
}
const source: AzureBlobDataFeedSource = {
dataSourceType: "AzureBlob",
blobTemplate: orig2.dataSourceParameter.blobTemplate,
connectionString: orig2.dataSourceParameter.connectionString!,
container: orig2.dataSourceParameter.container,
...auth,
};
const result2: MetricsAdvisorDataFeed = {
...common,
source,
};
return result2;
}
case "AzureCosmosDB": {
const orig3 = original as ServiceAzureCosmosDBDataFeed;
const result3: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "AzureCosmosDB",
authenticationType: "Basic",
...orig3.dataSourceParameter,
},
};
return result3;
}
case "AzureDataExplorer": {
const orig4 = original as ServiceAzureDataExplorerDataFeed;
let auth: AzureDataExplorerAuthTypes;
if (!original.authenticationType) {
auth = { authenticationType: "Basic" };
} else if (
original.authenticationType === "Basic" ||
original.authenticationType === "ManagedIdentity"
) {
auth = { authenticationType: original.authenticationType };
} else if (
original.authenticationType === "ServicePrincipal" ||
original.authenticationType === "ServicePrincipalInKV"
) {
auth = {
authenticationType: original.authenticationType,
credentialId: original.credentialId!,
};
} else {
throw new Error(`Unexpected authentication type: '${original.authenticationType}'`);
}
const source: AzureDataExplorerDataFeedSource = {
dataSourceType: "AzureDataExplorer",
connectionString: orig4.dataSourceParameter.connectionString!,
query: orig4.dataSourceParameter.query,
...auth,
};
const result4: MetricsAdvisorDataFeed = {
...common,
source,
};
return result4;
}
case "AzureDataLakeStorageGen2": {
const orig5 = original as ServiceAzureDataLakeStorageGen2DataFeed;
let auth: AzureDataLakeStorageGen2AuthTypes;
if (!original.authenticationType || original.authenticationType === "Basic") {
auth = { authenticationType: "Basic", accountKey: orig5.dataSourceParameter.accountKey! };
} else if (original.authenticationType === "ManagedIdentity") {
auth = { authenticationType: original.authenticationType };
} else if (
original.authenticationType === "ServicePrincipal" ||
original.authenticationType === "ServicePrincipalInKV" ||
original.authenticationType === "DataLakeGen2SharedKey"
) {
auth = {
authenticationType: original.authenticationType,
credentialId: original.credentialId!,
};
} else {
throw new Error(`Unexpected authentication type: '${original.authenticationType}'`);
}
const source: AzureDataLakeStorageGen2DataFeedSource = {
dataSourceType: "AzureDataLakeStorageGen2",
accountName: orig5.dataSourceParameter.accountName!,
directoryTemplate: orig5.dataSourceParameter.directoryTemplate,
fileSystemName: orig5.dataSourceParameter.fileSystemName,
fileTemplate: orig5.dataSourceParameter.fileTemplate,
...auth,
};
const result5: MetricsAdvisorDataFeed = {
...common,
source,
};
return result5;
}
case "AzureTable": {
const orig6 = original as ServiceAzureTableDataFeed;
const result6: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "AzureTable",
connectionString: orig6.dataSourceParameter.connectionString!,
table: orig6.dataSourceParameter.table,
query: orig6.dataSourceParameter.query,
authenticationType: "Basic",
},
};
return result6;
}
case "InfluxDB": {
const orig8 = original as ServiceInfluxDBDataFeed;
const result8: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "InfluxDB",
connectionString: orig8.dataSourceParameter.connectionString!,
database: orig8.dataSourceParameter.database!,
password: orig8.dataSourceParameter.password!,
query: orig8.dataSourceParameter.query,
userName: orig8.dataSourceParameter.userName!,
authenticationType: "Basic",
},
};
return result8;
}
case "MongoDB": {
const orig9 = original as ServiceMongoDBDataFeed;
const result9: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "MongoDB",
connectionString: orig9.dataSourceParameter.connectionString!,
database: orig9.dataSourceParameter.database!,
command: orig9.dataSourceParameter.command,
authenticationType: "Basic",
},
};
return result9;
}
case "MySql": {
const orig10 = original as ServiceMySqlDataFeed;
const result10: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "MySql",
connectionString: orig10.dataSourceParameter.connectionString,
query: orig10.dataSourceParameter.query,
authenticationType: "Basic",
},
};
return result10;
}
case "PostgreSql": {
const orig11 = original as ServicePostgreSqlDataFeed;
const result11: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "PostgreSql",
connectionString: orig11.dataSourceParameter.connectionString,
query: orig11.dataSourceParameter.query,
authenticationType: "Basic",
},
};
return result11;
}
case "SqlServer": {
const orig12 = original as ServiceSQLServerDataFeed;
let auth: SqlServerAuthTypes;
if (!original.authenticationType) {
auth = {
authenticationType: "Basic",
connectionString: orig12.dataSourceParameter.connectionString!,
};
}
if (
original.authenticationType === "Basic" ||
original.authenticationType === "ManagedIdentity"
) {
auth = {
authenticationType: original.authenticationType,
connectionString: orig12.dataSourceParameter.connectionString!,
};
} else if (
original.authenticationType === "ServicePrincipal" ||
original.authenticationType === "ServicePrincipalInKV"
) {
auth = {
authenticationType: original.authenticationType,
credentialId: orig12.credentialId!,
connectionString: orig12.dataSourceParameter.connectionString!,
};
} else if (original.authenticationType === "AzureSQLConnectionString") {
auth = {
authenticationType: original.authenticationType,
credentialId: original.credentialId!,
};
} else {
throw new Error(`Unexpected authentication type: '${original.authenticationType}'`);
}
const result12: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "SqlServer",
query: orig12.dataSourceParameter.query,
...auth,
},
};
return result12;
}
case "AzureEventHubs": {
const orig13 = original as ServiceAzureEventHubsDataFeed;
const result13: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "AzureEventHubs",
connectionString: orig13.dataSourceParameter.connectionString,
consumerGroup: orig13.dataSourceParameter.consumerGroup,
authenticationType: "Basic",
},
};
return result13;
}
case "AzureLogAnalytics": {
const orig14 = original as ServiceAzureLogAnalyticsDataFeed;
const result14: MetricsAdvisorDataFeed = {
...common,
source: {
dataSourceType: "AzureLogAnalytics",
clientId: orig14.dataSourceParameter.clientId!,
clientSecret: orig14.dataSourceParameter.clientSecret,
tenantId: orig14.dataSourceParameter.tenantId!,
query: orig14.dataSourceParameter.query,
workspaceId: orig14.dataSourceParameter.workspaceId,
authenticationType: "Basic",
},
};
return result14;
}
default:
return {
...common,
source: {
dataSourceType: "Unknown",
dataSourceParameter: (original as any).dataSourceParameter,
authenticationType: "Basic",
},
};
}
}