// 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;

// TODO(chlily): Can we get rid of this proto? ReportingHeaderParser doesn't
// really consider any of the ReportingPolicy fields except maybe
// max_endpoint_count.
message ReportingPolicy {
  // TODO: consider implementing proto for endpoint_backoff_policy.
  required uint64 max_report_count = 1;
  required uint64 max_endpoint_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;
  optional uint64 max_endpoints_per_origin = 12 [default = 40];
  optional uint64 max_group_staleness_us = 13 [default = 604800000000];
}

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