// Copyright 2021 The Pigweed Authors // // 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 // // https://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. syntax = "proto3"; package pw_software_update; import "pw_software_update/tuf.proto"; message UpdateBundle { // NOTE/TODO: SignedRootMetadata is not currently included as part of the // UpdateBundle. Updating of the root metdata needs to be handled in a // separate project-specific process. A standard upstream process can be added // in the future. optional SignedTimestampMetadata timestamp_metadata = 1; optional SignedSnapshotMetadata snapshot_metadata = 2; // Map of target metadata name to target metadata. // Target metadata name can be an arbitrary name or a path that describes // where the file lives relative to the base directory of the repository, as // described in the snapshot metadata. e.g. "path/to/target/0". map target_metadata = 3; // Map of target file name to target payload bytes. // Target file name can be an arbitrary name or a path that describes where // the file lives relative to the base directory of the repository, as // described in the target metadata. e.g. "path/to/amber_tools/0". map target_payloads = 4; } // Update bundle metadata // Designed to inform the update server what the device currently has in-place. message Manifest { optional SnapshotMetadata snapshot_metadata = 1; map targets_metadata = 2; }