Espacio de nombres: microsoft.graph
Cree una copia de un equipo. Esta operación también crea una copia del grupo correspondiente.
Puede especificar qué partes del equipo se van a clonar:
-
apps : copia las aplicaciones de Microsoft Teams instaladas en el equipo.
-
channels : copia la estructura del canal (pero no los mensajes del canal).
-
members : copia los miembros y propietarios del grupo.
-
configuración : copia toda la configuración del equipo, junto con la configuración del grupo de claves.
-
pestañas : copia las pestañas dentro de los canales.
Nota:
Este método no es compatible con los equipos de toda la organización.
Nota:
Un problema conocido relacionado con los propietarios de equipos clonados está asociado a este método. Para obtener más información, consulte Problemas conocidos.
Cuando se clonan las pestañas, no se configuran. Las pestañas se muestran en la barra de pestañas de Microsoft Teams y, la primera vez que un usuario las abre, deben pasar por la pantalla de configuración.
Si el usuario que abre la pestaña no tiene permiso para configurar aplicaciones, verá un mensaje que indica que la pestaña no está configurada.
La clonación es una operación de larga duración. Una vez devuelto el clon POST, debe obtener la operación devuelta por el Location:
encabezado para ver si es running
, succeeded
o failed
. Debe continuar con GET hasta que el estado no running
sea . El retraso recomendado entre los GET es de 5 segundos.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
Servicio global |
Gobierno de EE. UU. L4 |
Us Government L5 (DOD) |
China operada por 21Vianet |
✅ |
✅ |
✅ |
✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso |
Permisos con privilegios mínimos |
Permisos con privilegios más altos |
Delegado (cuenta profesional o educativa) |
Team.Create |
Directory.ReadWrite.All, Group.ReadWrite.All |
Delegado (cuenta personal de Microsoft) |
No admitida. |
No admitida. |
Aplicación |
Team.Create |
Directory.ReadWrite.All, Group.ReadWrite.All |
Nota:
Group.ReadWrite.All y Directory.ReadWrite.All solo se admiten por compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo enumerado en la tabla anterior y así evitar el uso de estos permisos en el futuro.
Solicitud HTTP
POST /teams/{id}/clone
Cuerpo de la solicitud
Propiedad |
Tipo |
Descripción |
classification |
Cadena (opcional) |
Describe una clasificación para el grupo (como impacto empresarial bajo, medio o alto). Si no se especifica la clasificación, la clasificación se copia del equipo o grupo original. |
description |
Cadena (opcional) |
Una descripción opcional del grupo. Si no se especifica esta propiedad, se deja en blanco. |
displayName |
Cadena |
El nombre para mostrar del grupo. Esta propiedad es necesaria cuando se crea un grupo y no se puede borrar durante las actualizaciones. Es compatible con $filter y $orderby. |
mailNickname |
String |
El alias de correo del grupo, único en la organización. Esta propiedad debe especificarse al crear un grupo. Admite filter . Si no se especifica esta propiedad, se calcula a partir de displayName. Esta propiedad se omite actualmente. |
partsToClone |
clonableTeamParts |
Lista separada por comas de los elementos que se van a clonar. Las partes legales son "aplicaciones, pestañas, configuración, canales, miembros". |
visibility |
teamVisibilityType (opcional) |
Especifica la visibilidad del grupo. Los valores posibles son: Private, Public. Si no se especifica visibilidad, la visibilidad se copia del equipo o grupo original. Si el equipo que se va a clonar es un equipo de educationClass , se omite el parámetro de visibilidad y la visibilidad del nuevo grupo se establecerá en HiddenMembership. |
Nota:
Si la propiedad description no se especifica en el cuerpo de la solicitud, toma el valor de la propiedad displayName de la carga de la solicitud.
Respuesta
Si se ejecuta correctamente, este método devuelve un 202 Accepted
código de respuesta con un encabezado Location: que apunta al recurso de operación .
Una vez completada la operación, el recurso de operación le indica el identificador del equipo creado.
Ejemplo
Solicitud
En el ejemplo siguiente se muestra la solicitud.
POST https://graph.microsoft.com/v1.0/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"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Teams.Item.Clone;
using Microsoft.Graph.Models;
var requestBody = new ClonePostRequestBody
{
DisplayName = "Library Assist",
Description = "Self help community for library",
MailNickname = "libassist",
PartsToClone = ClonableTeamParts.Apps | ClonableTeamParts.Tabs | ClonableTeamParts.Settings | ClonableTeamParts.Channels | ClonableTeamParts.Members,
Visibility = TeamVisibilityType.Public,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Teams["{team-id}"].Clone.PostAsync(requestBody);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
mgc teams clone post --team-id {team-id} --body '{\
"displayName": "Library Assist",\
"description": "Self help community for library",\
"mailNickname": "libassist",\
"partsToClone": "apps,tabs,settings,channels,members",\
"visibility": "public"\
}\
'
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
// 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"
graphteams "github.com/microsoftgraph/msgraph-sdk-go/teams"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphteams.NewClonePostRequestBody()
displayName := "Library Assist"
requestBody.SetDisplayName(&displayName)
description := "Self help community for library"
requestBody.SetDescription(&description)
mailNickname := "libassist"
requestBody.SetMailNickname(&mailNickname)
partsToClone := graphmodels.APPS,TABS,SETTINGS,CHANNELS,MEMBERS_CLONABLETEAMPARTS
requestBody.SetPartsToClone(&partsToClone)
visibility := graphmodels.PUBLIC_TEAMVISIBILITYTYPE
requestBody.SetVisibility(&visibility)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.Teams().ByTeamId("team-id").Clone().Post(context.Background(), requestBody, nil)
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.teams.item.clone.ClonePostRequestBody clonePostRequestBody = new com.microsoft.graph.teams.item.clone.ClonePostRequestBody();
clonePostRequestBody.setDisplayName("Library Assist");
clonePostRequestBody.setDescription("Self help community for library");
clonePostRequestBody.setMailNickname("libassist");
clonePostRequestBody.setPartsToClone(EnumSet.of(ClonableTeamParts.Apps, ClonableTeamParts.Tabs, ClonableTeamParts.Settings, ClonableTeamParts.Channels, ClonableTeamParts.Members));
clonePostRequestBody.setVisibility(TeamVisibilityType.Public);
graphClient.teams().byTeamId("{team-id}").clone().post(clonePostRequestBody);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const clone = {
displayName: 'Library Assist',
description: 'Self help community for library',
mailNickname: 'libassist',
partsToClone: 'apps,tabs,settings,channels,members',
visibility: 'public'
};
await client.api('/teams/{id}/clone')
.post(clone);
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Teams\Item\Clone\ClonePostRequestBody;
use Microsoft\Graph\Generated\Models\ClonableTeamParts;
use Microsoft\Graph\Generated\Models\TeamVisibilityType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ClonePostRequestBody();
$requestBody->setDisplayName('Library Assist');
$requestBody->setDescription('Self help community for library');
$requestBody->setMailNickname('libassist');
$requestBody->setPartsToClone(new ClonableTeamParts('apps,tabs,settings,channels,members'));
$requestBody->setVisibility(new TeamVisibilityType('public'));
$graphServiceClient->teams()->byTeamId('team-id')->escapedClone()->post($requestBody)->wait();
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
Import-Module Microsoft.Graph.Teams
$params = @{
displayName = "Library Assist"
description = "Self help community for library"
mailNickname = "libassist"
partsToClone = "apps,tabs,settings,channels,members"
visibility = "public"
}
Copy-MgTeam -TeamId $teamId -BodyParameter $params
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.teams.item.clone.clone_post_request_body import ClonePostRequestBody
from msgraph.generated.models.clonable_team_parts import ClonableTeamParts
from msgraph.generated.models.team_visibility_type import TeamVisibilityType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ClonePostRequestBody(
display_name = "Library Assist",
description = "Self help community for library",
mail_nickname = "libassist",
parts_to_clone = ClonableTeamParts.Apps | ClonableTeamParts.Tabs | ClonableTeamParts.Settings | ClonableTeamParts.Channels | ClonableTeamParts.Members,
visibility = TeamVisibilityType.Public,
)
await graph_client.teams.by_team_id('team-id').clone.post(request_body)
Para obtener más información sobre cómo agregar el SDK al proyecto y crear una instancia de authProvider, consulte la documentación del SDK.
Respuesta
En el ejemplo siguiente se muestra la respuesta. Nota: el objeto de respuesta que se muestra aquí puede haberse acortado para mejorar la legibilidad.
HTTP/1.1 202 Accepted
Location: /teams({id})/operations({opId})
Content-Type: text/plain
Content-Length: 0
Contenido relacionado
Límites específicos del servicio de Microsoft Graph