blob: 6a5e3f850c6ade2419a53090a1db30a991f3fa5f [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;
import "prototype/common.proto";
import "prototype/component.proto";
import "prototype/design.proto";
option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype";
message Constraint {
enum Level {
TYPE_UNKNOWN = 0;
REQUIRED = 1;
PREFERRED = 2;
OPTIONAL = 3;
}
Level level = 1;
oneof type {
Memory memory = 4;
Camera front_camera = 6;
Camera rear_camera = 7;
}
message Memory {
ByteSize min_size = 1;
repeated Component.Memory.Type types = 2;
}
message Camera {
Presence.Indicator presence = 1;
repeated Component.Camera.Feature features = 2;
}
}
message ComponentQual {
enum Status {
STATUS_UNKNOWN = 0;
REQUESTED = 1;
TECHNICALLY_QUALIFIED = 2;
QUALIFIED = 3;
}
ComponentId component_id = 1;
Status status = 2;
}
message Program {
ProgramId id = 1;
repeated Requirement reqs = 2;
repeated ComponentQual component_quals = 3;
message Requirement {
repeated Design.FormFactor form_factors = 1;
repeated Constraint constraints = 2;
}
}
message ProgramList {
repeated Program value = 1;
}