| // Copyright 2024 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.element.manager.persistence; |
| |
| using fuchsia.element; |
| |
| /// Element Manager stores this top-level object (a list of persistent elements to launch at boot |
| /// time) in persistent storage. |
| type PersistentElements = table { |
| 1: elements vector<Element>:MAX; |
| }; |
| |
| /// Each element is described by its annotations. As a minimum this will include the elements name |
| /// and the component URL. |
| type Element = table { |
| 1: annotations vector<PersistentAnnotation>:MAX; |
| }; |
| |
| /// Same as Annotation but can be persisted. |
| type PersistentAnnotation = struct { |
| /// An identifier for this annotation. |
| key fuchsia.element.AnnotationKey; |
| |
| /// The content of this annotation. |
| value PersistentAnnotationValue; |
| }; |
| |
| /// Same as AnnotationValue but can be persisted. |
| type PersistentAnnotationValue = strict union { |
| 1: text string:MAX; |
| }; |