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
Request body
In the request body, supply a JSON representation of the permission object with the following properties.
Name |
Type |
Description |
roles |
Collection(String) |
The type of permissions. Either reader , writer , manager , or owner . |
grantedToV2 |
sharePointIdentitySet |
For user type permissions, the details of the user for this permission. |
Response
If successful, this method returns a 201 Created
response code and a permission object in the response body.
Examples
Request
The following example shows how to add a new user as a reader to a container.
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"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Permission
{
Roles = new List<string>
{
"reader",
},
GrantedToV2 = new SharePointIdentitySet
{
User = new Identity
{
AdditionalData = new Dictionary<string, object>
{
{
"userPrincipalName" , "jacob@fabrikam.com"
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Storage.FileStorage.Containers["{fileStorageContainer-id}"].Permissions.PostAsync(requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewPermission()
roles := []string {
"reader",
}
requestBody.SetRoles(roles)
grantedToV2 := graphmodels.NewSharePointIdentitySet()
user := graphmodels.NewIdentity()
additionalData := map[string]interface{}{
"userPrincipalName" : "jacob@fabrikam.com",
}
user.SetAdditionalData(additionalData)
grantedToV2.SetUser(user)
requestBody.SetGrantedToV2(grantedToV2)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
permissions, err := graphClient.Storage().FileStorage().Containers().ByFileStorageContainerId("fileStorageContainer-id").Permissions().Post(context.Background(), requestBody, nil)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Permission permission = new Permission();
LinkedList<String> roles = new LinkedList<String>();
roles.add("reader");
permission.setRoles(roles);
SharePointIdentitySet grantedToV2 = new SharePointIdentitySet();
Identity user = new Identity();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("userPrincipalName", "jacob@fabrikam.com");
user.setAdditionalData(additionalData);
grantedToV2.setUser(user);
permission.setGrantedToV2(grantedToV2);
Permission result = graphClient.storage().fileStorage().containers().byFileStorageContainerId("{fileStorageContainer-id}").permissions().post(permission);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
roles: ['reader'],
grantedToV2: {
user: {
userPrincipalName: 'jacob@fabrikam.com'
}
}
};
await client.api('/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions')
.post(permission);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Permission;
use Microsoft\Graph\Generated\Models\SharePointIdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Permission();
$requestBody->setRoles(['reader', ]);
$grantedToV2 = new SharePointIdentitySet();
$grantedToV2User = new Identity();
$additionalData = [
'userPrincipalName' => 'jacob@fabrikam.com',
];
$grantedToV2User->setAdditionalData($additionalData);
$grantedToV2->setUser($grantedToV2User);
$requestBody->setGrantedToV2($grantedToV2);
$result = $graphServiceClient->storage()->fileStorage()->containers()->byFileStorageContainerId('fileStorageContainer-id')->permissions()->post($requestBody)->wait();
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.permission import Permission
from msgraph.generated.models.share_point_identity_set import SharePointIdentitySet
from msgraph.generated.models.identity import Identity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Permission(
roles = [
"reader",
],
granted_to_v2 = SharePointIdentitySet(
user = Identity(
additional_data = {
"user_principal_name" : "jacob@fabrikam.com",
}
),
),
)
result = await graph_client.storage.file_storage.containers.by_file_storage_container_id('fileStorageContainer-id').permissions.post(request_body)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation.
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"
}
}
}