/*
 * 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_package = "android";
option java_multiple_files = true;

import "google/protobuf/descriptor.proto";

package android;

// SectionType defines how incidentd gonna get the field's data
enum SectionType {

    // Default fields, not available in incidentd
    SECTION_NONE = 0;

    // incidentd reads a file to get the data for annotated field
    SECTION_FILE = 1;

    // incidentd executes the given command for annotated field
    SECTION_COMMAND = 2;

    // incidentd calls dumpsys for annotated field
    SECTION_DUMPSYS = 3;

    // incidentd calls logs for annotated field
    SECTION_LOG = 4;

    // incidentd read file and gzip the data in bytes field
    SECTION_GZIP = 5;

    // incidentd calls tombstoned for annotated field
    SECTION_TOMBSTONE = 6;

    // incidentd calls legacy text dumpsys for annotated field. The section will only be generated
    // on userdebug and eng builds.
    SECTION_TEXT_DUMPSYS = 7;
}

message SectionFlags {
  optional SectionType type = 1 [default = SECTION_NONE];
  optional string args = 2;
  // If true, then the section will only be generated for userdebug and eng
  // builds.
  optional bool userdebug_and_eng_only = 3 [default = false];
}

extend google.protobuf.FieldOptions {
    // Flags for automatically section list generation
    optional SectionFlags section = 155792027;
}
