// SPDX-License-Identifier: MIT

syntax = "proto2";

import "core.proto";

enum lsmtype {
	NO_LSM		= 0;
	SELINUX		= 1;
	APPARMOR	= 2;
}

// It is not possible to distinguish between an empty repeated field
// and unset repeated field. To solve this problem and provide backwards
// compabibility, we use the 'plugins_entry' message.
message plugins_entry {
	repeated string			plugins = 12;
};

message inventory_entry {
	required uint32			img_version	= 1;
	optional bool			fdinfo_per_id	= 2;
	optional task_kobj_ids_entry	root_ids	= 3;
	optional bool			ns_per_id	= 4;
	optional uint32			root_cg_set	= 5;
	optional lsmtype		lsmtype		= 6;
	optional uint64			dump_uptime	= 8;
	optional uint32			pre_dump_mode	= 9;
	optional bool			tcp_close	= 10;
	optional uint32			network_lock_method	= 11;
	optional plugins_entry		plugins_entry = 12;
	// Remember the criu_run_id when CRIU dumped the process.
	// This is currently used to delete the correct nftables
	// network locking rule.
	optional string                 dump_criu_run_id        = 13;
}
