/*
 * 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 Cgroups {
    repeated Cgroup cgroups = 1 [json_name = "Cgroups"];
    Cgroups2 cgroups2 = 2 [json_name = "Cgroups2"];
}

// Next: 6
message Cgroup {
    string controller = 1 [json_name = "Controller"];
    string path = 2 [json_name = "Path"];
    string mode = 3 [json_name = "Mode"];
    string uid = 4 [json_name = "UID"];
    string gid = 5 [json_name = "GID"];
}

// Next: 5
message Cgroups2 {
    string path = 1 [json_name = "Path"];
    string mode = 2 [json_name = "Mode"];
    string uid = 3 [json_name = "UID"];
    string gid = 4 [json_name = "GID"];
}
