Clonar uma equipe

Namespace: microsoft.graph

Crie uma cópia de uma equipe. Essa operação também cria uma cópia do grupo correspondente. Você pode especificar quais partes da equipe clonar:

  • apps - copia Microsoft Teams aplicativos instalados na equipe.
  • canais – Copia a estrutura do canal (mas não as mensagens no canal).
  • membros – Copia os membros e proprietários do grupo.
  • configurações – Copia todas as configurações dentro da equipe, juntamente com as principais configurações de grupo.
  • guias – Copia as guias dentro dos canais.

Quando as guias são clonadas, elas são colocadas em um estado não configurado - elas são exibidas na barra de guias no Microsoft Teams e, na primeira vez que você abri-las, você vai passar pela tela de configuração. (Se a pessoa que abre a guia não tiver permissão para configurar aplicativos, ela verá uma mensagem explicando que a guia não foi configurada.)

A clonagem é uma operação de longa duração. Depois que o clone POST retorna, você precisa OBTER a operação para ver se ela está "em execução" ou "bem-sucedida" ou "falhou". Você deve continuar a OBTER até que o status não seja "em execução". O atraso recomendado entre GETs é de 5 segundos.

Permissões

Uma das seguintes permissões é obrigatória para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.

Tipo de permissão Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante) Team.Create, Group.ReadWrite.All , Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte.
Aplicativo Team.Create, Group.ReadWrite.All , Directory.ReadWrite.All

Observação: as permissões marcadas com ** têm suporte apenas para compatibilidade com versões anteriores. Recomendamos que você atualize suas soluções para usar uma permissão alternativa listada na tabela anterior e evite usar essas permissões adiante.

Solicitação HTTP

POST /teams/{id}/clone

Cabeçalhos de solicitação

Cabeçalho Valor
Autorização {token} de portador. Obrigatório.
Content-Type application/json

Corpo da solicitação

Propriedade Tipo Descrição
classificação Cadeia de caracteres (opcional) Descreve uma classificação para o grupo (como baixo, médio ou alto impacto comercial). Se a classificação não for especificada, a classificação será copiada da equipe/grupo original.
description Cadeia de caracteres (opcional) Uma descrição opcional para o grupo. Se essa propriedade não for especificada, ela ficará em branco.
displayName String O nome de exibição do grupo. Essa propriedade é obrigatória quando um grupo é criado e não pode ser apagado durante atualizações. Oferece suporte a $filter e $orderby.
mailNickname String O alias de email do grupo, exclusivo na organização. Essa propriedade deve ser especificada quando um grupo é criado. Oferece suporte a $filter. Se essa propriedade não for especificada, ela será calculada a partir do displayName. Problema conhecido: essa propriedade é ignorada no momento.
partsToClone clonableTeamParts Uma lista separada por vírgulas das partes a ser clonada. As partes legais são "aplicativos, guias, configurações, canais, membros".
visibility teamVisibilityType (opcional) Especifica a visibilidade do grupo. Os valores possíveis são: Privado, Público. Se a visibilidade não for especificada, a visibilidade será copiada da equipe/grupo original. Se a equipe que está sendo clonada for uma equipe educationClass , o parâmetro de visibilidade será ignorado e a visibilidade do novo grupo será definida como HiddenMembership.

Resposta

Se tiver êxito, este método retornará um 202 Accepted código de resposta com um header Location: apontando para o recurso de operação. Quando a operação for concluída, o recurso de operação dirá a id da equipe criada.

Exemplo

Solicitação

Este é um exemplo de solicitação.

POST /teams/{id}/clone
Content-Type: application/json

{  
     "displayName": "Library Assist",
     "description": "Self help community for library",
     "mailNickname": "libassist",
     "partsToClone": "apps,tabs,settings,channels,members",
     "visibility": "public"
}

Resposta

Eis um exemplo da resposta. Observação: o objeto de resposta exibido aqui pode ser reduzido para facilitar a leitura.

HTTP/1.1 202 Accepted
Location: /teams({id})/operations({opId})
Content-Type: text/plain
Content-Length: 0