/*
 * Copyright (C) 2020 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.nfc.cardemulation;

import "frameworks/base/core/proto/android/content/component_name.proto";
import "frameworks/base/core/proto/android/privacy.proto";

option java_multiple_files = true;

// Debugging information for android.nfc.cardemulation.NfcFServiceInfo
message NfcFServiceInfoProto {
    option (.android.msg_privacy).dest = DEST_EXPLICIT;

    optional .android.content.ComponentNameProto component_name = 1;
    // Description of the service
    optional string description = 2;
    // System Code of the service
    optional string system_code = 3;
    // NFCID2 of the service
    optional string nfcid2 = 4;
    // LF_T3T_PMM of the service
    optional string t3t_pmm = 5;
}
