/*
 * Copyright (C) 2022 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";

package android.os.statsd;

option java_package = "com.android.os";

enum BucketDropReason {
    // For ValueMetric, a bucket is dropped during a dump report request iff
    // current bucket should be included, a pull is needed (pulled metric and
    // condition is true), and we are under fast time constraints.
    DUMP_REPORT_REQUESTED = 1;
    EVENT_IN_WRONG_BUCKET = 2;
    CONDITION_UNKNOWN = 3;
    PULL_FAILED = 4;
    PULL_DELAYED = 5;
    DIMENSION_GUARDRAIL_REACHED = 6;
    MULTIPLE_BUCKETS_SKIPPED = 7;
    // Not an invalid bucket case, but the bucket is dropped.
    BUCKET_TOO_SMALL = 8;
    // Not an invalid bucket case, but the bucket is skipped.
    NO_DATA = 9;
};

enum DataCorruptedReason {
    DATA_CORRUPTED_UNKNOWN = 0;
    DATA_CORRUPTED_EVENT_QUEUE_OVERFLOW = 1;
    DATA_CORRUPTED_SOCKET_LOSS = 2;
    DATA_CORRUPTED_SYSTEM_SERVER_CRASH = 3;
};

enum DumpReportReason {
    DEVICE_SHUTDOWN = 1;
    CONFIG_UPDATED = 2;
    CONFIG_REMOVED = 3;
    GET_DATA_CALLED = 4;
    ADB_DUMP = 5;
    CONFIG_RESET = 6;
    STATSCOMPANION_DIED = 7;
    TERMINATION_SIGNAL_RECEIVED = 8;
};

enum InvalidConfigReasonEnum {
    INVALID_CONFIG_REASON_UNKNOWN = 0;
    INVALID_CONFIG_REASON_LOG_SOURCE_ALLOWLIST_EMPTY = 1;
    INVALID_CONFIG_REASON_TOO_MANY_LOG_SOURCES = 2;
    INVALID_CONFIG_REASON_DEFAULT_PULL_PACKAGES_NOT_IN_MAP = 3;
    INVALID_CONFIG_REASON_TOO_MANY_SOURCES_IN_PULL_PACKAGES = 4;
    INVALID_CONFIG_REASON_TOO_MANY_METRICS = 5;
    INVALID_CONFIG_REASON_TOO_MANY_CONDITIONS = 6;
    INVALID_CONFIG_REASON_TOO_MANY_MATCHERS = 7;
    INVALID_CONFIG_REASON_TOO_MANY_ALERTS = 8;
    INVALID_CONFIG_REASON_PACKAGE_CERT_HASH_SIZE_TOO_LARGE = 9;
    INVALID_CONFIG_REASON_NO_REPORT_METRIC_NOT_FOUND = 10;
    INVALID_CONFIG_REASON_METRIC_NOT_IN_PREV_CONFIG = 11;
    INVALID_CONFIG_REASON_METRIC_UPDATE_STATUS_UNKNOWN = 12;
    INVALID_CONFIG_REASON_METRIC_HAS_MULTIPLE_ACTIVATIONS = 13;
    INVALID_CONFIG_REASON_METRIC_SLICED_STATE_ATOM_ALLOWED_FROM_ANY_UID = 14;
    INVALID_CONFIG_REASON_METRIC_MISSING_ID_OR_WHAT = 15;
    INVALID_CONFIG_REASON_METRIC_CONDITIONLINK_NO_CONDITION = 16;
    INVALID_CONFIG_REASON_METRIC_STATELINK_NO_STATE = 17;
    INVALID_CONFIG_REASON_METRIC_BAD_THRESHOLD = 18;
    INVALID_CONFIG_REASON_METRIC_MATCHER_NOT_FOUND = 19;
    INVALID_CONFIG_REASON_METRIC_MATCHER_MORE_THAN_ONE_ATOM = 20;
    INVALID_CONFIG_REASON_METRIC_CONDITION_NOT_FOUND = 21;
    INVALID_CONFIG_REASON_METRIC_CONDITION_LINK_NOT_FOUND = 22;
    INVALID_CONFIG_REASON_METRIC_STATE_NOT_FOUND = 23;
    INVALID_CONFIG_REASON_METRIC_STATELINKS_NOT_SUBSET_DIM_IN_WHAT = 24;
    INVALID_CONFIG_REASON_METRIC_ACTIVATION_MATCHER_NOT_FOUND = 25;
    INVALID_CONFIG_REASON_METRIC_DEACTIVATION_MATCHER_NOT_FOUND = 26;
    INVALID_CONFIG_REASON_METRIC_ACTIVATION_MATCHER_NOT_FOUND_NEW = 27;
    INVALID_CONFIG_REASON_METRIC_ACTIVATION_MATCHER_NOT_FOUND_EXISTING = 28;
    INVALID_CONFIG_REASON_METRIC_ACTIVATION_NOT_FOUND_EXISTING = 29;
    INVALID_CONFIG_REASON_METRIC_DEACTIVATION_MATCHER_NOT_FOUND_NEW = 30;
    INVALID_CONFIG_REASON_METRIC_SERIALIZATION_FAILED = 31;
    INVALID_CONFIG_REASON_METRIC_ACTIVATION_SERIALIZATION_FAILED = 32;
    INVALID_CONFIG_REASON_DURATION_METRIC_WHAT_NOT_SIMPLE = 33;
    INVALID_CONFIG_REASON_DURATION_METRIC_WHAT_NOT_FOUND = 34;
    INVALID_CONFIG_REASON_DURATION_METRIC_MISSING_START = 35;
    INVALID_CONFIG_REASON_DURATION_METRIC_PRODUCER_INVALID = 36;
    INVALID_CONFIG_REASON_DURATION_METRIC_MAX_SPARSE_HAS_SLICE_BY_STATE = 37;
    INVALID_CONFIG_REASON_VALUE_METRIC_MISSING_VALUE_FIELD = 38;
    INVALID_CONFIG_REASON_VALUE_METRIC_VALUE_FIELD_HAS_POSITION_ALL = 39;
    INVALID_CONFIG_REASON_VALUE_METRIC_HAS_INCORRECT_VALUE_FIELD = 40;
    INVALID_CONFIG_REASON_KLL_METRIC_MISSING_KLL_FIELD = 41;
    INVALID_CONFIG_REASON_KLL_METRIC_KLL_FIELD_HAS_POSITION_ALL = 42;
    INVALID_CONFIG_REASON_KLL_METRIC_HAS_INCORRECT_KLL_FIELD = 43;
    INVALID_CONFIG_REASON_METRIC_INCORRECT_FIELD_FILTER = 44;
    INVALID_CONFIG_REASON_GAUGE_METRIC_TRIGGER_NO_PULL_ATOM = 45;
    INVALID_CONFIG_REASON_GAUGE_METRIC_TRIGGER_NO_FIRST_N_SAMPLES = 46;
    INVALID_CONFIG_REASON_GAUGE_METRIC_FIRST_N_SAMPLES_WITH_WRONG_EVENT = 47 [deprecated = true];
    INVALID_CONFIG_REASON_MATCHER_NOT_IN_PREV_CONFIG = 48;
    INVALID_CONFIG_REASON_MATCHER_UPDATE_STATUS_UNKNOWN = 49;
    INVALID_CONFIG_REASON_MATCHER_DUPLICATE = 50;
    INVALID_CONFIG_REASON_MATCHER_SERIALIZATION_FAILED = 51;
    INVALID_CONFIG_REASON_MATCHER_MALFORMED_CONTENTS_CASE = 52;
    INVALID_CONFIG_REASON_MATCHER_TRACKER_NOT_INITIALIZED = 53;
    INVALID_CONFIG_REASON_MATCHER_NO_OPERATION = 54;
    INVALID_CONFIG_REASON_MATCHER_NOT_OPERATION_IS_NOT_UNARY = 55;
    INVALID_CONFIG_REASON_MATCHER_CYCLE = 56;
    INVALID_CONFIG_REASON_MATCHER_CHILD_NOT_FOUND = 57;
    INVALID_CONFIG_REASON_CONDITION_NOT_IN_PREV_CONFIG = 58;
    INVALID_CONFIG_REASON_CONDITION_UPDATE_STATUS_UNKNOWN = 59;
    INVALID_CONFIG_REASON_CONDITION_DUPLICATE = 60;
    INVALID_CONFIG_REASON_CONDITION_SERIALIZATION_FAILED = 61;
    INVALID_CONFIG_REASON_CONDITION_MALFORMED_CONTENTS_CASE = 62;
    INVALID_CONFIG_REASON_CONDITION_TRACKER_NOT_INITIALIZED = 63;
    INVALID_CONFIG_REASON_CONDITION_NO_OPERATION = 64;
    INVALID_CONFIG_REASON_CONDITION_NOT_OPERATION_IS_NOT_UNARY = 65;
    INVALID_CONFIG_REASON_CONDITION_CYCLE = 66;
    INVALID_CONFIG_REASON_CONDITION_CHILD_NOT_FOUND = 67;
    INVALID_CONFIG_REASON_STATE_SERIALIZATION_FAILED = 68;
    INVALID_CONFIG_REASON_ALERT_METRIC_NOT_FOUND = 69;
    INVALID_CONFIG_REASON_ALERT_THRESHOLD_MISSING = 70;
    INVALID_CONFIG_REASON_ALERT_INVALID_TRIGGER_OR_NUM_BUCKETS = 71;
    INVALID_CONFIG_REASON_ALERT_CANNOT_ADD_ANOMALY = 72;
    INVALID_CONFIG_REASON_ALERT_NOT_IN_PREV_CONFIG = 73;
    INVALID_CONFIG_REASON_ALERT_UPDATE_STATUS_UNKNOWN = 74;
    INVALID_CONFIG_REASON_ALERT_SERIALIZATION_FAILED = 75;
    INVALID_CONFIG_REASON_ALARM_OFFSET_LESS_THAN_OR_EQUAL_ZERO = 76;
    INVALID_CONFIG_REASON_ALARM_PERIOD_LESS_THAN_OR_EQUAL_ZERO = 77;
    INVALID_CONFIG_REASON_SUBSCRIPTION_SUBSCRIBER_INFO_MISSING = 78;
    INVALID_CONFIG_REASON_SUBSCRIPTION_RULE_NOT_FOUND = 79;
    INVALID_CONFIG_REASON_METRIC_DIMENSIONAL_SAMPLING_INFO_INCORRECT_SHARD_COUNT = 80;
    INVALID_CONFIG_REASON_METRIC_DIMENSIONAL_SAMPLING_INFO_MISSING_SAMPLED_FIELD = 81;
    INVALID_CONFIG_REASON_METRIC_SAMPLED_FIELD_INCORRECT_SIZE = 82;
    INVALID_CONFIG_REASON_METRIC_SAMPLED_FIELDS_NOT_SUBSET_DIM_IN_WHAT = 83;
    INVALID_CONFIG_REASON_RESTRICTED_METRIC_NOT_ENABLED = 84;
    INVALID_CONFIG_REASON_RESTRICTED_METRIC_NOT_SUPPORTED = 85;
    INVALID_CONFIG_REASON_METRIC_INCORRECT_SAMPLING_PERCENTAGE = 86;
    INVALID_CONFIG_REASON_GAUGE_METRIC_PULLED_WITH_SAMPLING = 87;
    INVALID_CONFIG_REASON_MATCHER_NO_VALUE_MATCHER_NOR_STRING_REPLACER = 88;
    INVALID_CONFIG_REASON_MATCHER_VALUE_MATCHER_WITH_POSITION_ALL = 89;
    INVALID_CONFIG_REASON_MATCHER_INVALID_VALUE_MATCHER_WITH_STRING_REPLACE = 90;
    INVALID_CONFIG_REASON_MATCHER_COMBINATION_WITH_STRING_REPLACE = 91;
    INVALID_CONFIG_REASON_MATCHER_STRING_REPLACE_WITH_NO_VALUE_MATCHER_WITH_POSITION_ANY = 92;
    INVALID_CONFIG_REASON_METRIC_INCORRECT_PULL_PROBABILITY = 93;
    INVALID_CONFIG_REASON_GAUGE_METRIC_PUSHED_WITH_PULL_PROBABILITY = 94;
    INVALID_CONFIG_REASON_GAUGE_METRIC_RANDOM_ONE_SAMPLE_WITH_PULL_PROBABILITY = 95;
    INVALID_CONFIG_REASON_VALUE_METRIC_DEFINES_SINGLE_AND_MULTIPLE_AGG_TYPES = 96;
    INVALID_CONFIG_REASON_VALUE_METRIC_AGG_TYPES_DNE_VALUE_FIELDS_SIZE = 97;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_COUNT_DNE_HIST_BIN_CONFIGS_COUNT = 98;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_MISSING_BIN_CONFIG_ID = 99;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_UNKNOWN_BINNING_STRATEGY = 100;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_MISSING_GENERATED_BINS_ARGS = 101;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_GENERATED_BINS_INVALID_MIN_MAX = 102;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_TOO_FEW_BINS = 103;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_TOO_MANY_BINS = 104;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_EXPLICIT_BINS_NOT_STRICTLY_ORDERED = 105;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_WITH_UPLOAD_THRESHOLD = 106;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_INVALID_VALUE_DIRECTION = 107;
    INVALID_CONFIG_REASON_VALUE_METRIC_HIST_CLIENT_AGGREGATED_NO_POSITION_ALL = 108;
    INVALID_CONFIG_REASON_UID_FIELDS_WITH_POSITION_ANY = 109;
    INVALID_CONFIG_REASON_CONDITION_INVALID_MATCHER_DEPENDENCY = 110;
};

enum InvalidQueryReason {
    UNKNOWN_REASON = 0;
    FLAG_DISABLED = 1;
    UNSUPPORTED_SQLITE_VERSION = 2;
    AMBIGUOUS_CONFIG_KEY = 3;
    CONFIG_KEY_NOT_FOUND = 4;
    CONFIG_KEY_WITH_UNMATCHED_DELEGATE = 5;
    QUERY_FAILURE = 6;
    INCONSISTENT_ROW_SIZE = 7;
    NULL_CALLBACK = 8;
};

enum CounterType {
    COUNTER_TYPE_UNKNOWN = 0;
    COUNTER_TYPE_ERROR_ATOM_FILTER_SKIPPED = 1;
    COUNTER_TYPE_ERROR_STOP_IOURING_LISTENER_SYNC_LISTENER_NULLPTR = 2;
    COUNTER_TYPE_ERROR_STOP_IOURING_LISTENER_LIBURINGUTIL_NULLPTR = 3;
    COUNTER_TYPE_ERROR_LOGGING_CONTROL_ATOMS_IN_USE_SIZE_EXCEEDED = 4;
};
