"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryEventResponseBody = exports.QueryEventRequest = exports.QueryEventHeaders = exports.QueryDevicePkResponse = exports.QueryDevicePkResponseBody = exports.QueryDevicePkRequest = exports.QueryDevicePkHeaders = exports.QueryDeviceResponse = exports.QueryDeviceResponseBody = exports.QueryDeviceRequest = exports.QueryDeviceHeaders = exports.PushEventResponse = exports.PushEventResponseBody = exports.PushEventRequest = exports.PushEventHeaders = exports.DiotMarketManagerResponse = exports.DiotMarketManagerResponseBody = exports.DiotSystemMarkTestResponse = exports.DiotSystemMarkTestResponseBody = exports.DiotMarketManagerTestResponse = exports.DiotMarketManagerTestResponseBody = exports.DiotMamaResponse = exports.DiotMamaResponseBody = exports.DeviceConferenceResponse = exports.DeviceConferenceResponseBody = exports.DeviceConferenceRequest = exports.DeviceConferenceHeaders = exports.BindSystemResponse = exports.BindSystemResponseBody = exports.BindSystemRequest = exports.BindSystemHeaders = exports.BatchUpdateDeviceResponse = exports.BatchUpdateDeviceResponseBody = exports.BatchUpdateDeviceRequest = exports.BatchUpdateDeviceHeaders = exports.BatchRegisterEventTypeResponse = exports.BatchRegisterEventTypeResponseBody = exports.BatchRegisterEventTypeRequest = exports.BatchRegisterEventTypeHeaders = exports.BatchRegisterDeviceResponse = exports.BatchRegisterDeviceResponseBody = exports.BatchRegisterDeviceRequest = exports.BatchRegisterDeviceHeaders = exports.BatchDeleteDeviceResponse = exports.BatchDeleteDeviceResponseBody = exports.BatchDeleteDeviceRequest = exports.BatchDeleteDeviceHeaders = exports.AyunOnlienTestResponse = exports.AyunOnlienTestResponseBody = exports.AyunOnlienTestRequest = void 0;
exports.RegisterDeviceRequestLiveUrls = exports.QueryEventResponseBodyData = exports.QueryDeviceResponseBodyData = exports.QueryDeviceResponseBodyDataLiveUrls = exports.BatchUpdateDeviceRequestDevices = exports.BatchUpdateDeviceRequestDevicesLiveUrls = exports.BatchRegisterEventTypeRequestEventTypes = exports.BatchRegisterDeviceRequestDevices = exports.BatchRegisterDeviceRequestDevicesLiveUrls = exports.WorkbenchTransformInfoResponse = exports.WorkbenchTransformInfoResponseBody = exports.UpgradeDeviceResponse = exports.UpgradeDeviceResponseBody = exports.RegisterDeviceResponse = exports.RegisterDeviceResponseBody = exports.RegisterDeviceRequest = exports.RegisterDeviceHeaders = exports.QueryEventResponse = void 0;
// This file is auto-generated, don't edit it
/**
 */
