次の方法で共有


Devices.CreateOrUpdate(String, String, RequestContent, RequestContext) メソッド

定義

デバイス エンティティを作成します。

public virtual Azure.Response CreateOrUpdate (string sensorPartnerId, string deviceId, Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member CreateOrUpdate : string * string * Azure.Core.RequestContent * Azure.RequestContext -> Azure.Response
override this.CreateOrUpdate : string * string * Azure.Core.RequestContent * Azure.RequestContext -> Azure.Response
Public Overridable Function CreateOrUpdate (sensorPartnerId As String, deviceId As String, content As RequestContent, Optional context As RequestContext = Nothing) As Response

パラメーター

sensorPartnerId
String

センサー パートナーの ID。

deviceId
String

デバイス リソースの ID。

content
RequestContent

要求の本文として送信するコンテンツ。 要求本文スキーマの詳細については、以下の「解説」セクションを参照してください。

context
RequestContext

要求コンテキスト。これは、呼び出しごとにクライアント パイプラインの既定の動作をオーバーライドできます。

戻り値

サービスから返された応答。 応答本文スキーマの詳細については、以下の「解説」セクションを参照してください。

例外

sensorPartnerIddeviceId、または content が null です。

sensorPartnerId または deviceId が空の文字列であり、空でないと想定されていました。

サービスから成功以外の状態コードが返されました。

このサンプルでは、必要なパラメーターを使用して CreateOrUpdate を呼び出し、結果を解析する方法を示します。

var credential = new DefaultAzureCredential();
var client = new FarmBeatsClient(credential).GetDevicesClient(<2022-11-01-preview>);

var data = new {};

Response response = client.CreateOrUpdate("<sensorPartnerId>", "<deviceId>", RequestContent.Create(data));

JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;
Console.WriteLine(result.ToString());

このサンプルでは、すべてのパラメーターと要求コンテンツを使用して CreateOrUpdate を呼び出す方法と、結果を解析する方法を示します。

var credential = new DefaultAzureCredential();
var client = new FarmBeatsClient(credential).GetDevicesClient(<2022-11-01-preview>);

var data = new {
    deviceDataModelId = "<deviceDataModelId>",
    integrationId = "<integrationId>",
    type = "<type>",
    hardwareId = "<hardwareId>",
    reportingIntervalInSeconds = 1234,
    parentDeviceId = "<parentDeviceId>",
    location = new {
        latitude = 123.45d,
        longitude = 123.45d,
    },
    status = "<status>",
    name = "<name>",
    description = "<description>",
    properties = new {
        key = new {},
    },
};

Response response = client.CreateOrUpdate("<sensorPartnerId>", "<deviceId>", RequestContent.Create(data));

JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;
Console.WriteLine(result.GetProperty("deviceDataModelId").ToString());
Console.WriteLine(result.GetProperty("integrationId").ToString());
Console.WriteLine(result.GetProperty("type").ToString());
Console.WriteLine(result.GetProperty("hardwareId").ToString());
Console.WriteLine(result.GetProperty("reportingIntervalInSeconds").ToString());
Console.WriteLine(result.GetProperty("parentDeviceId").ToString());
Console.WriteLine(result.GetProperty("location").GetProperty("latitude").ToString());
Console.WriteLine(result.GetProperty("location").GetProperty("longitude").ToString());
Console.WriteLine(result.GetProperty("sensorPartnerId").ToString());
Console.WriteLine(result.GetProperty("id").ToString());
Console.WriteLine(result.GetProperty("status").ToString());
Console.WriteLine(result.GetProperty("createdDateTime").ToString());
Console.WriteLine(result.GetProperty("modifiedDateTime").ToString());
Console.WriteLine(result.GetProperty("eTag").ToString());
Console.WriteLine(result.GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("createdBy").ToString());
Console.WriteLine(result.GetProperty("modifiedBy").ToString());
Console.WriteLine(result.GetProperty("properties").GetProperty("<test>").ToString());

注釈

要求と応答のペイロードの JSON スキーマを次に示します。

要求本文:

Deviceスキーマ:

{
  deviceDataModelId: string, # Optional. Id of the associated device data model.
  integrationId: string, # Optional. Integration id for the device.
  type: string, # Optional. Type of device.
  hardwareId: string, # Optional. Device hardwareId.
  reportingIntervalInSeconds: number, # Optional. Interval at which the device sends data in seconds.
  parentDeviceId: string, # Optional. Parent device Id for this device.
  location: {
    latitude: number, # Required. Latitude of the location.
    longitude: number, # Required. Longitude of the location.
  }, # Optional. Location model class.
  sensorPartnerId: string, # Optional. Id of the associated sensor partner.
  id: string, # Optional. Id of the resource.
  status: string, # Optional. Status of the resource.
  createdDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.
  modifiedDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.
  eTag: string, # Optional. The ETag value to implement optimistic concurrency.
  name: string, # Optional. Name to identify resource.
  description: string, # Optional. Textual description of the resource.
  createdBy: string, # Optional. Created by user/tenant id.
  modifiedBy: string, # Optional. Modified by user/tenant id.
  properties: Dictionary<string, any>, # Optional. A collection of key value pairs that belongs to the resource.
Each pair must not have a key greater than 50 characters
and must not have a value greater than 150 characters.
Note: A maximum of 25 key value pairs can be provided for a resource and
only string, numeral and datetime (yyyy-MM-ddTHH:mm:ssZ) values are supported.
}

応答本文:

Deviceスキーマ:

{
  deviceDataModelId: string, # Optional. Id of the associated device data model.
  integrationId: string, # Optional. Integration id for the device.
  type: string, # Optional. Type of device.
  hardwareId: string, # Optional. Device hardwareId.
  reportingIntervalInSeconds: number, # Optional. Interval at which the device sends data in seconds.
  parentDeviceId: string, # Optional. Parent device Id for this device.
  location: {
    latitude: number, # Required. Latitude of the location.
    longitude: number, # Required. Longitude of the location.
  }, # Optional. Location model class.
  sensorPartnerId: string, # Optional. Id of the associated sensor partner.
  id: string, # Optional. Id of the resource.
  status: string, # Optional. Status of the resource.
  createdDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.
  modifiedDateTime: string (ISO 8601 Format), # Optional. Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.
  eTag: string, # Optional. The ETag value to implement optimistic concurrency.
  name: string, # Optional. Name to identify resource.
  description: string, # Optional. Textual description of the resource.
  createdBy: string, # Optional. Created by user/tenant id.
  modifiedBy: string, # Optional. Modified by user/tenant id.
  properties: Dictionary<string, any>, # Optional. A collection of key value pairs that belongs to the resource.
Each pair must not have a key greater than 50 characters
and must not have a value greater than 150 characters.
Note: A maximum of 25 key value pairs can be provided for a resource and
only string, numeral and datetime (yyyy-MM-ddTHH:mm:ssZ) values are supported.
}

適用対象