/*
 * 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: 9
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"];
// Booleans default to false when not specified. File reconstruction fails
// when a boolean is specified as false, so leave unspecified in that case
// https://developers.google.com/protocol-buffers/docs/proto3#default
    bool needs_activation = 6 [json_name = "NeedsActivation"];
    bool is_optional = 7 [json_name = "Optional"];
    optional uint32 max_activation_depth = 8 [json_name = "MaxActivationDepth"];
}

// Next: 6
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"];
    repeated Cgroup controllers = 5 [json_name = "Controllers"];
}
