/*
 * Copyright (C) 2025 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.keystore;

import "frameworks/proto_logging/stats/atom_field_options.proto";
import "frameworks/proto_logging/stats/atoms.proto";

option java_package = "com.android.os.keystore";
option java_multiple_files = true;

extend Atom {
  optional Keystore2KeysPerUid keystore2_keys_per_uid = 10248 [(module) = "framework"];
}

/**
 * Number of Keystore keys per UID for the top UIDs by key count. The thresholds
 * for the number of UIDs and keys are configured in the code that emits this
 * atom.
 *
 * Logged from: system/security/keystore2/metrics.rs via StatsPullAtomService
 * using the IKeystoreMetrics service
 */
message Keystore2KeysPerUid {
    // UID of the app with Keystore2 keys.
    optional int32 uid = 1 [(is_uid) = true];

    // Number of entries in the "persistent.keyentry" table with domain=APP and
    // namespace equal to the "uid" field. For shared UIDs, this is the total
    // count across all apps sharing the same UID.
    optional int32 key_count = 2;
}