blob: 64a97503a9ed79ce5df9f2904959fbdca101ac65 [file] [log] [blame]
// Copyright 2018 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.
// DEPRECATED: This library is being replaced. Do not add new dependencies
// to this interface.
library fuchsia.inspect.deprecated;
type PropertyValue = strict union {
1: str string:MAX;
2: bytes vector<uint8>:MAX;
};
// A string property on an `Object`. Consisting of a key and value.
type Property = struct {
key string:MAX;
value PropertyValue;
};
// The value of a metric is one of these numeric types.
type MetricValue = strict union {
1: int_value int64;
2: uint_value uint64;
3: double_value float64;
};
// A Metric is a string key and the associated numeric value.
type Metric = struct {
key string:MAX;
value MetricValue;
};
// An `Object` has a name and 0 or more properties and metrics.
type Object = struct {
name string:MAX;
properties vector<Property>:MAX;
metrics vector<Metric>:MAX;
};
// The `Inspect` interface provides a point for Components to expose
// structured Objects for inspection. An Object may have 0 or more children.
@discoverable
closed protocol Inspect {
strict ReadData() -> (struct {
object Object;
});
strict ListChildren() -> (struct {
children_names vector<string:MAX>:MAX;
});
// Open a child of this Object by name.
// The name should match what is returned by ListChildren.
strict OpenChild(resource struct {
child_name string:MAX;
child_channel server_end:Inspect;
}) -> (struct {
success bool;
});
};