PurgarNET.AAConnector.Shared.ConfigClient.ConfigClient.SetServicePrincipalPermission C# (CSharp) Méthode

SetServicePrincipalPermission() public méthode

public SetServicePrincipalPermission ( AutomationAccountInfo account, System.Guid principalId ) : System.Threading.Tasks.Task
account AutomationAccountInfo
principalId System.Guid
Résultat System.Threading.Tasks.Task
        public async Task SetServicePrincipalPermission(AutomationAccountInfo account, Guid principalId)
        {
            var uri = $"subscriptions/{account.SubscriptionId.ToString()}/resourceGroups/{account.ResourceGroupName}/providers/Microsoft.Automation/automationAccounts/{account.AutomationAccountName}/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName eq 'Automation Operator'";
            var role = (await GetListAsync<RoleDefinition>(account.TenantId, "2015-07-01", uri)).FirstOrDefault();

            uri = $"subscriptions/{account.SubscriptionId.ToString()}/resourceGroups/{account.ResourceGroupName}/providers/Microsoft.Automation/automationAccounts/{account.AutomationAccountName}/providers/Microsoft.Authorization/roleAssignments?$filter=principalId eq '{principalId.ToString()}'";

            var existing = await GetListAsync<RoleAsignment>(account.TenantId, "2015-07-01", uri);
            if (existing.FirstOrDefault(x => x.Properties.RoleDefinitionId == role.Id) == null)
            { 
                var assignment = new RoleAsignment();
                assignment.Properties.PrincipalId = principalId;
                assignment.Properties.RoleDefinitionId = role.Id;
                uri = $"subscriptions/{account.SubscriptionId.ToString()}/resourceGroups/{account.ResourceGroupName}/providers/Microsoft.Automation/automationAccounts/{account.AutomationAccountName}/providers/Microsoft.Authorization/roleAssignments/{Guid.NewGuid()}";
                await SendAsync(account.TenantId, "2015-07-01", uri, RestSharp.Method.PUT, assignment);
            }
        }
    }