Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Namespace: microsoft.graph
Add a permission to an existing fileStorageContainer.
Important
Permissions added to a fileStorageContainer apply to all its driveItem objects, regardless of any unique or restrictive permissions applied to those items.
This API is available in the following national cloud deployments.
| Global service | US Government L4 | US Government L5 (DOD) | China operated by 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
| Permission type | Least privileged permissions | Higher privileged permissions |
|---|---|---|
| Delegated (work or school account) | FileStorageContainer.Selected | FileStorageContainer.Manage.All |
| Delegated (personal Microsoft account) | FileStorageContainer.Selected | Not available. |
| Application | FileStorageContainer.Selected | Not available. |
In addition to Microsoft Graph permissions, your app also must have the necessary container-type level permission or permissions to call this API. For details about container types, see Container Types. To learn more about container-type level permissions, see SharePoint Embedded Authorization.
HTTP request
POST /storage/fileStorage/containers/{containerId}/permissions
Path parameters
| Parameter | Type | Description |
|---|---|---|
| containerId | String | The unique identifier of the fileStorageContainer. Required. |
Request headers
| Name | Description |
|---|---|
| Authorization | Bearer {token}. Required. Learn more about authentication and authorization. |
| Content-Type | application/json. Required. |
Request body
In the request body, supply a JSON representation of the permission object with the following properties.
| Name | Type | Description |
|---|---|---|
| @microsoft.graph.conflictBehavior | String | Controls the behavior when the target identity already exists in the container with a different role. Possible values are: fail, replace. The default value is fail. For fail, the API returns a 409 Conflict response code with a resourceModified error if the identity already exists with a different role. For replace, the current role of the identity in the container is replaced. Optional. |
| grantedToV2 | sharePointIdentitySet | For user type permissions, the details of the user for this permission. |
| roles | String collection | The type of permissions. Either reader, writer, manager, or owner. |
Response
If successful, this method returns a 201 Created response code and a permission object in the response body.
Examples
Example 1: Create a new permission for a user
The following example shows how to create a new permission for a user as a reader in a container.
Request
The following example shows a request.
POST https://graph.microsoft.com/v1.0/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-type: application/json
{
"roles": ["reader"],
"grantedToV2": {
"user": {
"userPrincipalName": "jacob@fabrikam.com"
}
}
}
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.permission",
"id": "cJpbmNpcGFsT3duZAJfaLowIy5mfG1lbWJliZXJzaGlwfHJvcnlicjExMUBvdXRsb29rLmNvbQ",
"roles": ["reader"],
"grantedToV2": {
"user": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"userPrincipalName": "jacob@fabrikam.com",
"displayName": "Jacob Hancock",
"email": "jacob@fabrikam.com"
}
}
}
Example 2: Replace an existing role when creating a permission
The following example shows how to change the existing role of an identity when @microsoft.graph.conflictBehavior is set to replace.
Request
The following example shows a request.
POST https://graph.microsoft.com/v1.0/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-type: application/json
{
"@microsoft.graph.conflictBehavior": "replace",
"roles": ["writer"],
"grantedToV2": {
"user": {
"userPrincipalName": "jacob@fabrikam.com"
}
}
}
Response
The following example shows the response.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.permission",
"id": "cJpbmNpcGFsT3duZAJfaLowIy5mfG1lbWJliZXJzaGlwfHJvcnlicjExMUBvdXRsb29rLmNvbQ",
"roles": ["writer"],
"grantedToV2": {
"user": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"userPrincipalName": "jacob@fabrikam.com",
"displayName": "Jacob Hancock",
"email": "jacob@fabrikam.com"
}
}
}