Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Importante
Les API sous la /beta version sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge.
Approuver ou rejeter plusieurs demandes de crédit au cours d’un même appel. Les éléments sont traités indépendamment avec une concurrence optimiste. L’opération n’est pas atomique ; Un élément ayant échoué ne restaure pas les éléments qui ont réussi. Les résultats sont renvoyés dans le même ordre que les éléments d’entrée.
Une décision du même État est une non-op qui préserve l’ETag et decisionByle . L’élément etag est toujours vérifié, donc une décision du même État avec un ETag obsolète est renvoyée preconditionFailed. Après un résultat partiel, répertoriez à nouveau les demandes de crédit concernées pour obtenir leurs ETag actuels et envoyez une nouvelle charge utile qui contient uniquement les décisions que vous souhaitez encore appliquer. Le renvoi de la charge utile d’origine revient preconditionFailed normalement pour les éléments qui ont déjà réussi, car leurs ETag ont changé.
Outre les autorisations décrites dans la section suivante, l’utilisateur connecté doit disposer de l’un des rôles Microsoft Entra suivants : administrateur général, administrateur de facturation ou administrateur IA.
Cette API est disponible dans les déploiements cloud nationaux suivants.
| Service global | Gouvernement américain L4 | Gouvernement américain L5 (DOD) | Chine exploitée par 21Vianet |
|---|---|---|---|
| ✅ | ❌ | ❌ | ❌ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme étant les moins privilégiées pour cette API. Utilisez une ou plusieurs autorisations privilégiées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, voir Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez la référence des autorisations.
| Type d’autorisation | Autorisations les moins privilégiées | Autorisations à privilèges plus élevés |
|---|---|---|
| Déléguée (compte professionnel ou scolaire) | CopilotCostManagement-CreditReq.ReadWrite.All | Non prise en charge. |
| Déléguée (compte Microsoft personnel) | Non prise en charge. | Non prise en charge. |
| Application | Non prise en charge. | Non prise en charge. |
Requête HTTP
POST /copilot/costManagement/creditRequests/batchRecordDecisions
En-têtes de demande
| Nom | Description |
|---|---|
Authorization |
Bearer {token}. Obligatoire. En savoir plus sur l’authentification et les autorisations. |
Content-Type |
application/json. Obligatoire. |
Cette action n’utilise pas l’en-tête If-Match . Chaque élément fournit son propre ETag dans la etag propriété.
Corps de la demande
Dans le corps de la demande, fournissez une représentation JSON des paramètres suivants.
| Paramètre | Type | Description |
|---|---|---|
requests |
collection creditRequestUpdateItem | Les décisions à appliquer. Obligatoire. Doit contenir de 1 à 100 éléments avec des valeurs uniques requestId . |
L’ensemble de la demande échoue avec un 400 Bad Request code de réponse et le code d’erreur, et aucun élément n’est invalidRequest traité, si l’une des conditions suivantes s’applique :
- La
requestscollection est manquante ou vide. - La
requestscollection contient plus de 100 articles. - Deux éléments ou plus ont la même
requestIdvaleur. - Le JSON est mal formé ou contient des types incompatibles, notamment
"state": null.
Réponse
En cas de succès, cette action retourne un 200 OK code de réponse et un objet creditRequestUpdateResponse dans le corps de la réponse.
Les échecs par élément sont retournés dans la responses collection plutôt que sous forme d’erreurs HTTP. Chaque élément signale l’un des états suivants :
-
succeeded: La décision a été appliquée. -
notFound: la demande de crédit n’existe pas ou n’appartient pas au locataire. -
failed: lerequestIdest manquant, le fournisseur a renvoyé un échec ou une erreur inattendue s’est produite. -
preconditionFailed: iletagest manquant, incorrect ou périmé. -
invalidStateTransition: lestateest manquant ou la transition demandée n’est pas prise en charge.
Exemple
Demande
L’exemple suivant illustre une demande. Le premier élément approuve une demande de crédit en attente. Le deuxième élément utilise un ETag obsolète. La troisième demande de crédit a déjà été rejetée, elle ne peut donc pas être approuvée et retourne invalidStateTransition.
POST https://graph.microsoft.com/beta/copilot/costManagement/creditRequests/batchRecordDecisions
Content-Type: application/json
{
"requests": [
{
"requestId": "9c424e3a-a83d-47ef-88ec-9192ec89f084",
"state": "approved",
"etag": "\"7f94e342\""
},
{
"requestId": "14cf7865-b566-40b6-a14f-c8332137b641",
"state": "rejected",
"etag": "\"stale-etag\""
},
{
"requestId": "66828cce-17e0-459e-af46-a18328b29d43",
"state": "approved",
"etag": "\"1e45b798\""
}
]
}
Réponse
L’exemple suivant illustre la réponse. L’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 200 OK
Content-type: application/json
{
"succeededCount": 1,
"failedCount": 2,
"responses": [
{
"requestId": "9c424e3a-a83d-47ef-88ec-9192ec89f084",
"status": "succeeded",
"etag": "\"9ca5a72e\""
},
{
"requestId": "14cf7865-b566-40b6-a14f-c8332137b641",
"status": "preconditionFailed",
"message": "The credit request changed after it was read. Read the request again and retry with the current ETag."
},
{
"requestId": "66828cce-17e0-459e-af46-a18328b29d43",
"status": "invalidStateTransition",
"message": "The requested state transition isn't supported."
}
]
}