const tea_util_1 = __importStar(require("@alicloud/tea-util")), $Util = tea_util_1;
const gateway_dingtalk_1 = __importDefault(require("@alicloud/gateway-dingtalk"));
const openapi_client_1 = __importStar(require("@alicloud/openapi-client")), $OpenApi = openapi_client_1;
const openapi_util_1 = __importDefault(require("@alicloud/openapi-util"));
const $tea = __importStar(require("@alicloud/tea-typescript"));
class AyunOnlienTestRequest extends $tea.Model {
    static names() {
        return {
            reqId: 'reqId',
        };
    }
    static types() {
        return {
            reqId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AyunOnlienTestRequest = AyunOnlienTestRequest;
class AyunOnlienTestResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AyunOnlienTestResponseBody = AyunOnlienTestResponseBody;
class AyunOnlienTestResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: AyunOnlienTestResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AyunOnlienTestResponse = AyunOnlienTestResponse;
class BatchDeleteDeviceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchDeleteDeviceHeaders = BatchDeleteDeviceHeaders;
class BatchDeleteDeviceRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            deviceIds: 'deviceIds',
        };
    }
    static types() {
        return {
            corpId: 'string',
            deviceIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchDeleteDeviceRequest = BatchDeleteDeviceRequest;
class BatchDeleteDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            deviceIds: 'deviceIds',
        };
    }
    static types() {
        return {
            deviceIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchDeleteDeviceResponseBody = BatchDeleteDeviceResponseBody;
class BatchDeleteDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: BatchDeleteDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchDeleteDeviceResponse = BatchDeleteDeviceResponse;
class BatchRegisterDeviceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceHeaders = BatchRegisterDeviceHeaders;
class BatchRegisterDeviceRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            devices: 'devices',
        };
    }
    static types() {
        return {
            corpId: 'string',
            devices: { 'type': 'array', 'itemType': BatchRegisterDeviceRequestDevices },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceRequest = BatchRegisterDeviceRequest;
class BatchRegisterDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            deviceIds: 'deviceIds',
        };
    }
    static types() {
        return {
            deviceIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceResponseBody = BatchRegisterDeviceResponseBody;
class BatchRegisterDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: BatchRegisterDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceResponse = BatchRegisterDeviceResponse;
class BatchRegisterEventTypeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterEventTypeHeaders = BatchRegisterEventTypeHeaders;
class BatchRegisterEventTypeRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            eventTypes: 'eventTypes',
        };
    }
    static types() {
        return {
            corpId: 'string',
            eventTypes: { 'type': 'array', 'itemType': BatchRegisterEventTypeRequestEventTypes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterEventTypeRequest = BatchRegisterEventTypeRequest;
class BatchRegisterEventTypeResponseBody extends $tea.Model {
    static names() {
        return {
            eventTypes: 'eventTypes',
        };
    }
    static types() {
        return {
            eventTypes: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterEventTypeResponseBody = BatchRegisterEventTypeResponseBody;
class BatchRegisterEventTypeResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: BatchRegisterEventTypeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterEventTypeResponse = BatchRegisterEventTypeResponse;
class BatchUpdateDeviceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceHeaders = BatchUpdateDeviceHeaders;
class BatchUpdateDeviceRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            devices: 'devices',
        };
    }
    static types() {
        return {
            corpId: 'string',
            devices: { 'type': 'array', 'itemType': BatchUpdateDeviceRequestDevices },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceRequest = BatchUpdateDeviceRequest;
class BatchUpdateDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            deviceIds: 'deviceIds',
        };
    }
    static types() {
        return {
            deviceIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceResponseBody = BatchUpdateDeviceResponseBody;
class BatchUpdateDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: BatchUpdateDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceResponse = BatchUpdateDeviceResponse;
class BindSystemHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BindSystemHeaders = BindSystemHeaders;
class BindSystemRequest extends $tea.Model {
    static names() {
        return {
            authCode: 'authCode',
            clientId: 'clientId',
            clientName: 'clientName',
            corpId: 'corpId',
            extraData: 'extraData',
        };
    }
    static types() {
        return {
            authCode: 'string',
            clientId: 'string',
            clientName: 'string',
            corpId: 'string',
            extraData: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BindSystemRequest = BindSystemRequest;
class BindSystemResponseBody extends $tea.Model {
    static names() {
        return {
            clientId: 'clientId',
            corpId: 'corpId',
        };
    }
    static types() {
        return {
            clientId: 'string',
            corpId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BindSystemResponseBody = BindSystemResponseBody;
class BindSystemResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: BindSystemResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BindSystemResponse = BindSystemResponse;
class DeviceConferenceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeviceConferenceHeaders = DeviceConferenceHeaders;
class DeviceConferenceRequest extends $tea.Model {
    static names() {
        return {
            confTitle: 'confTitle',
            conferenceId: 'conferenceId',
            conferencePassword: 'conferencePassword',
            deviceIds: 'deviceIds',
        };
    }
    static types() {
        return {
            confTitle: 'string',
            conferenceId: 'string',
            conferencePassword: 'string',
            deviceIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeviceConferenceRequest = DeviceConferenceRequest;
class DeviceConferenceResponseBody extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeviceConferenceResponseBody = DeviceConferenceResponseBody;
class DeviceConferenceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DeviceConferenceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeviceConferenceResponse = DeviceConferenceResponse;
class DiotMamaResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMamaResponseBody = DiotMamaResponseBody;
class DiotMamaResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DiotMamaResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMamaResponse = DiotMamaResponse;
class DiotMarketManagerTestResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMarketManagerTestResponseBody = DiotMarketManagerTestResponseBody;
class DiotMarketManagerTestResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DiotMarketManagerTestResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMarketManagerTestResponse = DiotMarketManagerTestResponse;
class DiotSystemMarkTestResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotSystemMarkTestResponseBody = DiotSystemMarkTestResponseBody;
class DiotSystemMarkTestResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DiotSystemMarkTestResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotSystemMarkTestResponse = DiotSystemMarkTestResponse;
class DiotMarketManagerResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMarketManagerResponseBody = DiotMarketManagerResponseBody;
class DiotMarketManagerResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DiotMarketManagerResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DiotMarketManagerResponse = DiotMarketManagerResponse;
class PushEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PushEventHeaders = PushEventHeaders;
class PushEventRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            deviceId: 'deviceId',
            eventId: 'eventId',
            eventName: 'eventName',
            eventType: 'eventType',
            extraData: 'extraData',
            location: 'location',
            msg: 'msg',
            occurrenceTime: 'occurrenceTime',
            picUrls: 'picUrls',
        };
    }
    static types() {
        return {
            corpId: 'string',
            deviceId: 'string',
            eventId: 'string',
            eventName: 'string',
            eventType: 'string',
            extraData: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            location: 'string',
            msg: 'string',
            occurrenceTime: 'number',
            picUrls: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PushEventRequest = PushEventRequest;
class PushEventResponseBody extends $tea.Model {
    static names() {
        return {
            eventId: 'eventId',
        };
    }
    static types() {
        return {
            eventId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PushEventResponseBody = PushEventResponseBody;
class PushEventResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: PushEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PushEventResponse = PushEventResponse;
class QueryDeviceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceHeaders = QueryDeviceHeaders;
class QueryDeviceRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
        };
    }
    static types() {
        return {
            corpId: 'string',
            pageNumber: 'number',
            pageSize: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceRequest = QueryDeviceRequest;
class QueryDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            data: 'data',
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
            totalCount: 'totalCount',
        };
    }
    static types() {
        return {
            data: { 'type': 'array', 'itemType': QueryDeviceResponseBodyData },
            pageNumber: 'number',
            pageSize: 'number',
            totalCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceResponseBody = QueryDeviceResponseBody;
class QueryDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceResponse = QueryDeviceResponse;
class QueryDevicePkHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDevicePkHeaders = QueryDevicePkHeaders;
class QueryDevicePkRequest extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
        };
    }
    static types() {
        return {
            deviceId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDevicePkRequest = QueryDevicePkRequest;
class QueryDevicePkResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDevicePkResponseBody = QueryDevicePkResponseBody;
class QueryDevicePkResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryDevicePkResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDevicePkResponse = QueryDevicePkResponse;
class QueryEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryEventHeaders = QueryEventHeaders;
class QueryEventRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            deviceIdList: 'deviceIdList',
            endTime: 'endTime',
            eventId: 'eventId',
            eventStatusList: 'eventStatusList',
            eventTypeList: 'eventTypeList',
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
            startTime: 'startTime',
        };
    }
    static types() {
        return {
            corpId: 'string',
            deviceIdList: { 'type': 'array', 'itemType': 'string' },
            endTime: 'number',
            eventId: 'string',
            eventStatusList: { 'type': 'array', 'itemType': 'number' },
            eventTypeList: { 'type': 'array', 'itemType': 'string' },
            pageNumber: 'number',
            pageSize: 'number',
            startTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryEventRequest = QueryEventRequest;
class QueryEventResponseBody extends $tea.Model {
    static names() {
        return {
            data: 'data',
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
            totalCount: 'totalCount',
        };
    }
    static types() {
        return {
            data: { 'type': 'array', 'itemType': QueryEventResponseBodyData },
            pageNumber: 'number',
            pageSize: 'number',
            totalCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryEventResponseBody = QueryEventResponseBody;
class QueryEventResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryEventResponse = QueryEventResponse;
class RegisterDeviceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RegisterDeviceHeaders = RegisterDeviceHeaders;
class RegisterDeviceRequest extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            deviceName: 'deviceName',
            deviceStatus: 'deviceStatus',
            deviceType: 'deviceType',
            deviceTypeName: 'deviceTypeName',
            id: 'id',
            liveUrls: 'liveUrls',
            location: 'location',
            nickName: 'nickName',
            parentId: 'parentId',
            productType: 'productType',
        };
    }
    static types() {
        return {
            corpId: 'string',
            deviceName: 'string',
            deviceStatus: 'number',
            deviceType: 'string',
            deviceTypeName: 'string',
            id: 'string',
            liveUrls: RegisterDeviceRequestLiveUrls,
            location: 'string',
            nickName: 'string',
            parentId: 'string',
            productType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RegisterDeviceRequest = RegisterDeviceRequest;
class RegisterDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
        };
    }
    static types() {
        return {
            deviceId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RegisterDeviceResponseBody = RegisterDeviceResponseBody;
class RegisterDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: RegisterDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RegisterDeviceResponse = RegisterDeviceResponse;
class UpgradeDeviceResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpgradeDeviceResponseBody = UpgradeDeviceResponseBody;
class UpgradeDeviceResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: UpgradeDeviceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpgradeDeviceResponse = UpgradeDeviceResponse;
class WorkbenchTransformInfoResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.WorkbenchTransformInfoResponseBody = WorkbenchTransformInfoResponseBody;
class WorkbenchTransformInfoResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: WorkbenchTransformInfoResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.WorkbenchTransformInfoResponse = WorkbenchTransformInfoResponse;
class BatchRegisterDeviceRequestDevicesLiveUrls extends $tea.Model {
    static names() {
        return {
            flv: 'flv',
            hls: 'hls',
            rtmp: 'rtmp',
        };
    }
    static types() {
        return {
            flv: 'string',
            hls: 'string',
            rtmp: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceRequestDevicesLiveUrls = BatchRegisterDeviceRequestDevicesLiveUrls;
class BatchRegisterDeviceRequestDevices extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            deviceStatus: 'deviceStatus',
            deviceType: 'deviceType',
            deviceTypeName: 'deviceTypeName',
            extraData: 'extraData',
            liveUrls: 'liveUrls',
            location: 'location',
            parentId: 'parentId',
            productType: 'productType',
        };
    }
    static types() {
        return {
            deviceId: 'string',
            deviceName: 'string',
            deviceStatus: 'number',
            deviceType: 'string',
            deviceTypeName: 'string',
            extraData: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            liveUrls: BatchRegisterDeviceRequestDevicesLiveUrls,
            location: 'string',
            parentId: 'string',
            productType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterDeviceRequestDevices = BatchRegisterDeviceRequestDevices;
class BatchRegisterEventTypeRequestEventTypes extends $tea.Model {
    static names() {
        return {
            eventType: 'eventType',
            eventTypeName: 'eventTypeName',
        };
    }
    static types() {
        return {
            eventType: 'string',
            eventTypeName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRegisterEventTypeRequestEventTypes = BatchRegisterEventTypeRequestEventTypes;
class BatchUpdateDeviceRequestDevicesLiveUrls extends $tea.Model {
    static names() {
        return {
            flv: 'flv',
            hls: 'hls',
            rtmp: 'rtmp',
        };
    }
    static types() {
        return {
            flv: 'string',
            hls: 'string',
            rtmp: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceRequestDevicesLiveUrls = BatchUpdateDeviceRequestDevicesLiveUrls;
class BatchUpdateDeviceRequestDevices extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            deviceStatus: 'deviceStatus',
            extraData: 'extraData',
            liveUrls: 'liveUrls',
            location: 'location',
        };
    }
    static types() {
        return {
            deviceId: 'string',
            deviceName: 'string',
            deviceStatus: 'number',
            extraData: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            liveUrls: BatchUpdateDeviceRequestDevicesLiveUrls,
            location: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchUpdateDeviceRequestDevices = BatchUpdateDeviceRequestDevices;
class QueryDeviceResponseBodyDataLiveUrls extends $tea.Model {
    static names() {
        return {
            flv: 'flv',
            hls: 'hls',
            rtmp: 'rtmp',
        };
    }
    static types() {
        return {
            flv: 'string',
            hls: 'string',
            rtmp: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceResponseBodyDataLiveUrls = QueryDeviceResponseBodyDataLiveUrls;
class QueryDeviceResponseBodyData extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            deviceStatus: 'deviceStatus',
            deviceType: 'deviceType',
            deviceTypeName: 'deviceTypeName',
            liveUrls: 'liveUrls',
            location: 'location',
            parentId: 'parentId',
            productType: 'productType',
        };
    }
    static types() {
        return {
            deviceId: 'string',
            deviceName: 'string',
            deviceStatus: 'number',
            deviceType: 'string',
            deviceTypeName: 'string',
            liveUrls: QueryDeviceResponseBodyDataLiveUrls,
            location: 'string',
            parentId: 'string',
            productType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryDeviceResponseBodyData = QueryDeviceResponseBodyData;
class QueryEventResponseBodyData extends $tea.Model {
    static names() {
        return {
            eventId: 'eventId',
            eventName: 'eventName',
            eventStatus: 'eventStatus',
            eventType: 'eventType',
            msg: 'msg',
            occurrenceTime: 'occurrenceTime',
            picUrls: 'picUrls',
        };
    }
    static types() {
        return {
            eventId: 'string',
            eventName: 'string',
            eventStatus: 'number',
            eventType: 'string',
            msg: 'string',
            occurrenceTime: 'number',
            picUrls: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryEventResponseBodyData = QueryEventResponseBodyData;
class RegisterDeviceRequestLiveUrls extends $tea.Model {
    static names() {
        return {
            flv: 'flv',
            hls: 'hls',
            rtmp: 'rtmp',
        };
    }
    static types() {
        return {
            flv: 'string',
            hls: 'string',
            rtmp: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RegisterDeviceRequestLiveUrls = RegisterDeviceRequestLiveUrls;
class Client extends openapi_client_1.default {
    constructor(config) {
        super(config);
        let gatewayClient = new gateway_dingtalk_1.default();
        this._spi = gatewayClient;
        this._endpointRule = "";
        if (tea_util_1.default.empty(this._endpoint)) {
            this._endpoint = "api.dingtalk.com";
        }
    }
    /**
     * openAPI录入上线前的测试2
     *
     * @param request - AyunOnlienTestRequest
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AyunOnlienTestResponse
     */
    async ayunOnlienTestWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.reqId)) {
            query["reqId"] = request.reqId;
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "AyunOnlienTest",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/ayunTest`,
            method: "GET",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AyunOnlienTestResponse({}));
    }
    /**
     * openAPI录入上线前的测试2
     *
     * @param request - AyunOnlienTestRequest
     * @returns AyunOnlienTestResponse
     */
    async ayunOnlienTest(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.ayunOnlienTestWithOptions(request, headers, runtime);
    }
    /**
     * 删除设备
     *
     * @param request - BatchDeleteDeviceRequest
     * @param headers - BatchDeleteDeviceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchDeleteDeviceResponse
     */
    async batchDeleteDeviceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.deviceIds)) {
            body["deviceIds"] = request.deviceIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchDeleteDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices/remove`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchDeleteDeviceResponse({}));
    }
    /**
     * 删除设备
     *
     * @param request - BatchDeleteDeviceRequest
     * @returns BatchDeleteDeviceResponse
     */
    async batchDeleteDevice(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchDeleteDeviceHeaders({});
        return await this.batchDeleteDeviceWithOptions(request, headers, runtime);
    }
    /**
     * 批量注册设备
     *
     * @param request - BatchRegisterDeviceRequest
     * @param headers - BatchRegisterDeviceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchRegisterDeviceResponse
     */
    async batchRegisterDeviceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.devices)) {
            body["devices"] = request.devices;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchRegisterDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices/registrations/batch`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchRegisterDeviceResponse({}));
    }
    /**
     * 批量注册设备
     *
     * @param request - BatchRegisterDeviceRequest
     * @returns BatchRegisterDeviceResponse
     */
    async batchRegisterDevice(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchRegisterDeviceHeaders({});
        return await this.batchRegisterDeviceWithOptions(request, headers, runtime);
    }
    /**
     * 批量注册事件类型
     *
     * @param request - BatchRegisterEventTypeRequest
     * @param headers - BatchRegisterEventTypeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchRegisterEventTypeResponse
     */
    async batchRegisterEventTypeWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.eventTypes)) {
            body["eventTypes"] = request.eventTypes;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchRegisterEventType",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/eventTypes/registrations/batch`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchRegisterEventTypeResponse({}));
    }
    /**
     * 批量注册事件类型
     *
     * @param request - BatchRegisterEventTypeRequest
     * @returns BatchRegisterEventTypeResponse
     */
    async batchRegisterEventType(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchRegisterEventTypeHeaders({});
        return await this.batchRegisterEventTypeWithOptions(request, headers, runtime);
    }
    /**
     * 批量修改设备
     *
     * @param request - BatchUpdateDeviceRequest
     * @param headers - BatchUpdateDeviceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchUpdateDeviceResponse
     */
    async batchUpdateDeviceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.devices)) {
            body["devices"] = request.devices;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchUpdateDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices/batch`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchUpdateDeviceResponse({}));
    }
    /**
     * 批量修改设备
     *
     * @param request - BatchUpdateDeviceRequest
     * @returns BatchUpdateDeviceResponse
     */
    async batchUpdateDevice(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchUpdateDeviceHeaders({});
        return await this.batchUpdateDeviceWithOptions(request, headers, runtime);
    }
    /**
     * 系统绑定
     *
     * @param request - BindSystemRequest
     * @param headers - BindSystemHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BindSystemResponse
     */
    async bindSystemWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.authCode)) {
            body["authCode"] = request.authCode;
        }
        if (!tea_util_1.default.isUnset(request.clientId)) {
            body["clientId"] = request.clientId;
        }
        if (!tea_util_1.default.isUnset(request.clientName)) {
            body["clientName"] = request.clientName;
        }
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.extraData)) {
            body["extraData"] = request.extraData;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BindSystem",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/systems/bind`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BindSystemResponse({}));
    }
    /**
     * 系统绑定
     *
     * @param request - BindSystemRequest
     * @returns BindSystemResponse
     */
    async bindSystem(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BindSystemHeaders({});
        return await this.bindSystemWithOptions(request, headers, runtime);
    }
    /**
     * 发起设备会议
     *
     * @param request - DeviceConferenceRequest
     * @param headers - DeviceConferenceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeviceConferenceResponse
     */
    async deviceConferenceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.confTitle)) {
            body["confTitle"] = request.confTitle;
        }
        if (!tea_util_1.default.isUnset(request.conferenceId)) {
            body["conferenceId"] = request.conferenceId;
        }
        if (!tea_util_1.default.isUnset(request.conferencePassword)) {
            body["conferencePassword"] = request.conferencePassword;
        }
        if (!tea_util_1.default.isUnset(request.deviceIds)) {
            body["deviceIds"] = request.deviceIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "DeviceConference",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/deviceConferences/initiate`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeviceConferenceResponse({}));
    }
    /**
     * 发起设备会议
     *
     * @param request - DeviceConferenceRequest
     * @returns DeviceConferenceResponse
     */
    async deviceConference(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeviceConferenceHeaders({});
        return await this.deviceConferenceWithOptions(request, headers, runtime);
    }
    /**
     * 钉钉物联Mama接口
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DiotMamaResponse
     */
    async diotMamaWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "DiotMama",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot`,
            method: "GET",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DiotMamaResponse({}));
    }
    /**
     * 钉钉物联Mama接口
     * @returns DiotMamaResponse
     */
    async diotMama() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.diotMamaWithOptions(headers, runtime);
    }
    /**
     * diot官方市场处理
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DiotMarketManagerTestResponse
     */
    async diotMarketManagerTestWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "DiotMarketManagerTest",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/market/manager/test`,
            method: "PUT",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DiotMarketManagerTestResponse({}));
    }
    /**
     * diot官方市场处理
     * @returns DiotMarketManagerTestResponse
     */
    async diotMarketManagerTest() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.diotMarketManagerTestWithOptions(headers, runtime);
    }
    /**
     * 钉钉物联系统测试
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DiotSystemMarkTestResponse
     */
    async diotSystemMarkTestWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "DiotSystemMarkTest",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/sys/mark/test`,
            method: "GET",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DiotSystemMarkTestResponse({}));
    }
    /**
     * 钉钉物联系统测试
     * @returns DiotSystemMarkTestResponse
     */
    async diotSystemMarkTest() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.diotSystemMarkTestWithOptions(headers, runtime);
    }
    /**
     * 钉钉物联市场管理
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DiotMarketManagerResponse
     */
    async diot_Market_ManagerWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "Diot_Market_Manager",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/market/manager`,
            method: "GET",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DiotMarketManagerResponse({}));
    }
    /**
     * 钉钉物联市场管理
     * @returns DiotMarketManagerResponse
     */
    async diot_Market_Manager() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.diot_Market_ManagerWithOptions(headers, runtime);
    }
    /**
     * 推送事件
     *
     * @param request - PushEventRequest
     * @param headers - PushEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns PushEventResponse
     */
    async pushEventWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.deviceId)) {
            body["deviceId"] = request.deviceId;
        }
        if (!tea_util_1.default.isUnset(request.eventId)) {
            body["eventId"] = request.eventId;
        }
        if (!tea_util_1.default.isUnset(request.eventName)) {
            body["eventName"] = request.eventName;
        }
        if (!tea_util_1.default.isUnset(request.eventType)) {
            body["eventType"] = request.eventType;
        }
        if (!tea_util_1.default.isUnset(request.extraData)) {
            body["extraData"] = request.extraData;
        }
        if (!tea_util_1.default.isUnset(request.location)) {
            body["location"] = request.location;
        }
        if (!tea_util_1.default.isUnset(request.msg)) {
            body["msg"] = request.msg;
        }
        if (!tea_util_1.default.isUnset(request.occurrenceTime)) {
            body["occurrenceTime"] = request.occurrenceTime;
        }
        if (!tea_util_1.default.isUnset(request.picUrls)) {
            body["picUrls"] = request.picUrls;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "PushEvent",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/events/push`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new PushEventResponse({}));
    }
    /**
     * 推送事件
     *
     * @param request - PushEventRequest
     * @returns PushEventResponse
     */
    async pushEvent(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new PushEventHeaders({});
        return await this.pushEventWithOptions(request, headers, runtime);
    }
    /**
     * 查询设备
     *
     * @param request - QueryDeviceRequest
     * @param headers - QueryDeviceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryDeviceResponse
     */
    async queryDeviceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            query["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            query["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            query["pageSize"] = request.pageSize;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "QueryDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryDeviceResponse({}));
    }
    /**
     * 查询设备
     *
     * @param request - QueryDeviceRequest
     * @returns QueryDeviceResponse
     */
    async queryDevice(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryDeviceHeaders({});
        return await this.queryDeviceWithOptions(request, headers, runtime);
    }
    /**
     * 查询硬件设备的PK值信息
     *
     * @param request - QueryDevicePkRequest
     * @param headers - QueryDevicePkHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryDevicePkResponse
     */
    async queryDevicePkWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.deviceId)) {
            body["deviceId"] = request.deviceId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "QueryDevicePk",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices/pkInfos/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryDevicePkResponse({}));
    }
    /**
     * 查询硬件设备的PK值信息
     *
     * @param request - QueryDevicePkRequest
     * @returns QueryDevicePkResponse
     */
    async queryDevicePk(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryDevicePkHeaders({});
        return await this.queryDevicePkWithOptions(request, headers, runtime);
    }
    /**
     * 查询事件
     *
     * @param request - QueryEventRequest
     * @param headers - QueryEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryEventResponse
     */
    async queryEventWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.deviceIdList)) {
            body["deviceIdList"] = request.deviceIdList;
        }
        if (!tea_util_1.default.isUnset(request.endTime)) {
            body["endTime"] = request.endTime;
        }
        if (!tea_util_1.default.isUnset(request.eventId)) {
            body["eventId"] = request.eventId;
        }
        if (!tea_util_1.default.isUnset(request.eventStatusList)) {
            body["eventStatusList"] = request.eventStatusList;
        }
        if (!tea_util_1.default.isUnset(request.eventTypeList)) {
            body["eventTypeList"] = request.eventTypeList;
        }
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            body["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            body["pageSize"] = request.pageSize;
        }
        if (!tea_util_1.default.isUnset(request.startTime)) {
            body["startTime"] = request.startTime;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "QueryEvent",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/events/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryEventResponse({}));
    }
    /**
     * 查询事件
     *
     * @param request - QueryEventRequest
     * @returns QueryEventResponse
     */
    async queryEvent(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryEventHeaders({});
        return await this.queryEventWithOptions(request, headers, runtime);
    }
    /**
     * 注册设备
     *
     * @param request - RegisterDeviceRequest
     * @param headers - RegisterDeviceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RegisterDeviceResponse
     */
    async registerDeviceWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.corpId)) {
            body["corpId"] = request.corpId;
        }
        if (!tea_util_1.default.isUnset(request.deviceName)) {
            body["deviceName"] = request.deviceName;
        }
        if (!tea_util_1.default.isUnset(request.deviceStatus)) {
            body["deviceStatus"] = request.deviceStatus;
        }
        if (!tea_util_1.default.isUnset(request.deviceType)) {
            body["deviceType"] = request.deviceType;
        }
        if (!tea_util_1.default.isUnset(request.deviceTypeName)) {
            body["deviceTypeName"] = request.deviceTypeName;
        }
        if (!tea_util_1.default.isUnset(request.id)) {
            body["id"] = request.id;
        }
        if (!tea_util_1.default.isUnset(request.liveUrls)) {
            body["liveUrls"] = request.liveUrls;
        }
        if (!tea_util_1.default.isUnset(request.location)) {
            body["location"] = request.location;
        }
        if (!tea_util_1.default.isUnset(request.nickName)) {
            body["nickName"] = request.nickName;
        }
        if (!tea_util_1.default.isUnset(request.parentId)) {
            body["parentId"] = request.parentId;
        }
        if (!tea_util_1.default.isUnset(request.productType)) {
            body["productType"] = request.productType;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "RegisterDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/devices/register`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RegisterDeviceResponse({}));
    }
    /**
     * 注册设备
     *
     * @param request - RegisterDeviceRequest
     * @returns RegisterDeviceResponse
     */
    async registerDevice(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RegisterDeviceHeaders({});
        return await this.registerDeviceWithOptions(request, headers, runtime);
    }
    /**
     * 升级设备
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpgradeDeviceResponse
     */
    async upgradeDeviceWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "UpgradeDevice",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/upgrade/device`,
            method: "POST",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpgradeDeviceResponse({}));
    }
    /**
     * 升级设备
     * @returns UpgradeDeviceResponse
     */
    async upgradeDevice() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.upgradeDeviceWithOptions(headers, runtime);
    }
    /**
     * 获取工作台流转物联信息
     *
     * @param headers - map
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns WorkbenchTransformInfoResponse
     */
    async workbenchTransformInfoWithOptions(headers, runtime) {
        let req = new $OpenApi.OpenApiRequest({
            headers: headers,
        });
        let params = new $OpenApi.Params({
            action: "WorkbenchTransformInfo",
            version: "diot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/diot/workbench/transform`,
            method: "GET",
            authType: "Anonymous",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new WorkbenchTransformInfoResponse({}));
    }
    /**
     * 获取工作台流转物联信息
     * @returns WorkbenchTransformInfoResponse
     */
    async workbenchTransformInfo() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = {};
        return await this.workbenchTransformInfoWithOptions(headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map