Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Upsert (criar ou atualizar) até 10 objetos de permissão num ficheiroStorageContainer num único pedido. O patch Delta permite que o autor da chamada execute várias operações (criar, atualizar) em várias permissões com um único pedido.
Importante
As permissões adicionadas a um fileStorageContainer aplicam-se a todos os objetos driveItem , independentemente de quaisquer permissões exclusivas ou restritivas aplicadas a esses itens.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global | US Government L4 | US Government L5 (DOD) | China operada pela 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
| Tipo de permissão | Permissões com menos privilégios | Permissões com privilégios superiores |
|---|---|---|
| Delegado (conta corporativa ou de estudante) | FileStorageContainer.Selected | FileStorageContainer.Manage.All |
| Delegado (conta pessoal da Microsoft) | FileStorageContainer.Selected | Indisponível. |
| Application | FileStorageContainer.Selected | Indisponível. |
Observação
Além das permissões do Microsoft Graph, a sua aplicação tem de ter as permissões ou permissões necessárias ao nível do tipo de contentor para chamar esta API. Para obter mais informações, veja Tipos de contentor. Para saber mais sobre as permissões ao nível do tipo de contentor, veja Autorização do SharePoint Embedded.
Solicitação HTTP
PATCH /storage/fileStorage/containers/{containerId}/permissions
Cabeçalhos de solicitação
| Nome | Descrição |
|---|---|
| Autorização | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type | application/json. Obrigatório. |
Corpo da solicitação
No corpo do pedido, forneça um objeto JSON com as seguintes propriedades.
| Nome | Tipo | Descrição |
|---|---|---|
| @context | Cadeia de caracteres | Anotação OData que identifica o tipo de payload. Tem de ser definido como #$delta para sinalizar uma operação de patch delta. Obrigatório. |
| valor | Coleção permission | Uma coleção de até 10 objetos de permissão para processar. Obrigatório. |
Cada entrada na coleção de valores representa uma operação numa permissão. A presença da propriedade ID determina a forma como a entrada é interpretada. Inclua o ID de uma permissão existente para atualizá-la ou omita o ID para criar uma nova permissão.
Cada entrada suporta as seguintes propriedades e anotações:
| Nome | Tipo | Descrição |
|---|---|---|
| id | Cadeia de caracteres | O ID da permissão existente. Quando o ID está presente, o item é tratado como uma atualização. Quando o ID é omitido, o item é tratado como uma operação de criação. Opcional. |
| grantedToV2 | sharePointIdentitySet | Para permissões de tipo de utilizador, especifique os detalhes do utilizador para esta permissão. Necessário para criar operações. Não especifique para operações de atualização. |
| funções | Coleção de cadeias de caracteres | O tipo de permissão a conceder. Os valores possíveis são: reader, writer, manager, owner. Necessário para operações de criação e atualização. |
| @microsoft.graph.conflictBehavior | Cadeia de caracteres | Um parâmetro de anotação que controla o comportamento quando a identidade de destino já é um membro do contentor com uma função diferente. Os valores possíveis são: fail e replace. O valor padrão é fail. Aplica-se apenas à criação de operações. Opcional. |
A anotação @microsoft.graph.conflictBehavior é por item. O valor fail predefinido faz com que o item falhe com um código de resposta por item 409 Conflict . O valor replace substitui a função existente para a identidade pela função especificada no item e o item é bem-sucedido. Qualquer outro valor faz com que o item falhe com um código de resposta por item 400 Bad Request .
Os itens de atualização não podem incluir propriedades que não o ID e as funções. A propriedade de funções é necessária. Os itens que violam qualquer uma das regras falham com um código de resposta por item 400 Bad Request .
Resposta
Se for bem-sucedido, este método devolve um 200 OK código de resposta e uma coleção de objetos de permissão no corpo da resposta. As permissões que são processadas com êxito incluem um objeto de permissão . Os itens com falha incluem uma anotação @Core.DataModificationException com detalhes de erro.
Esta API também pode devolver os seguintes códigos de resposta de erro para todo o pedido:
| Código HTTP | Descrição |
|---|---|
| 400 | Solicitação incorreta. |
| 401 | O pedido não tem credenciais de autenticação válidas. |
| 403 | As credenciais de autenticação fornecidas são válidas, mas insuficientes para executar a operação pedida. Cenários de exemplo: a aplicação de chamadas não tem permissão para gerir permissões para contentores deste tipo ou o utilizador que chama não tem permissões nesta instância de contentor ou a respetiva função não permite a gestão de permissões de contentor. |
| 404 | O contentor não existe. |
| 423 | O contentor está bloqueado. Por exemplo, o contentor é arquivado. |
Exemplos
Solicitação
O exemplo seguinte mostra um único pedido de patch delta que combina criar e atualizar itens numa chamada. Os itens sem um ID são tratados como operações de criação; os itens com um ID são tratados como operações de atualização. Os itens que falham são comunicados inline com uma anotação @Core.DataModificationException . Os restantes itens continuam a ser bem-sucedidos.
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"]
}
]
}
Resposta
O exemplo a seguir mostra a resposta. As duas primeiras operações de criação são bem-sucedidas. A segunda operação substitui a função existente para o utilizador de destino. A terceira operação de criação falha porque a identidade já é um membro do contentor com uma função diferente. A primeira operação de atualização é concluída com êxito. A segunda operação de atualização falha porque não existe permissão com esse ID.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
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"
}
]
}