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

package android.profiles;

// Next: 3
message TaskProfiles {
    repeated Attribute attributes = 1 [json_name = "Attributes"];
    repeated Profile profiles = 2 [json_name = "Profiles"];
}

// Next: 4
message Attribute {
    string name = 1 [json_name = "Name"];
    string controller = 2 [json_name = "Controller"];
    string file = 3 [json_name = "File"];
}

// Next: 3
message Profile {
    string name = 1 [json_name = "Name"];
    repeated Action actions = 2 [json_name = "Actions"];
}

// Next: 3
message Action {
    string name = 1 [json_name = "Name"];
    map<string, string> params = 2 [json_name = "Params"];
}
