blob: 824e2be04fd1bfb638c7266311bb50e521468719 [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package prototype;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype";
import "prototype/common.proto";
import "prototype/partner.proto";
message ProgramId {
string value = 1;
}
message DesignId {
string value = 1;
}
message DesignVariantId {
string value = 1;
}
message DesignOptions {
Fingerprint fingerprint = 1;
Feature front_camera = 2;
Feature rear_camera = 3;
Feature base_accelerometer = 4;
Feature lid_accelerometer = 5;
Feature base_gyroscope = 6;
Feature lid_gyroscope = 7;
Feature base_magnetometer = 8;
Feature lid_magnetometer = 9;
Feature base_light_sensor = 10;
Feature lid_light_sensor = 11;
Feature touchscreen = 12;
Stylus stylus = 13;
// General feature presense proto that can be used
// for any features that don't have specific attributes.
// E.g. See Fingerprint below
message Feature {
Presence.Indicator presence = 1;
}
message Fingerprint {
enum Location {
FINGERPRINT_LOCATION_UNKNOWN = 0;
POWER_BUTTON_TOP_LEFT = 1;
KEYBOARD_TOP_RIGHT = 2;
KEYBOARD_BOTTOM_RIGHT = 3;
}
Presence.Indicator presence = 1;
Location location = 2;
}
message Stylus {
enum Category {
STYLUS_CATEGORY_UNKNOWN = 0;
INTERNAL = 1;
EXTERNAL = 2;
}
Presence.Indicator presence = 1;
Category category = 2;
}
}
message Design {
DesignId id = 1;
ProgramId program_id = 2;
PartnerId odm_id = 3;
string name = 4;
repeated Variant variants = 6;
message Variant {
DesignVariantId id = 1;
FormFactor form_factor = 2;
DesignOptions design_options = 3;
}
enum FormFactor {
FORM_FACTOR_UNDEFINED = 0;
CLAMSHELL = 1;
CONVERTIBLE = 2;
DETACHABLE = 3;
CHROMEBASE = 4;
CHROMEBOX = 5;
CHROMEBIT = 6;
CHROMESLATE = 7;
}
}
message DesignList {
repeated Design value = 1;
}