123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { SelectableValue } from '@grafana/data';
- export enum AzureCloud {
- Public = 'AzureCloud',
- China = 'AzureChinaCloud',
- USGovernment = 'AzureUSGovernment',
- Germany = 'AzureGermanCloud',
- None = '',
- }
- export const KnownAzureClouds = [
- { value: AzureCloud.Public, label: 'Azure' },
- { value: AzureCloud.China, label: 'Azure China' },
- { value: AzureCloud.USGovernment, label: 'Azure US Government' },
- { value: AzureCloud.Germany, label: 'Azure Germany' },
- ] as SelectableValue[];
- export type AzureAuthType = 'msi' | 'clientsecret';
- export type ConcealedSecret = symbol;
- interface AzureCredentialsBase {
- authType: AzureAuthType;
- defaultSubscriptionId?: string;
- }
- export interface AzureManagedIdentityCredentials extends AzureCredentialsBase {
- authType: 'msi';
- }
- export interface AzureClientSecretCredentials extends AzureCredentialsBase {
- authType: 'clientsecret';
- azureCloud?: string;
- tenantId?: string;
- clientId?: string;
- clientSecret?: string | ConcealedSecret;
- }
- export type AzureCredentials = AzureManagedIdentityCredentials | AzureClientSecretCredentials;
- export function isCredentialsComplete(credentials: AzureCredentials): boolean {
- switch (credentials.authType) {
- case 'msi':
- return true;
- case 'clientsecret':
- return !!(credentials.azureCloud && credentials.tenantId && credentials.clientId && credentials.clientSecret);
- }
- }
|