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

option java_package = "com.android.commands.am";

message ResultsBundleEntry {
    optional string key = 1;

    optional string value_string = 2;
    optional sint32 value_int = 3;
    optional float value_float = 4;
    optional double value_double = 5;
    optional sint64 value_long = 6;
    optional ResultsBundle value_bundle = 7;
    optional bytes value_bytes = 8;
}

message ResultsBundle {
    repeated ResultsBundleEntry entries = 1;
}

message TestStatus {
    optional sint32 result_code = 3;
    optional ResultsBundle results = 4;
}

enum SessionStatusCode {
    /**
     * The command ran successfully. This does not imply that the tests passed.
     */
    SESSION_FINISHED = 0;

    /**
     * There was an unrecoverable error running the tests.
     */
    SESSION_ABORTED = 1;
}

message SessionStatus {
    optional SessionStatusCode status_code = 1;
    optional string error_text = 2;
    optional sint32 result_code = 3;
    optional ResultsBundle results = 4;
}

message Session {
    repeated TestStatus test_status = 1;
    optional SessionStatus session_status = 2;
}