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.
Espace de noms: microsoft.graph
Importante
Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
Upsert (créer ou mettre à jour) jusqu’à 10 objets d’autorisation sur un fileStorageContainer dans une même requête. Le correctif delta permet à l’appelant d’effectuer plusieurs opérations (créer, mettre à jour) sur plusieurs autorisations avec une seule requête.
Importante
Les autorisations ajoutées à un fileStorageContainer s’appliquent à tous ses objets driveItem , quelles que soient les autorisations uniques ou restrictives appliquées à ces éléments.
Cette API est disponible dans les déploiements de cloud national suivants.
| Service global | Gouvernement des États-Unis L4 | Us Government L5 (DOD) | Chine gérée par 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
| Type d’autorisation | Autorisations avec privilèges minimum | Autorisations privilégiées plus élevées |
|---|---|---|
| Déléguée (compte professionnel ou scolaire) | FileStorageContainer.Selected | FileStorageContainer.Manage.All |
| Déléguée (compte Microsoft personnel) | FileStorageContainer.Selected | Non disponible. |
| Application | FileStorageContainer.Selected | Non disponible. |
Remarque
En plus des autorisations Microsoft Graph, votre application doit disposer de l’autorisation ou des autorisations nécessaires au niveau du type de conteneur pour appeler cette API. Pour plus d’informations, consultez Types de conteneurs. Pour en savoir plus sur les autorisations au niveau du type de conteneur, voir Autorisation SharePoint Embedded.
Requête HTTP
PATCH /storage/fileStorage/containers/{containerId}/permissions
En-têtes de demande
| Nom | Description |
|---|---|
| Autorisation | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
| Content-Type | application/json. Obligatoire. |
Corps de la demande
Dans le corps de la demande, fournissez un objet JSON avec les propriétés suivantes.
| Nom | Type | Description |
|---|---|---|
| @context | String | Annotation OData qui identifie le type de charge utile. Doit être défini sur #$delta pour signaler une opération de correctif delta. Obligatoire. |
| valeur | collection permission | Collection de jusqu’à 10 objets d’autorisation à traiter. Obligatoire. |
Chaque entrée de la collection de valeurs représente une opération sur une autorisation. La présence de la propriété id détermine la façon dont l’entrée est interprétée. Incluez l’ID d’une autorisation existante pour la mettre à jour, ou omettez l’ID pour créer une nouvelle autorisation.
Chaque entrée prend en charge les annotations et propriétés suivantes :
| Nom | Type | Description |
|---|---|---|
| id | String | ID de l’autorisation existante. Lorsque l’ID est présent, l’élément est traité comme une mise à jour. Lorsque l’ID est omis, l’élément est traité comme une opération de création. Facultatif. |
| grantedToV2 | sharePointIdentitySet | Pour les autorisations de type utilisateur, spécifiez les détails de l’utilisateur pour cette autorisation. Requis pour les opérations de création. Ne spécifiez pas pour les opérations de mise à jour. |
| roles | Collection de chaînes | Type d’autorisation à accorder. Les valeurs possibles sont : reader, writer, manager, owner. Obligatoire pour les opérations de création et de mise à jour. |
| @microsoft.graph.conflictBehavior | String | Paramètre d’annotation qui contrôle le comportement lorsque l’identité cible est déjà membre du conteneur avec un rôle différent. Les valeurs possibles sont les suivantes : fail, replace. La valeur par défaut est fail. S’applique uniquement aux opérations de création. Facultatif. |
L’annotation @microsoft.graph.conflictBehavior est par élément. La valeur fail par défaut entraîne l’échec de l’élément avec un code de réponse par élément 409 Conflict . La valeur replace remplace le rôle existant pour l’identité par le rôle spécifié dans l’élément, et l’élément réussit. Toute autre valeur entraîne l’échec de l’élément avec un code de réponse par élément 400 Bad Request .
Les éléments de mise à jour ne doivent pas inclure de propriétés autres que l’ID et les rôles. La propriété roles est obligatoire. Les éléments qui enfreignent l’une ou l’autre règle échouent avec un code de réponse par élément 400 Bad Request .
Réponse
Si elle réussit, cette méthode renvoie un 200 OK code de réponse et une collection d’objets d’autorisation dans le corps de la réponse. Les autorisations traitées avec succès incluent un objet d’autorisation . Les éléments ayant échoué incluent une annotation @Core.DataModificationException avec les détails de l’erreur.
Cette API peut également retourner les codes de réponse d’erreur suivants pour l’ensemble de la requête :
| Code HTTP | Description |
|---|---|
| 400 | Demande incorrecte |
| 401 | La demande ne dispose pas d’informations d’identification d’authentification valides. |
| 403 | Les informations d’identification d’authentification fournies sont valides mais insuffisantes pour effectuer l’opération demandée. Exemples de scénarios : l’application appelante n’a pas l’autorisation de gérer les autorisations pour les conteneurs de ce type, ou l’utilisateur appelant n’a pas d’autorisations sur ce conteneur instance, ou son rôle n’autorise pas la gestion des autorisations de conteneur. |
| 404 | Le conteneur n’existe pas. |
| 423 | Le conteneur est verrouillé. Par exemple, le conteneur est archivé. |
Exemples
Demande
L’exemple suivant montre une seule demande de correctif delta qui combine des éléments de création et de mise à jour dans un seul appel. Les éléments sans ID sont traités comme des opérations de création ; les éléments avec un ID sont traités comme des opérations de mise à jour. Les éléments qui échouent sont signalés inline avec une annotation @Core.DataModificationException . Les autres éléments réussissent toujours.
PATCH https://graph.microsoft.com/beta/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-Type: application/json
{
"@context": "#$delta",
"value": [
{
"roles": ["reader"],
"grantedToV2": {
"user": {
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@microsoft.graph.conflictBehavior": "replace",
"roles": ["writer"],
"grantedToV2": {
"user": {
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"roles": ["owner"],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": ["manager"]
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ",
"roles": ["manager"]
}
]
}
Réponse
L’exemple suivant illustre la réponse. Les deux premières opérations de création réussissent. La deuxième opération remplace le rôle existant pour l’utilisateur cible. La troisième opération de création échoue, car l’identité est déjà membre du conteneur avec un rôle différent. La première opération de mise à jour réussit. La deuxième opération de mise à jour échoue, car aucune autorisation avec cet ID n’existe.
Remarque : 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
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#storage/fileStorage/containers('b%21ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z')/permissions/$delta",
"value": [
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"reader"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGthdGVAY29udG9zby5jb20",
"roles": [
"writer"
],
"grantedToV2": {
"user": {
"displayName": "Kate Brown",
"id": "2b3c4d5e-2222-3333-4444-555566667777",
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Create",
"responseCode": 409,
"info": {
"code": "Conflict",
"message": "Conflict: this identity is a [Reader] member of the container and cannot be added to the [Owner] role."
}
},
"id": "00000000-0000-0000-0000-000000000000",
"roles": [
"owner"
],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"manager"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Update",
"responseCode": 404,
"info": {
"code": "NotFound",
"message": "Item not found."
}
},
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ"
}
]
}