// Copyright 2020 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.ffxdaemonlifecycle;

using fuchsia.version;

const MAX_GIT_COMMIT_LENGTH uint16 = 40;
const MAX_BUILD_VERSION_LENGTH uint16 = 100;
const MAX_EXEC_PATH_LENGTH uint16 = 4096;

type VersionInfo = table {
    /// Git commit hash of HEAD at build time.
    1: commit_hash string:MAX_GIT_COMMIT_LENGTH;

    /// UTC timestamp of the HEAD commit in seconds.
    2: commit_timestamp uint64;

    /// The build version, pulled from //build/info.
    3: build_version string:MAX_BUILD_VERSION_LENGTH;

    /// The ABI revision denotes the semantics of the Fuchsia System Interface
    /// that an application expects the platform to provide. The number
    /// has no ordering relationship (higher is not newer or older).
    /// Can be mapped to an api_level using //sdk/version_history.json.
    4: abi_revision fuchsia.version.AbiRevision;

    /// The API level denotes a set of APIs available when building an
    /// application for a given release of the FUCHSIA IDK. Higher number
    /// means newer.
    /// Can be mapped to an abi_revision using //sdk/version_history.json.
    5: api_level fuchsia.version.ApiLevel;

    /// Path of the actual FFX executable. This allows us to make absolutely
    /// sure commands match the daemon they're communicating with.
    6: exec_path string:MAX_EXEC_PATH_LENGTH;

    /// Build ID of the FFX executable.
    7: build_id string:64;
};
