| File: Project\CogSvcFunction.cs | Web Access |
| Project: src\src\Aspire.Hosting.Foundry\Aspire.Hosting.Foundry.csproj (Aspire.Hosting.Foundry) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Hosting.Azure; using Azure.Provisioning; using Azure.Provisioning.Expressions; using Azure.Provisioning.Resources; namespace Aspire.Hosting.Foundry; internal static class CogSvcFunction { internal static ManagedServiceIdentity GetManagedServiceIdentity(IAppIdentityResource resource) { if (resource == null) { return new ManagedServiceIdentity { ManagedServiceIdentityType = ManagedServiceIdentityType.SystemAssigned }; } return new ManagedServiceIdentity { ManagedServiceIdentityType = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = { { BicepFunction.Interpolate($"{resource.Id}").Compile().ToString(), new UserAssignedIdentityDetails() } } }; } internal static ManagedServiceIdentity GetManagedServiceIdentity(IEnumerable<IAppIdentityResource> resources) { if (resources == null || !resources.Any()) { return new ManagedServiceIdentity { ManagedServiceIdentityType = ManagedServiceIdentityType.SystemAssigned }; } BicepDictionary<UserAssignedIdentityDetails> identities = []; foreach (var resource in resources) { identities[BicepFunction.Interpolate($"{resource.Id}").Compile().ToString()] = new UserAssignedIdentityDetails(); } return new ManagedServiceIdentity { ManagedServiceIdentityType = ManagedServiceIdentityType.UserAssigned, UserAssignedIdentities = identities }; } }