// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Based on net::ReportingPolicy class declaration.

syntax = "proto2";

import "json.proto";

package net_reporting_policy_proto;

message ReportingPolicy {
  // TODO: consider implementing proto for endpoint_backoff_policy.
  required uint64 max_report_count = 1;
  required uint64 max_client_count = 2;
  required uint64 delivery_interval_us = 3;
  required uint64 persistence_interval_us = 4;
  required bool persist_reports_across_restarts = 5;
  required bool persist_clients_across_restarts = 6;
  required uint64 garbage_collection_interval_us = 7;
  required uint64 max_report_age_us = 8;
  required int32 max_report_attempts = 9;
  required bool persist_reports_across_network_changes = 10;
  required bool persist_clients_across_network_changes = 11;
}

message ReportingHeaderParserFuzzInput {
  required ReportingPolicy policy = 1;
  required json_proto.JsonObject headers = 2;
}
