Files
powerpoint-toolbox/node_modules/@azure/msal-node/src/config/ManagedIdentityId.ts
T
2025-03-07 19:22:02 +01:00

74 lines
2.4 KiB
TypeScript

/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import {
ManagedIdentityErrorCodes,
createManagedIdentityError,
} from "../error/ManagedIdentityError.js";
import {
DEFAULT_MANAGED_IDENTITY_ID,
ManagedIdentityIdType,
} from "../utils/Constants.js";
import { ManagedIdentityIdParams } from "./Configuration.js";
export class ManagedIdentityId {
private _id: string;
public get id(): string {
return this._id;
}
private set id(value: string) {
this._id = value;
}
private _idType: ManagedIdentityIdType;
public get idType(): ManagedIdentityIdType {
return this._idType;
}
private set idType(value: ManagedIdentityIdType) {
this._idType = value;
}
constructor(managedIdentityIdParams?: ManagedIdentityIdParams) {
const userAssignedClientId =
managedIdentityIdParams?.userAssignedClientId;
const userAssignedResourceId =
managedIdentityIdParams?.userAssignedResourceId;
const userAssignedObjectId =
managedIdentityIdParams?.userAssignedObjectId;
if (userAssignedClientId) {
if (userAssignedResourceId || userAssignedObjectId) {
throw createManagedIdentityError(
ManagedIdentityErrorCodes.invalidManagedIdentityIdType
);
}
this.id = userAssignedClientId;
this.idType = ManagedIdentityIdType.USER_ASSIGNED_CLIENT_ID;
} else if (userAssignedResourceId) {
if (userAssignedClientId || userAssignedObjectId) {
throw createManagedIdentityError(
ManagedIdentityErrorCodes.invalidManagedIdentityIdType
);
}
this.id = userAssignedResourceId;
this.idType = ManagedIdentityIdType.USER_ASSIGNED_RESOURCE_ID;
} else if (userAssignedObjectId) {
if (userAssignedClientId || userAssignedResourceId) {
throw createManagedIdentityError(
ManagedIdentityErrorCodes.invalidManagedIdentityIdType
);
}
this.id = userAssignedObjectId;
this.idType = ManagedIdentityIdType.USER_ASSIGNED_OBJECT_ID;
} else {
this.id = DEFAULT_MANAGED_IDENTITY_ID;
this.idType = ManagedIdentityIdType.SYSTEM_ASSIGNED;
}
}
}