Generate Id constants for reports in Cobalt 1.0.

Change-Id: I6358c6f9bbf82376280312dbeaa89cef27c7660a
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.dart b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.dart
index d80b69e..8a07d13 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.dart
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.dart
@@ -11,6 +11,14 @@
 // ignore: constant_identifier_names
 const int eventGroupsMetricId = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+// ignore: constant_identifier_names
+const int theMetricNameTheOtherReportReportId = 492006986;
+// event groups_the_report
+// ignore: constant_identifier_names
+const int eventGroupsTheReportReportId = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 class TheOtherMetricNameEventCode {
   static const int AnEvent = 0;
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.h b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.h
index b556a31..c8030cf 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.h
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.h
@@ -10,6 +10,12 @@
 // event groups
 const uint32_t kEventGroupsMetricId = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+const uint32_t kTheMetricNameTheOtherReportReportId = 492006986;
+// event groups_the_report
+const uint32_t kEventGroupsTheReportReportId = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 namespace the_other_metric_name_event_code_scope {
 enum Enum {
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.rs b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.rs
index 75bb9f6..049e19b 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.rs
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1.cb.rs
@@ -8,6 +8,12 @@
 // event groups
 pub const EVENT_GROUPS_METRIC_ID = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+pub const THE_METRIC_NAME_THE_OTHER_REPORT_REPORT_ID = 492006986;
+// event groups_the_report
+pub const EVENT_GROUPS_THE_REPORT_REPORT_ID = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 pub enum TheOtherMetricNameEventCode {
   AnEvent = 0,
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.dart b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.dart
index 57a1e9e..a752860 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.dart
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.dart
@@ -11,6 +11,14 @@
 // ignore: constant_identifier_names
 const int eventGroupsMetricId = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+// ignore: constant_identifier_names
+const int theMetricNameTheOtherReportReportId = 492006986;
+// event groups_the_report
+// ignore: constant_identifier_names
+const int eventGroupsTheReportReportId = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 class TheOtherMetricNameEventCode {
   static const int AnEvent = 0;
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.h b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.h
index e5e4b65..7db967e 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.h
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.h
@@ -10,6 +10,12 @@
 // event groups
 const uint32_t kEventGroupsMetricId = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+const uint32_t kTheMetricNameTheOtherReportReportId = 492006986;
+// event groups_the_report
+const uint32_t kEventGroupsTheReportReportId = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 namespace the_other_metric_name_event_code_scope {
 enum Enum {
diff --git a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.rs b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.rs
index 93de0d3..d78583c 100644
--- a/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.rs
+++ b/config/config_parser/src/source_generator/source_generator_test_files/golden_v1_filtered.cb.rs
@@ -8,6 +8,12 @@
 // event groups
 pub const EVENT_GROUPS_METRIC_ID = 300;
 
+// Report ID Constants
+// the_metric_name_the_other_report
+pub const THE_METRIC_NAME_THE_OTHER_REPORT_REPORT_ID = 492006986;
+// event groups_the_report
+pub const EVENT_GROUPS_THE_REPORT_REPORT_ID = 2384646843;
+
 // Enum for the_other_metric_name (EventCode)
 pub enum TheOtherMetricNameEventCode {
   AnEvent = 0,
diff --git a/config/config_parser/src/source_generator/source_outputter.go b/config/config_parser/src/source_generator/source_outputter.go
index 09d3b03..be3730d 100644
--- a/config/config_parser/src/source_generator/source_outputter.go
+++ b/config/config_parser/src/source_generator/source_outputter.go
@@ -166,15 +166,22 @@
 
 func (so *sourceOutputter) writeV1Constants(c *config.CobaltRegistry) error {
 	metrics := make(map[uint32]string)
+	reports := make(map[uint32]string)
 	if len(c.Customers) > 1 || len(c.Customers[0].Projects) > 1 {
 		return fmt.Errorf("Cobalt v1.0 output can only be used with a single project config.")
 	}
 	for _, metric := range c.Customers[0].Projects[0].Metrics {
 		if metric.MetricName != "" {
 			metrics[metric.Id] = metric.MetricName
+			for _, report := range metric.Reports {
+				if report.ReportName != "" {
+					reports[report.Id] = fmt.Sprintf("%s_%s", metric.MetricName, report.ReportName)
+				}
+			}
 		}
 	}
 	so.writeIdConstants("Metric", metrics)
+	so.writeIdConstants("Report", reports)
 
 	for _, metric := range c.Customers[0].Projects[0].Metrics {
 		events := make(map[uint32]string)