dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/discovereddevice.go (about) 1 // 2 // Copyright (C) 2023 IOTech Ltd 3 // 4 // SPDX-License-Identifier: Apache-2.0 5 6 package dtos 7 8 import "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models" 9 10 type DiscoveredDevice struct { 11 ProfileName string `json:"profileName" yaml:"profileName" validate:"len=0|edgex-dto-none-empty-string"` 12 AdminState string `json:"adminState" yaml:"adminState" validate:"oneof='LOCKED' 'UNLOCKED'"` 13 AutoEvents []AutoEvent `json:"autoEvents,omitempty" yaml:"autoEvents,omitempty" validate:"dive"` 14 Properties map[string]any `json:"properties,omitempty" yaml:"properties,omitempty"` 15 } 16 17 type UpdateDiscoveredDevice struct { 18 ProfileName *string `json:"profileName" validate:"omitempty,len=0|edgex-dto-none-empty-string"` 19 AdminState *string `json:"adminState" validate:"omitempty,oneof='LOCKED' 'UNLOCKED'"` 20 AutoEvents []AutoEvent `json:"autoEvents" validate:"dive"` 21 Properties map[string]any `json:"properties"` 22 } 23 24 func ToDiscoveredDeviceModel(dto DiscoveredDevice) models.DiscoveredDevice { 25 return models.DiscoveredDevice{ 26 ProfileName: dto.ProfileName, 27 AdminState: models.AdminState(dto.AdminState), 28 AutoEvents: ToAutoEventModels(dto.AutoEvents), 29 Properties: dto.Properties, 30 } 31 } 32 33 func FromDiscoveredDeviceModelToDTO(d models.DiscoveredDevice) DiscoveredDevice { 34 return DiscoveredDevice{ 35 ProfileName: d.ProfileName, 36 AdminState: string(d.AdminState), 37 AutoEvents: FromAutoEventModelsToDTOs(d.AutoEvents), 38 Properties: d.Properties, 39 } 40 } 41 42 func FromDiscoveredDeviceModelToUpdateDTO(d models.DiscoveredDevice) UpdateDiscoveredDevice { 43 adminState := string(d.AdminState) 44 return UpdateDiscoveredDevice{ 45 ProfileName: &d.ProfileName, 46 AdminState: &adminState, 47 AutoEvents: FromAutoEventModelsToDTOs(d.AutoEvents), 48 Properties: d.Properties, 49 } 50 }