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.
Crie um novo dispositivo a partir de um deviceTemplate.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global |
Governo dos EUA L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
❌ |
❌ |
❌ |
Permissões
Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
Device.CreateFromOwnedTemplate |
Indisponível. |
| Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
| Aplicativo |
Sem suporte. |
Sem suporte. |
Importante
Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. Esta operação dá suporte às seguintes funções internas, que fornecem apenas o menor privilégio necessário:
- Administrador de Dispositivo de Nuvem
- Administrador de Dispositivo IoT
- Usuários - proprietários do objeto de modelo de dispositivo
Observação: Os usuários devem ser proprietários do objeto.
Solicitação HTTP
POST /directory/templates/deviceTemplates/{deviceTemplateId}/createDeviceFromTemplate
| 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 da solicitação, forneça uma representação JSON dos parâmetros.
A tabela a seguir lista os parâmetros que você pode usar ao chamar essa ação.
| Parâmetro |
Tipo |
Descrição |
| accountEnabled |
Booliano |
true se a conta estiver habilitada; caso contrário, false. O valor padrão é true. Um dispositivo desabilitado não pode se autenticar com o Microsoft Entra ID. Opcional. |
| alternativeNames |
Coleção de cadeias de caracteres |
Uma coleção de IDs de recursos do ARM associadas ao dispositivo, se houver. Opcional. |
| externalDeviceId |
Cadeia de caracteres |
ID do dispositivo no registro IoT. Deve ser exclusivo em um locatário. Obrigatório. |
| externalSourceName |
Cadeia de caracteres |
Identifica o nome da origem do dispositivo. Opcional. |
| keyCredential |
keyCredential |
A credencial de chave quando você usa certificados autoassinados. Opcional. |
| operatingSystemVersion |
Cadeia de caracteres |
A versão do sistema operacional do dispositivo especificado. Opcional. |
Resposta
Se for bem-sucedida, essa ação retornará um código de 200 OK resposta e um objeto de dispositivo no corpo da resposta.
Para obter mais informações, consulte Tipos de recursos e respostas de erro do Microsoft Graph.
Exemplos
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/beta/templates/deviceTemplates/2d62b12a-0163-457d-9796-9602e9807e1/createDeviceFromTemplate
Content-Type: application/json
{
"externalDeviceId": "2fa9424e-7ab0-4a22-8c90-2a20d15d8183",
"operatingSystemVersion": "Ubuntu 18.04",
"externalSourceName": "unknown",
"accountEnabled": false,
"alternativeNames": [
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1"
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Templates.DeviceTemplates.Item.CreateDeviceFromTemplate;
var requestBody = new CreateDeviceFromTemplatePostRequestBody
{
ExternalDeviceId = "2fa9424e-7ab0-4a22-8c90-2a20d15d8183",
OperatingSystemVersion = "Ubuntu 18.04",
ExternalSourceName = "unknown",
AccountEnabled = false,
AlternativeNames = new List<string>
{
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Templates.DeviceTemplates["{deviceTemplate-id}"].CreateDeviceFromTemplate.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphtemplates "github.com/microsoftgraph/msgraph-beta-sdk-go/templates"
//other-imports
)
requestBody := graphtemplates.NewCreateDeviceFromTemplatePostRequestBody()
externalDeviceId := "2fa9424e-7ab0-4a22-8c90-2a20d15d8183"
requestBody.SetExternalDeviceId(&externalDeviceId)
operatingSystemVersion := "Ubuntu 18.04"
requestBody.SetOperatingSystemVersion(&operatingSystemVersion)
externalSourceName := "unknown"
requestBody.SetExternalSourceName(&externalSourceName)
accountEnabled := false
requestBody.SetAccountEnabled(&accountEnabled)
alternativeNames := []string {
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1",
}
requestBody.SetAlternativeNames(alternativeNames)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
createDeviceFromTemplate, err := graphClient.Templates().DeviceTemplates().ByDeviceTemplateId("deviceTemplate-id").CreateDeviceFromTemplate().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.templates.devicetemplates.item.createdevicefromtemplate.CreateDeviceFromTemplatePostRequestBody createDeviceFromTemplatePostRequestBody = new com.microsoft.graph.beta.templates.devicetemplates.item.createdevicefromtemplate.CreateDeviceFromTemplatePostRequestBody();
createDeviceFromTemplatePostRequestBody.setExternalDeviceId("2fa9424e-7ab0-4a22-8c90-2a20d15d8183");
createDeviceFromTemplatePostRequestBody.setOperatingSystemVersion("Ubuntu 18.04");
createDeviceFromTemplatePostRequestBody.setExternalSourceName("unknown");
createDeviceFromTemplatePostRequestBody.setAccountEnabled(false);
LinkedList<String> alternativeNames = new LinkedList<String>();
alternativeNames.add("/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1");
createDeviceFromTemplatePostRequestBody.setAlternativeNames(alternativeNames);
Device result = graphClient.templates().deviceTemplates().byDeviceTemplateId("{deviceTemplate-id}").createDeviceFromTemplate().post(createDeviceFromTemplatePostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const device = {
externalDeviceId: '2fa9424e-7ab0-4a22-8c90-2a20d15d8183',
operatingSystemVersion: 'Ubuntu 18.04',
externalSourceName: 'unknown',
accountEnabled: false,
alternativeNames: [
'/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1'
]
};
await client.api('/templates/deviceTemplates/2d62b12a-0163-457d-9796-9602e9807e1/createDeviceFromTemplate')
.version('beta')
.post(device);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Templates\DeviceTemplates\Item\CreateDeviceFromTemplate\CreateDeviceFromTemplatePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CreateDeviceFromTemplatePostRequestBody();
$requestBody->setExternalDeviceId('2fa9424e-7ab0-4a22-8c90-2a20d15d8183');
$requestBody->setOperatingSystemVersion('Ubuntu 18.04');
$requestBody->setExternalSourceName('unknown');
$requestBody->setAccountEnabled(false);
$requestBody->setAlternativeNames(['/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1', ]);
$result = $graphServiceClient->templates()->deviceTemplates()->byDeviceTemplateId('deviceTemplate-id')->createDeviceFromTemplate()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.templates.devicetemplates.item.create_device_from_template.create_device_from_template_post_request_body import CreateDeviceFromTemplatePostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = CreateDeviceFromTemplatePostRequestBody(
external_device_id = "2fa9424e-7ab0-4a22-8c90-2a20d15d8183",
operating_system_version = "Ubuntu 18.04",
external_source_name = "unknown",
account_enabled = False,
alternative_names = [
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1",
],
)
result = await graph_client.templates.device_templates.by_device_template_id('deviceTemplate-id').create_device_from_template.post(request_body)
Resposta
O exemplo a seguir mostra a resposta.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "06d59f74-dbf3-432a-9971-c5f60374e4f0",
"accountEnabled": false,
"alternativeNames": [
"/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/testrg/providers/microsoft.deviceregistry/assets/asset1"
],
"deviceId": "c6ca2657-8685-4398-9edc-a6a603f177b3",
"displayName": "2fa9424e-7ab0-4a22-8c90-2a20d15d8183",
"externalSourceName": "unknown",
"manufacturer": "IoT Device Template Manufacturer",
"model": "IoT Device Template Model",
"operatingSystem": "WindowsIoT",
"operatingSystemVersion": "Ubuntu 18.04",
"physicalIds": [
"[EXTID]:2fa9424e-7ab0-4a22-8c90-2a20d15d8183"
],
"profileType": "IoT",
"sourceType": "External",
"alternativeSecurityIds": [
{
"type": 2,
"identityProvider": null,
"key": "WAA1ADAAOQA6ADwAVQB..."
}
]
}