/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is * regenerated. */ import * as msRest from "@azure/ms-rest-js"; import * as Models from "../models"; import * as Mappers from "../models/digitalTwinMappers"; import * as Parameters from "../models/parameters"; import { IotHubGatewayServiceAPIsContext } from "../iotHubGatewayServiceAPIsContext"; /** Class representing a DigitalTwin. */ export class DigitalTwin { private readonly client: IotHubGatewayServiceAPIsContext; /** * Create a DigitalTwin. * @param {IotHubGatewayServiceAPIsContext} client Reference to the service client. */ constructor(client: IotHubGatewayServiceAPIsContext) { this.client = client; } /** * @summary Gets a digital twin. * @param id Digital Twin ID. * @param [options] The optional parameters * @returns Promise */ getDigitalTwin(id: string, options?: msRest.RequestOptionsBase): Promise; /** * @param id Digital Twin ID. * @param callback The callback */ getDigitalTwin(id: string, callback: msRest.ServiceCallback): void; /** * @param id Digital Twin ID. * @param options The optional parameters * @param callback The callback */ getDigitalTwin(id: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; getDigitalTwin(id: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { return this.client.sendOperationRequest( { id, options }, getDigitalTwinOperationSpec, callback) as Promise; } /** * @summary Updates a digital twin. * @param id Digital Twin ID. * @param digitalTwinPatch json-patch contents to update. * @param [options] The optional parameters * @returns Promise */ updateDigitalTwin(id: string, digitalTwinPatch: any[], options?: Models.DigitalTwinUpdateDigitalTwinOptionalParams): Promise; /** * @param id Digital Twin ID. * @param digitalTwinPatch json-patch contents to update. * @param callback The callback */ updateDigitalTwin(id: string, digitalTwinPatch: any[], callback: msRest.ServiceCallback): void; /** * @param id Digital Twin ID. * @param digitalTwinPatch json-patch contents to update. * @param options The optional parameters * @param callback The callback */ updateDigitalTwin(id: string, digitalTwinPatch: any[], options: Models.DigitalTwinUpdateDigitalTwinOptionalParams, callback: msRest.ServiceCallback): void; updateDigitalTwin(id: string, digitalTwinPatch: any[], options?: Models.DigitalTwinUpdateDigitalTwinOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { return this.client.sendOperationRequest( { id, digitalTwinPatch, options }, updateDigitalTwinOperationSpec, callback) as Promise; } /** * Invoke a digital twin root level command. * @summary Invoke a digital twin root level command. * @param id * @param commandName * @param payload * @param [options] The optional parameters * @returns Promise */ invokeRootLevelCommand(id: string, commandName: string, payload: any, options?: Models.DigitalTwinInvokeRootLevelCommandOptionalParams): Promise; /** * @param id * @param commandName * @param payload * @param callback The callback */ invokeRootLevelCommand(id: string, commandName: string, payload: any, callback: msRest.ServiceCallback): void; /** * @param id * @param commandName * @param payload * @param options The optional parameters * @param callback The callback */ invokeRootLevelCommand(id: string, commandName: string, payload: any, options: Models.DigitalTwinInvokeRootLevelCommandOptionalParams, callback: msRest.ServiceCallback): void; invokeRootLevelCommand(id: string, commandName: string, payload: any, options?: Models.DigitalTwinInvokeRootLevelCommandOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { return this.client.sendOperationRequest( { id, commandName, payload, options }, invokeRootLevelCommandOperationSpec, callback) as Promise; } /** * Invoke a digital twin command. * @summary Invoke a digital twin command. * @param id * @param componentPath * @param commandName * @param payload * @param [options] The optional parameters * @returns Promise */ invokeComponentCommand(id: string, componentPath: string, commandName: string, payload: any, options?: Models.DigitalTwinInvokeComponentCommandOptionalParams): Promise; /** * @param id * @param componentPath * @param commandName * @param payload * @param callback The callback */ invokeComponentCommand(id: string, componentPath: string, commandName: string, payload: any, callback: msRest.ServiceCallback): void; /** * @param id * @param componentPath * @param commandName * @param payload * @param options The optional parameters * @param callback The callback */ invokeComponentCommand(id: string, componentPath: string, commandName: string, payload: any, options: Models.DigitalTwinInvokeComponentCommandOptionalParams, callback: msRest.ServiceCallback): void; invokeComponentCommand(id: string, componentPath: string, commandName: string, payload: any, options?: Models.DigitalTwinInvokeComponentCommandOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { return this.client.sendOperationRequest( { id, componentPath, commandName, payload, options }, invokeComponentCommandOperationSpec, callback) as Promise; } } // Operation Specifications const serializer = new msRest.Serializer(Mappers); const getDigitalTwinOperationSpec: msRest.OperationSpec = { httpMethod: "GET", path: "digitaltwins/{id}", urlParameters: [ Parameters.id ], queryParameters: [ Parameters.apiVersion ], responses: { 200: { bodyMapper: { serializedName: "parsedResponse", type: { name: "Object" } }, headersMapper: Mappers.DigitalTwinGetDigitalTwinHeaders }, default: {} }, serializer }; const updateDigitalTwinOperationSpec: msRest.OperationSpec = { httpMethod: "PATCH", path: "digitaltwins/{id}", urlParameters: [ Parameters.id ], queryParameters: [ Parameters.apiVersion ], headerParameters: [ Parameters.ifMatch ], requestBody: { parameterPath: "digitalTwinPatch", mapper: { required: true, serializedName: "digitalTwinPatch", type: { name: "Sequence", element: { type: { name: "Object" } } } } }, responses: { 202: { headersMapper: Mappers.DigitalTwinUpdateDigitalTwinHeaders }, default: {} }, serializer }; const invokeRootLevelCommandOperationSpec: msRest.OperationSpec = { httpMethod: "POST", path: "digitaltwins/{id}/commands/{commandName}", urlParameters: [ Parameters.id, Parameters.commandName ], queryParameters: [ Parameters.apiVersion, Parameters.connectTimeoutInSeconds, Parameters.responseTimeoutInSeconds ], requestBody: { parameterPath: "payload", mapper: { required: true, serializedName: "payload", type: { name: "Object" } } }, responses: { 200: { bodyMapper: { serializedName: "parsedResponse", type: { name: "Object" } }, headersMapper: Mappers.DigitalTwinInvokeRootLevelCommandHeaders }, default: {} }, serializer }; const invokeComponentCommandOperationSpec: msRest.OperationSpec = { httpMethod: "POST", path: "digitaltwins/{id}/components/{componentPath}/commands/{commandName}", urlParameters: [ Parameters.id, Parameters.componentPath, Parameters.commandName ], queryParameters: [ Parameters.apiVersion, Parameters.connectTimeoutInSeconds, Parameters.responseTimeoutInSeconds ], requestBody: { parameterPath: "payload", mapper: { required: true, serializedName: "payload", type: { name: "Object" } } }, responses: { 200: { bodyMapper: { serializedName: "parsedResponse", type: { name: "Object" } }, headersMapper: Mappers.DigitalTwinInvokeComponentCommandHeaders }, default: {} }, serializer };