blob: d202c2c024410d535eb985fff02dd9a5f8358c75 [file] [log] [blame]
// Copyright 2020 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 unifiedfleet.api.v1.models;
option go_package = "infra/unifiedfleet/api/v1/models;ufspb";
import "google/protobuf/timestamp.proto";
import "google/api/resource.proto";
import "google/api/field_behavior.proto";
import "infra/unifiedfleet/api/v1/models/location.proto";
import "infra/unifiedfleet/api/v1/models/peripherals.proto";
import "infra/unifiedfleet/api/v1/models/state.proto";
// Rack refers to the racks which are placed in
// Chrome Browser lab and Chrome OS lab. Machines and Pheripherals
// are placed in the Racks.
message Rack {
option (google.api.resource) = {
type: "unified-fleet-system.appspot.com/Rack"
pattern: "racks/{rack}"
};
// Unique (fake probably) asset tag
// The format will be racks/XXX
string name = 1;
Location location = 2;
// Indicates the Rack Unit capacity of the rack.
int32 capacity_ru = 3;
oneof rack {
ChromeBrowserRack chrome_browser_rack = 4;
ChromeOSRack chromeos_rack = 5;
};
// Record the last update timestamp of this Rack (In UTC timezone)
google.protobuf.Timestamp update_time = 6 [
(google.api.field_behavior) = OUTPUT_ONLY];
// Record the ACL info of the rack
string realm = 7;
// tags user can attach for easy querying/searching
repeated string tags = 8;
reserved 9;
reserved "state";
// A description of this rack.
string description = 11;
// State of the rack
State resource_state = 12;
}
// ChromeBrowserRack refers to the rack in Chrome Browser lab
message ChromeBrowserRack {
reserved 1;
reserved "rpms";
reserved 2;
reserved "kvms";
reserved 3;
reserved "switches";
repeated RPM rpm_objects = 4;
repeated KVM kvm_objects = 5;
repeated Switch switch_objects = 6;
}
// ChromeOSRack refers to the rack in Chrome Browser lab
message ChromeOSRack {
}