/******************************************************************************* * Copyright 2017 Dell Inc. * Copyright (c) 2019 Intel Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. *******************************************************************************/ package dtos import ( "github.com/winc-link/hummingbird/internal/models" "github.com/winc-link/hummingbird/internal/pkg/constants" ) type ThingModelAddOrUpdateReq struct { Id string `json:"id"` ProductId string `json:"product_id"` ThingModelType string `json:"thing_model_type"` //ModelName string `json:"model_name"` Name string `json:"name"` Code string `json:"code"` Description string `json:"description"` Tag string `json:"tag"` Property *ThingModelProperties `json:"property"` Event *ThingModelEvents `json:"event"` Action *ThingModelActions `json:"action"` } type ThingModelProperties struct { AccessModel string `json:"access_model"` Require bool `json:"require"` DataType constants.SpecsType `json:"type"` TypeSpec interface{} `json:"specs"` } type ThingModelEventAction struct { Code string `json:"code"` Name string `json:"name"` DataType constants.SpecsType `json:"type"` TypeSpec interface{} `json:"specs"` } type ThingModelEvents struct { EventType string `json:"event_type"` OutPutParam []ThingModelEventAction `json:"output_param"` } type ThingModelActions struct { CallType constants.CallType `json:"call_type"` InPutParam []ThingModelEventAction `json:"input_param"` OutPutParam []ThingModelEventAction `json:"output_param"` } type ThingModelDeleteReq struct { ThingModelId string `json:"thing_model_id"` ThingModelType string `json:"thing_model_type"` } type SystemThingModelSearchReq struct { ModelName string `schema:"modelName"` ThingModelType string `schema:"thingModelType"` } type OpenApiThingModelProperties struct { Id string `json:"id"` //ProductId string `json:"product_id"` // 产品ID Name string `json:"name"` // 属性名称 Code string `json:"code"` // 标识符 AccessMode string `json:"access_mode"` // 数据传输类型 Require bool `json:"require"` TypeSpec models.TypeSpec `json:"type_spec"` // 数据属性 Description string `json:"description"` } type OpenApiThingModelEvents struct { Id string `json:"id"` //ProductId string `json:"product_id"` EventType string `json:"event_type"` Name string `json:"name"` // 功能名称 Code string `json:"code"` // 标识符 Description string `json:"description"` Require bool `json:"require"` OutputParams models.OutPutParams `json:"output_params"` } type OpenApiThingModelServices struct { Id string `json:"id"` //ProductId string `json:"product_id"` Name string `json:"name"` // 功能名称 Code string `json:"code"` // 标识符 Description string `json:"description"` Require bool `json:"require"` CallType constants.CallType `json:"call_type"` InputParams models.InPutParams `json:"input_params"` // 输入参数 OutputParams models.OutPutParams `json:"output_params"` // 输出参数 } type OpenApiThingModelAddOrUpdateReq struct { ProductId string `json:"product_id"` Properties []OpenApiThingModelProperties `json:"properties"` Events []OpenApiThingModelEvents `json:"events"` Services []OpenApiThingModelServices `json:"services"` } type OpenApiQueryThingModelReq struct { ProductId string `schema:"product_id,omitempty"` } type OpenApiQueryThingModel struct { Properties []OpenApiThingModelProperties `json:"properties"` Events []OpenApiThingModelEvents `json:"events"` Services []OpenApiThingModelServices `json:"services"` } type OpenApiThingModelDeleteReq struct { ProductId string `json:"product_id"` PropertyIds []string `json:"property_ids"` EventIds []string `json:"event_ids"` ServiceIds []string `json:"service_ids"` } type OpenApiSetDeviceThingModel struct { DeviceId string `json:"deviceId"` Item map[string]interface{} `json:"item"` } type OpenApiQueryDevicePropertyData struct { }