Visão geral da API de Gerenciamento de Custos do Microsoft 365 Copilot

Importante

As APIs sob a /beta versão estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção.

A API de Gerenciamento de Custos do Microsoft 365 Copilot permite que os administradores controlem e observem o consumo de créditos de Copilot e IA pelos locatários por meio do Microsoft Graph, com base em /copilot/costManagement. O contrato é sensível à unidade e denominado a crédito. Abrange o saldo de crédito do locatário snapshot, o gerenciamento da política de gastos, o escopo do público-alvo do grupo, as configurações por serviço, os alertas de limite somente de notificação e seus destinatários e os saldos de consumo por usuário.

A API é denominada em crédito e exclui deliberadamente a moeda classificada, as faturas, os preços e as previsões de compra.

Principais recursos

  • Leia o snapshot do saldo de crédito em todo o locatário, com uma linha por método de cobrança.
  • Crie, leia, atualize e exclua políticas de gastos que limitem o consumo de Créditos do Copilot para um público-alvo.
  • Defina o escopo de uma política para cada usuário no locatário (allUsersSpendingPolicy) ou para grupos selecionados (selectedGroupsSpendingPolicy).
  • Gerenciar o público-alvo de um grupo de políticas por meio de $ref links de referência.
  • Defina configurações por serviço que regem ou excluem serviços de IA individuais em uma política.
  • Configure alertas de limite somente de notificação e gerencie seus destinatários.
  • Diagnostique o saldo de consumo por serviço de um usuário e entenda por que um usuário pode ou não consumir um serviço.

Exemplos de cenários

  • Um administrador define um limite de crédito mensal para um grupo piloto e alerta os administradores quando o uso atinge 80%.
  • Um administrador adiciona ou remove um serviço controlado em uma política existente.
  • Um administrador de suporte diagnostica por que um usuário não pode mais consumir um serviço lendo o saldo por serviço desse usuário.
  • Um leitor FinOps lista as políticas de gastos habilitadas do locatário e analisa seus limites configurados.

Personas e funções

As personas-alvo incluem o administrador de IA e o administrador de licenças para gerenciamento de políticas; o Leitor FinOps/Global e o Administrador de Faturamento para leituras; e o administrador de Suporte/Assistência Técnica para o diagnóstico por usuário. A criação de uma política de gastos também requer a função de diretório Administrador de Cobrança ou Administrador Global no tempo de execução.

Permissões

Essa API usa a família de CopilotCostManagement-* permissões. A maioria das operações dá suporte apenas a permissões delegadas (conta corporativa ou de estudante); a leitura do saldo de crédito do locatário (getTenantCreditBalance) também dá suporte à permissão do CopilotCostManagement.Read.All aplicativo. Não há suporte para contas Microsoft pessoais. Escolha a permissão menos privilegiada para cada operação.

Permissão Operações
CopilotCostManagement.Read.All Leia o saldo de crédito do locatário snapshot.
CopilotCostManagement-Policy.Read.All Leia políticas de gastos, configurações por serviço, limites de alerta e destinatários.
CopilotCostManagement-Policy.ReadWrite.All Criar, atualizar e excluir políticas, configurações de serviço, alertas e destinatários.
CopilotCostManagement-Assignment.Read.All Leia o público-alvo do grupo de uma política.
CopilotCostManagement-Assignment.ReadWrite.All Adicione e remova o público-alvo do grupo de uma política.
CopilotCostManagement-UserData.Read.All Leia o diagnóstico de saldo de um usuário nomeado, incluindo consumo e o arquivo .spendingPolicyId

Lista de APIs

