
###########################################################################
# This file contains the source of truth for the set of ReportConfigs
# that are registered in version 0.1 of Cobalt.
#
# This file is maintained by hand. To add a new ReportConfig or change
# the definition of an ReportConfig, manually edit this file and
# commit the change to the Cobalt repo.
#
# The format of this file is the textual representation of the
# RegisteredReports Protocol Buffer message, which is defined in
# report_configs.proto.
##########################################################################


#########################
# Customer 1 (Fuchsia)
#########################

## Project 1

#### ReportConfig (1, 1, 1)
element {
  customer_id: 1
  project_id: 1
  id: 1
  name: "Fuchsia Popular URLs"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 1
  variable {
    metric_part: "url"
  }
  scheduling {
    report_finalization_days: 3
    aggregation_epoch_type: DAY
  }
  export_configs {
    csv {}
    gcs {
      bucket: "fuchsia-cobalt-reports-test1-rudominer"
    }
  }
}

#### ReportConfig (1, 1, 2)
element {
  customer_id: 1
  project_id: 1
  id: 2
  name: "Fuchsia Usage by Hour"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 2
  variable {
    metric_part: "hour"
  }
}

#### ReportConfig (1, 1, 3)
element {
  customer_id: 1
  project_id: 1
  id: 3
  name: "Fuchsia Fruit Consumption and Rating Joint Analysis"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 3
  variable {
    metric_part: "fruit"
  }
  variable {
    metric_part: "rating"
  }
}

#### ReportConfig (1, 1, 4)
element {
  customer_id: 1
  project_id: 1
  id: 4
  name: "Fuschsia Daily System Event Counts"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 4
  variable {
    metric_part: "event"
    index_labels {
      labels {
         key: 0
         value: "Event A"
      }
      labels {
         key: 1
         value: "Event B"
      }
      labels {
         key: 25
         value: "Event Z"
      }
    }
  }
}

#### ReportConfig (1, 1, 5)
element {
  customer_id: 1
  project_id: 1
  id: 5
  name: "Fuchsia Module Usage"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 5
  variable {
    metric_part: "module"
  }
}

#### ReportConfig (1, 1, 6)
element {
  customer_id: 1
  project_id: 1
  id: 6
  name: "Fuschsia Device Start Counts"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 6
  variable {
    metric_part: "device"
    index_labels {
      labels {
         key: 0
         value: "Type A"
      }
      labels {
         key: 1
         value: "Type B"
      }
      labels {
         key: 25
         value: "Type Z"
      }
    }
  }
}

#### ReportConfig (1, 1, 7)
element {
  customer_id: 1
  project_id: 1
  id: 7
  name: "Fuchsia Daily Fruit Rating"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 3
  report_type: RAW_DUMP
  variable {
    metric_part: "fruit"
  }
  variable {
    metric_part: "rating"
  }
  scheduling {
    report_finalization_days: 3
    aggregation_epoch_type: DAY
  }
  export_configs {
    csv {}
    gcs {
      bucket: "fuchsia-cobalt-reports-test1-rudominer"
    }
  }
}

#########################
# Customer 2 (Acme)
########################

## Project 1

#### ReportConfig (2, 1, 1)
element {
  customer_id: 2
  project_id: 1
  id: 1
  name: "Acme Module Names"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 1
  variable {
    metric_part: "name"
    rappor_candidates {
      candidates: "Module A"
      candidates: "Module B"
    }
  }
}

#### ReportConfig (2, 1, 2)
element {
  customer_id: 2
  project_id: 1
  id: 3
  name: "Acme Popular URLs"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 3
  variable {
    metric_part: "url"
  }
}

