| // Copyright 2017 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. |
| |
| syntax = "proto3"; |
| |
| package cobalt; |
| |
| option go_package = "src/registry;config"; |
| |
| import "src/registry/metric_definition.proto"; |
| |
| // ProjectConfigFile is a representation of a yaml config file for a single |
| // cobalt project. |
| message ProjectConfigFile { |
| reserved 1, 2, 3; |
| |
| // Cobalt metric registration. |
| repeated MetricDefinition metric_definitions = 4; |
| |
| // Metric IDs that have been previously used and deleted from this project. |
| // These IDs must not be reused in new metrics. |
| repeated uint32 deleted_metric_ids = 5; |
| } |
| |
| // Configuration for the Cobalt projects of a customer. |
| message CustomerConfig { |
| string customer_name = 1; |
| uint32 customer_id = 2; |
| repeated ProjectConfig projects = 3; |
| |
| // If no experiments_namespaces are specified for individual projects, the |
| // customer's experiments namespaces are used as default. |
| repeated string experiments_namespaces = 4; |
| |
| // Project IDs that have been previously used and deleted from this customer. |
| // These IDs must not be reused in new projects. |
| repeated uint32 deleted_project_ids = 5; |
| } |
| |
| // Configuration for a Cobalt project. |
| message ProjectConfig { |
| string project_name = 1; |
| uint32 project_id = 2; |
| repeated MetricDefinition metrics = 3; |
| string project_contact = 4; |
| |
| // Experiment namespaces supported for experiment ids in this project. |
| repeated string experiments_namespaces = 5; |
| |
| // Metric IDs that have been previously used and deleted from this project. |
| // These IDs must not be reused in new metrics. |
| repeated uint32 deleted_metric_ids = 6; |
| } |
| |
| // CobaltRegistry holds a set of metrics and reports registered with Cobalt. |
| // |
| // A CobaltRegistry can be in one of two states: |
| // |
| // (1) It can contain data for a single Cobalt project. In this case, there is a single |
| // CustomerConfig which contains a single ProjectConfig. |
| // |
| // (2) It can contain data for multiple Cobalt projects. In this case, there may be any number of |
| // |customers|, which in turn may contain any number of ProjectConfigs. |
| message CobaltRegistry { |
| reserved 1, 2, 3, 4; |
| // Cobalt customer registration. |
| repeated CustomerConfig customers = 5; |
| } |