blob: 5b617b74cf802aedcc6003512fc616d575f83e5a [file] [log] [blame]
// Copyright 2022 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.
use assembly_file_relative_path::{FileRelativePathBuf, SupportsFileRelativePaths};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
/// Platform configuration options for enabling development support.
#[derive(
Debug, Default, Deserialize, Serialize, PartialEq, JsonSchema, SupportsFileRelativePaths,
)]
#[serde(deny_unknown_fields)]
pub struct DevelopmentSupportConfig {
/// Override the build-type enablement of development support, to include
/// development support in userdebug which doesn't have full development
/// access.
pub enabled: Option<bool>,
// Whether to use vsock based development connection.
#[serde(default)]
pub vsock_development: bool,
/// Path to a file containing ssh keys that are authorized to connect to the
/// device.
#[file_relative_paths]
#[schemars(schema_with = "crate::option_path_schema")]
pub authorized_ssh_keys_path: Option<FileRelativePathBuf>,
/// Path to a file containing CA certs that are trusted roots for signed ssh
/// keys that are authorized to connect to the device.
#[file_relative_paths]
#[schemars(schema_with = "crate::option_path_schema")]
pub authorized_ssh_ca_certs_path: Option<FileRelativePathBuf>,
/// Whether to include sl4f.
#[serde(default)]
pub include_sl4f: bool,
/// Include the bin/clock program on the target to get the monotonic time
/// from the device. TODO(b/309452964): Remove once e2e tests use:
/// `ffx target get-time`
#[serde(default)]
pub include_bin_clock: bool,
}