|  | // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | library fuchsia.developer.bridge; | 
|  | using fuchsia.device; | 
|  | using fuchsia.net; | 
|  |  | 
|  | struct TargetIp { | 
|  | fuchsia.net.IpAddress ip; | 
|  | uint32 scope_id; | 
|  | }; | 
|  |  | 
|  | // TODO(awdavies): Add serial number. | 
|  | union TargetAddrInfo { | 
|  | 1: TargetIp ip; | 
|  | }; | 
|  |  | 
|  | // TODO(awdavies): Add more target states once they're more well defined. | 
|  | enum TargetState { | 
|  | UNKNOWN = 1; | 
|  | }; | 
|  |  | 
|  | // TODO(awdavies): Add more target types. Hardware? Product state? | 
|  | enum TargetType { | 
|  | UNKNOWN = 1; | 
|  | }; | 
|  |  | 
|  | /// Current known state of the remote control | 
|  | enum RemoteControlState { | 
|  | UP = 1; | 
|  | DOWN = 2; | 
|  | UNKNOWN = 3; | 
|  | }; | 
|  |  | 
|  | table Target { | 
|  | 1: string:fuchsia.device.DEVICE_NAME_MAX nodename; | 
|  | 2: vector<TargetAddrInfo>:256 addresses; | 
|  | 3: uint64 age_ms; | 
|  | 4: RemoteControlState rcs_state; | 
|  | 5: TargetType target_type; | 
|  | 6: TargetState target_state; | 
|  | }; |