
###########################################################################
# 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: "Fuschsia Rating and City Joint Analysis"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 1
  variable {
    metric_part: "city"
    rappor_candidates {
      candidates: "San Francisco"
      candidates: "Los Angeles"
    }
  }
  variable {
    metric_part: "rating"
  }
  scheduling {
    report_finalization_days: 1
    aggregation_epoch_type: DAY
  }
}

#### ReportConfig (1, 1, 2)
element {
  customer_id: 1
  project_id: 1
  id: 2
  name: "Fuschsia Usage by Hour"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 2
  variable {
    metric_part: "hour"
  }
  scheduling {
    report_finalization_days: 5
    aggregation_epoch_type: WEEK
  }
  export_configs {
    csv {}
    gcs {
      bucket: "bucket-1"
    }
  }
}

#### ReportConfig (1, 1, 3)
element {
  customer_id: 1
  project_id: 1
  id: 3
  name: "Fuschsia Daily System Event Counts"
  description: "This is a fictional report used for the development of Cobalt."
  metric_id: 3
  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, 4)
element {
  customer_id: 1
  project_id: 1
  id: 4
  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"
    }
  }
  scheduling {
    report_finalization_days: 5
    aggregation_epoch_type: MONTH
  }
}

#### 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"
  }
  scheduling {
    report_finalization_days: 1
    aggregation_epoch_type: DAY
  }
}

