Edit

Create fileStorageContainer permission

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"
    }
  }
}