Operação Método HTTP Descrição
Obter saldo de crédito do locatário GET /copilot/costManagement/getTenantCreditBalance Obtenha o snapshot do saldo de crédito em todo o locatário.
Listar spendingPolicies GET /copilot/costManagement/spendingPolicies Obtenha uma lista de políticas de gastos.
Criar spendingPolicy POST /copilot/costManagement/spendingPolicies Crie uma nova política de gastos.
Obter política de gastos GET /copilot/costManagement/spendingPolicies/{id} Recupere uma política de gastos.
Atualizar spendingPolicy PATCH /copilot/costManagement/spendingPolicies/{id} Atualizar uma política de gastos.
Excluir política de gastos DELETE /copilot/costManagement/spendingPolicies/{id} Exclua uma política de gastos.
List assignedGroups GET /copilot/costManagement/spendingPolicies/{id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups Listar os grupos atribuídos a uma política.
Adicionar assignedGroup POST /copilot/costManagement/spendingPolicies/{id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/$ref Adicione uma referência de grupo a uma política.
Remove assignedGroup DELETE /copilot/costManagement/spendingPolicies/{id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/{groupId}/$ref Remova uma referência de grupo.
Listar spendingPolicyServiceSettings GET /copilot/costManagement/spendingPolicies/{id}/serviceSettings Listar as configurações de serviço de uma política.
Criar spendingPolicyServiceSetting POST /copilot/costManagement/spendingPolicies/{id}/serviceSettings Adicione um serviço a uma política.
Obter spendingPolicyServiceSetting GET /copilot/costManagement/spendingPolicies/{id}/serviceSettings/{serviceId} Recupere uma configuração de serviço.
Atualizar spendingPolicyServiceSetting PATCH /copilot/costManagement/spendingPolicies/{id}/serviceSettings/{serviceId} Atualizar uma configuração de serviço.
Get costManagementAlertSetting GET /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings Recupere a configuração de alerta de uma política.
Atualizar costManagementAlertSetting PATCH /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings Crie ou atualize a configuração do alerta.
Excluir costManagementAlertSetting DELETE /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings Exclua a configuração de alerta.
Listar destinatários GET /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings/recipients Liste os destinatários do alerta.
Adicionar destinatário POST /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings/recipients/$ref Adicione um destinatário do alerta.
Remover destinatário DELETE /copilot/costManagement/spendingPolicies/{id}/emailThresholdSettings/recipients/{userId}/$ref Remover um destinatário do alerta.
Obter costManagementUserBalance GET /copilot/costManagement/userBalances/{userId} Recupere o saldo de consumo de um usuário.
Listar costManagementUserServiceBalances GET /copilot/costManagement/userBalances/{userId}/serviceBalances Liste as linhas de saldo por serviço de um usuário.
Obter costManagementUserServiceBalance GET /copilot/costManagement/userBalances/{userId}/serviceBalances/{serviceId} Recupere a linha de saldo de um serviço para um usuário.

Simultaneidade e semântica de remoção

  • Para alterar uma política existente e seus recursos filho (configurações de serviço e links de referência), inclua um If-Match cabeçalho com a ETag da política pai. As configurações de serviço e os links de referência não têm sua própria ETag. A política pai gerencia a simultaneidade e aparece como parentEtag em uma configuração de serviço. Quando você cria uma política, ela não tem ETag existente e não usa If-Match.
  • A serviceSettings coleção não dá suporte a DELETE. Defina state como disabled para remover um serviço. A entrada permanece nesse estado.
  • Gerencie as assignedGroupsrecipients e relações como propriedades de navegação de referência com $ref adicionar e remover.

Condições de erro

As respostas de erro usam o OData error e innerError o envelope padrão. O relata innerError.code condições específicas da carga de trabalho, enquanto o OData error.code padrão relata condições genéricas. A segurança em nível de linha é executada antes da pesquisa, portanto, um recurso de locatário fora do escopo retorna uma 404 resposta em vez de uma 403 resposta.

Condition HTTP Código de erro
O chamador não tem a permissão necessária ou uma função de diretório qualificada 403 Authorization_RequestDenied
Opção de consulta sem suporte ou solicitação malformada 400 invalidRequest, unsupportedQuery
A remoção do último grupo atribuído deixaria a política sem audiência atribuída 409 lastAssignedGroup
Outra política não desabilitada para todo o locatário já rege o mesmo serviço 409 allUsersServiceConflict
Uma política com escopo de grupo compartilha um grupo atribuído e um serviço habilitado com outra política não desabilitada 409 groupServiceConflict
Desabilitar o último serviço habilitado em uma política que tenha configurações de serviço 409 atLeastOneServiceRequired
Valor limite de alerta fora do intervalo (os limites percentuais devem ser um número inteiro de 1 a 100) 400 invalidAlertThreshold
Aplicar PATCH em qualquer campo em uma política que não esteja em um estado editável 400 policyNotEditableWhilePending
ID de serviço desconhecida ou inválida 400 invalidService
Alertas habilitados sem destinatários vinculados ou removendo o último destinatário enquanto os alertas estão habilitados 400 alertRecipientsRequired
A referência de destinatário do alerta não é resolvida para um usuário real no diretório do locatário 400 alertRecipientNotFound
Fornecimento de um campo gerenciado pelo servidor no PATCH 400 invalidRequest
Obsoleto If-Match em uma operação de mutação 412 preconditionFailed
Transição de estado simultânea conflitante 409 invalidTransition
O avaliador upstream falhou para cada serviço, portanto, nenhuma linha de saldo pôde ser produzida 503 sourceUnavailable
Limitação de API 429 tooManyRequests