/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";
option java_multiple_files = true;

package android.os;

// IncidentHeaderProto contains extra information the caller of incidentd wants
// to attach in an incident report, the data should just be informative.
message IncidentHeaderProto {
    // From statsd config, the id of the anomaly alert, unique among alerts.
    optional int64 alert_id = 1;

    // Format a human readable reason why an incident report is requested.
    // It's optional and may directly come from a user input clicking the
    // bug-report button.
    optional string reason = 2;

    // Defines which stats config used to fire the request, incident report will
    // only be uploaded if this value is given.
    message StatsdConfigKey {
      optional int32 uid = 1; // The uid pushes the config to statsd.
      optional int64 id = 2; // The unique id of the statsd config.
    }
    optional StatsdConfigKey config_key = 3;

    // Details about the trigger. com.android.os.AlertTriggerDetails
    // Only use bytes type here to avoid indirect dependency on atoms.proto
    // And this header passes through incidentd without incidentd parsing it.
    optional bytes trigger_details = 4;
}
