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.
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) |
Device.CreateFromOwnedTemplate |
Indisponível. |
Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
Aplicativo |
Sem suporte. |
Sem suporte. |
Importante
Em cenários delegados com contas escolares ou profissionais, o utilizador com sessão iniciada tem de ter uma função de Microsoft Entra suportada ou uma função personalizada com uma permissão de função suportada. As seguintes funções com menos privilégios são suportadas para esta operação:
- Administrador de Dispositivos na Cloud
- Administrador de Dispositivos IoT
- Utilizadores – proprietários do objeto de modelo de dispositivo
Nota: Os utilizadores têm de 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 do pedido, forneça uma representação JSON dos parâmetros.
A tabela seguinte lista os parâmetros que pode utilizar quando chama esta 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 desativado não consegue autenticar-se com Microsoft Entra ID. Opcional. |
alternativeNames |
Coleção de cadeias de caracteres |
Uma coleção de IDs de recursos do ARM associados ao dispositivo, se existirem. Opcional. |
externalDeviceId |
Cadeia de caracteres |
ID do dispositivo no registo IoT. Tem de ser exclusivo dentro de um inquilino. Obrigatório. |
externalSourceName |
Cadeia de caracteres |
Identifica o nome de origem do dispositivo. Opcional. |
keyCredential |
keyCredential |
A credencial da chave quando utiliza certificados autoassinados. Opcional. |
operatingSystemVersion |
Cadeia de caracteres |
A versão do sistema operativo do dispositivo especificada. Opcional. |
Resposta
Se for bem-sucedida, esta ação devolve um 200 OK
código de resposta e um objeto de dispositivo no corpo da resposta.
Para obter mais informações, veja Respostas de erro e tipos de recursos 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);
mgc-beta templates device-templates create-device-from-template post --device-template-id {deviceTemplate-id} --body '{\
"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 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..."
}
]
}