blob: 3eaf940c927036f13c05a731a229770bc38adb36 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc v3.19.4
// source: nsjail/config.proto
package nsjail
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Mode int32
const (
Mode_LISTEN Mode = 0 // Listening on a TCP port
Mode_ONCE Mode = 1 // Running the command once only
Mode_RERUN Mode = 2 // Re-executing the command (forever)
Mode_EXECVE Mode = 3 // Executing command w/o the supervisor
)
// Enum value maps for Mode.
var (
Mode_name = map[int32]string{
0: "LISTEN",
1: "ONCE",
2: "RERUN",
3: "EXECVE",
}
Mode_value = map[string]int32{
"LISTEN": 0,
"ONCE": 1,
"RERUN": 2,
"EXECVE": 3,
}
)
func (x Mode) Enum() *Mode {
p := new(Mode)
*p = x
return p
}
func (x Mode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Mode) Descriptor() protoreflect.EnumDescriptor {
return file_nsjail_config_proto_enumTypes[0].Descriptor()
}
func (Mode) Type() protoreflect.EnumType {
return &file_nsjail_config_proto_enumTypes[0]
}
func (x Mode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *Mode) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = Mode(num)
return nil
}
// Deprecated: Use Mode.Descriptor instead.
func (Mode) EnumDescriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{0}
}
// Should be self explanatory
type LogLevel int32
const (
LogLevel_DEBUG LogLevel = 0 // Equivalent to the '-v' cmd-line option
LogLevel_INFO LogLevel = 1 // Default level
LogLevel_WARNING LogLevel = 2 // Equivalent to the '-q' cmd-line option
LogLevel_ERROR LogLevel = 3
LogLevel_FATAL LogLevel = 4
)
// Enum value maps for LogLevel.
var (
LogLevel_name = map[int32]string{
0: "DEBUG",
1: "INFO",
2: "WARNING",
3: "ERROR",
4: "FATAL",
}
LogLevel_value = map[string]int32{
"DEBUG": 0,
"INFO": 1,
"WARNING": 2,
"ERROR": 3,
"FATAL": 4,
}
)
func (x LogLevel) Enum() *LogLevel {
p := new(LogLevel)
*p = x
return p
}
func (x LogLevel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (LogLevel) Descriptor() protoreflect.EnumDescriptor {
return file_nsjail_config_proto_enumTypes[1].Descriptor()
}
func (LogLevel) Type() protoreflect.EnumType {
return &file_nsjail_config_proto_enumTypes[1]
}
func (x LogLevel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *LogLevel) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = LogLevel(num)
return nil
}
// Deprecated: Use LogLevel.Descriptor instead.
func (LogLevel) EnumDescriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{1}
}
type RLimit int32
const (
RLimit_VALUE RLimit = 0 // Use the provided value
RLimit_SOFT RLimit = 1 // Use the current soft rlimit
RLimit_HARD RLimit = 2 // Use the current hard rlimit
RLimit_INF RLimit = 3 // Use RLIM64_INFINITY
)
// Enum value maps for RLimit.
var (
RLimit_name = map[int32]string{
0: "VALUE",
1: "SOFT",
2: "HARD",
3: "INF",
}
RLimit_value = map[string]int32{
"VALUE": 0,
"SOFT": 1,
"HARD": 2,
"INF": 3,
}
)
func (x RLimit) Enum() *RLimit {
p := new(RLimit)
*p = x
return p
}
func (x RLimit) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RLimit) Descriptor() protoreflect.EnumDescriptor {
return file_nsjail_config_proto_enumTypes[2].Descriptor()
}
func (RLimit) Type() protoreflect.EnumType {
return &file_nsjail_config_proto_enumTypes[2]
}
func (x RLimit) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *RLimit) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = RLimit(num)
return nil
}
// Deprecated: Use RLimit.Descriptor instead.
func (RLimit) EnumDescriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{2}
}
type IdMap struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Empty string means "current uid/gid"
InsideId *string `protobuf:"bytes,1,opt,name=inside_id,json=insideId,def=" json:"inside_id,omitempty"`
OutsideId *string `protobuf:"bytes,2,opt,name=outside_id,json=outsideId,def=" json:"outside_id,omitempty"`
// See 'man user_namespaces' for the meaning of count
Count *uint32 `protobuf:"varint,3,opt,name=count,def=1" json:"count,omitempty"`
// Does this map use /usr/bin/new[u|g]idmap binary?
UseNewidmap *bool `protobuf:"varint,4,opt,name=use_newidmap,json=useNewidmap,def=0" json:"use_newidmap,omitempty"`
}
// Default values for IdMap fields.
const (
Default_IdMap_InsideId = string("")
Default_IdMap_OutsideId = string("")
Default_IdMap_Count = uint32(1)
Default_IdMap_UseNewidmap = bool(false)
)
func (x *IdMap) Reset() {
*x = IdMap{}
if protoimpl.UnsafeEnabled {
mi := &file_nsjail_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IdMap) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IdMap) ProtoMessage() {}
func (x *IdMap) ProtoReflect() protoreflect.Message {
mi := &file_nsjail_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IdMap.ProtoReflect.Descriptor instead.
func (*IdMap) Descriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{0}
}
func (x *IdMap) GetInsideId() string {
if x != nil && x.InsideId != nil {
return *x.InsideId
}
return Default_IdMap_InsideId
}
func (x *IdMap) GetOutsideId() string {
if x != nil && x.OutsideId != nil {
return *x.OutsideId
}
return Default_IdMap_OutsideId
}
func (x *IdMap) GetCount() uint32 {
if x != nil && x.Count != nil {
return *x.Count
}
return Default_IdMap_Count
}
func (x *IdMap) GetUseNewidmap() bool {
if x != nil && x.UseNewidmap != nil {
return *x.UseNewidmap
}
return Default_IdMap_UseNewidmap
}
type MountPt struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Can be skipped for filesystems like 'proc'
Src *string `protobuf:"bytes,1,opt,name=src,def=" json:"src,omitempty"`
// Should 'src' path be prefixed with this envvar?
PrefixSrcEnv *string `protobuf:"bytes,2,opt,name=prefix_src_env,json=prefixSrcEnv,def=" json:"prefix_src_env,omitempty"`
// If specified, contains buffer that will be written to the dst file
SrcContent []byte `protobuf:"bytes,3,opt,name=src_content,json=srcContent,def=" json:"src_content,omitempty"`
// Mount point inside jail
Dst *string `protobuf:"bytes,4,req,name=dst,def=" json:"dst,omitempty"`
// Should 'dst' path be prefixed with this envvar?
PrefixDstEnv *string `protobuf:"bytes,5,opt,name=prefix_dst_env,json=prefixDstEnv,def=" json:"prefix_dst_env,omitempty"`
// Can be empty for mount --bind mounts
Fstype *string `protobuf:"bytes,6,opt,name=fstype,def=" json:"fstype,omitempty"`
// E.g. size=5000000 for 'tmpfs'
Options *string `protobuf:"bytes,7,opt,name=options,def=" json:"options,omitempty"`
// Is it a 'mount --bind src dst' type of mount?
IsBind *bool `protobuf:"varint,8,opt,name=is_bind,json=isBind,def=0" json:"is_bind,omitempty"`
// Is it a R/W mount?
Rw *bool `protobuf:"varint,9,opt,name=rw,def=0" json:"rw,omitempty"`
// Is it a directory? If not specified an internal
//heuristics will be used to determine that
IsDir *bool `protobuf:"varint,10,opt,name=is_dir,json=isDir" json:"is_dir,omitempty"`
// Should the sandboxing fail if we cannot mount this resource?
Mandatory *bool `protobuf:"varint,11,opt,name=mandatory,def=1" json:"mandatory,omitempty"`
// Is it a symlink (instead of real mount point)?
IsSymlink *bool `protobuf:"varint,12,opt,name=is_symlink,json=isSymlink,def=0" json:"is_symlink,omitempty"`
// Is it a nosuid mount
Nosuid *bool `protobuf:"varint,13,opt,name=nosuid,def=0" json:"nosuid,omitempty"`
// Is it a nodev mount
Nodev *bool `protobuf:"varint,14,opt,name=nodev,def=0" json:"nodev,omitempty"`
// Is it a noexec mount
Noexec *bool `protobuf:"varint,15,opt,name=noexec,def=0" json:"noexec,omitempty"`
}
// Default values for MountPt fields.
const (
Default_MountPt_Src = string("")
Default_MountPt_PrefixSrcEnv = string("")
Default_MountPt_Dst = string("")
Default_MountPt_PrefixDstEnv = string("")
Default_MountPt_Fstype = string("")
Default_MountPt_Options = string("")
Default_MountPt_IsBind = bool(false)
Default_MountPt_Rw = bool(false)
Default_MountPt_Mandatory = bool(true)
Default_MountPt_IsSymlink = bool(false)
Default_MountPt_Nosuid = bool(false)
Default_MountPt_Nodev = bool(false)
Default_MountPt_Noexec = bool(false)
)
// Default values for MountPt fields.
var (
Default_MountPt_SrcContent = []byte("")
)
func (x *MountPt) Reset() {
*x = MountPt{}
if protoimpl.UnsafeEnabled {
mi := &file_nsjail_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MountPt) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountPt) ProtoMessage() {}
func (x *MountPt) ProtoReflect() protoreflect.Message {
mi := &file_nsjail_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountPt.ProtoReflect.Descriptor instead.
func (*MountPt) Descriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{1}
}
func (x *MountPt) GetSrc() string {
if x != nil && x.Src != nil {
return *x.Src
}
return Default_MountPt_Src
}
func (x *MountPt) GetPrefixSrcEnv() string {
if x != nil && x.PrefixSrcEnv != nil {
return *x.PrefixSrcEnv
}
return Default_MountPt_PrefixSrcEnv
}
func (x *MountPt) GetSrcContent() []byte {
if x != nil && x.SrcContent != nil {
return x.SrcContent
}
return append([]byte(nil), Default_MountPt_SrcContent...)
}
func (x *MountPt) GetDst() string {
if x != nil && x.Dst != nil {
return *x.Dst
}
return Default_MountPt_Dst
}
func (x *MountPt) GetPrefixDstEnv() string {
if x != nil && x.PrefixDstEnv != nil {
return *x.PrefixDstEnv
}
return Default_MountPt_PrefixDstEnv
}
func (x *MountPt) GetFstype() string {
if x != nil && x.Fstype != nil {
return *x.Fstype
}
return Default_MountPt_Fstype
}
func (x *MountPt) GetOptions() string {
if x != nil && x.Options != nil {
return *x.Options
}
return Default_MountPt_Options
}
func (x *MountPt) GetIsBind() bool {
if x != nil && x.IsBind != nil {
return *x.IsBind
}
return Default_MountPt_IsBind
}
func (x *MountPt) GetRw() bool {
if x != nil && x.Rw != nil {
return *x.Rw
}
return Default_MountPt_Rw
}
func (x *MountPt) GetIsDir() bool {
if x != nil && x.IsDir != nil {
return *x.IsDir
}
return false
}
func (x *MountPt) GetMandatory() bool {
if x != nil && x.Mandatory != nil {
return *x.Mandatory
}
return Default_MountPt_Mandatory
}
func (x *MountPt) GetIsSymlink() bool {
if x != nil && x.IsSymlink != nil {
return *x.IsSymlink
}
return Default_MountPt_IsSymlink
}
func (x *MountPt) GetNosuid() bool {
if x != nil && x.Nosuid != nil {
return *x.Nosuid
}
return Default_MountPt_Nosuid
}
func (x *MountPt) GetNodev() bool {
if x != nil && x.Nodev != nil {
return *x.Nodev
}
return Default_MountPt_Nodev
}
func (x *MountPt) GetNoexec() bool {
if x != nil && x.Noexec != nil {
return *x.Noexec
}
return Default_MountPt_Noexec
}
type Exe struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Will be used both as execv's path and as argv[0]
Path *string `protobuf:"bytes,1,req,name=path" json:"path,omitempty"`
// This will be argv[1] and so on..
Arg []string `protobuf:"bytes,2,rep,name=arg" json:"arg,omitempty"`
// Override argv[0]
Arg0 *string `protobuf:"bytes,3,opt,name=arg0" json:"arg0,omitempty"`
// Should execveat() be used to execute a file-descriptor instead?
ExecFd *bool `protobuf:"varint,4,opt,name=exec_fd,json=execFd,def=0" json:"exec_fd,omitempty"`
}
// Default values for Exe fields.
const (
Default_Exe_ExecFd = bool(false)
)
func (x *Exe) Reset() {
*x = Exe{}
if protoimpl.UnsafeEnabled {
mi := &file_nsjail_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Exe) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Exe) ProtoMessage() {}
func (x *Exe) ProtoReflect() protoreflect.Message {
mi := &file_nsjail_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Exe.ProtoReflect.Descriptor instead.
func (*Exe) Descriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{2}
}
func (x *Exe) GetPath() string {
if x != nil && x.Path != nil {
return *x.Path
}
return ""
}
func (x *Exe) GetArg() []string {
if x != nil {
return x.Arg
}
return nil
}
func (x *Exe) GetArg0() string {
if x != nil && x.Arg0 != nil {
return *x.Arg0
}
return ""
}
func (x *Exe) GetExecFd() bool {
if x != nil && x.ExecFd != nil {
return *x.ExecFd
}
return Default_Exe_ExecFd
}
type NsJailConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Optional name and description for this config
Name *string `protobuf:"bytes,1,opt,name=name,def=" json:"name,omitempty"`
Description []string `protobuf:"bytes,2,rep,name=description" json:"description,omitempty"`
// Execution mode: see 'msg Mode' description for more
Mode *Mode `protobuf:"varint,3,opt,name=mode,enum=nsjail.Mode,def=1" json:"mode,omitempty"`
// Equivalent to a bind mount with dst='/'. DEPRECATED: Use bind mounts.
// Deprecated: Do not use.
ChrootDir *string `protobuf:"bytes,4,opt,name=chroot_dir,json=chrootDir" json:"chroot_dir,omitempty"`
// Applies both to the chroot_dir and to /proc mounts. DEPRECATED: Use bind mounts
// Deprecated: Do not use.
IsRootRw *bool `protobuf:"varint,5,opt,name=is_root_rw,json=isRootRw,def=0" json:"is_root_rw,omitempty"`
// Hostname inside jail
Hostname *string `protobuf:"bytes,8,opt,name=hostname,def=NSJAIL" json:"hostname,omitempty"`
// Initial current working directory for the binary
Cwd *string `protobuf:"bytes,9,opt,name=cwd,def=/" json:"cwd,omitempty"`
// TCP port to listen to. Valid with mode=LISTEN only
Port *uint32 `protobuf:"varint,10,opt,name=port,def=0" json:"port,omitempty"`
// Host to bind to for mode=LISTEN. Must be in IPv6 format
Bindhost *string `protobuf:"bytes,11,opt,name=bindhost,def=::" json:"bindhost,omitempty"`
// For mode=LISTEN, maximum number of connections from a single IP
MaxConnsPerIp *uint32 `protobuf:"varint,12,opt,name=max_conns_per_ip,json=maxConnsPerIp,def=0" json:"max_conns_per_ip,omitempty"`
// Wall-time time limit for commands
TimeLimit *uint32 `protobuf:"varint,13,opt,name=time_limit,json=timeLimit,def=600" json:"time_limit,omitempty"`
// Should nsjail go into background?
Daemon *bool `protobuf:"varint,14,opt,name=daemon,def=0" json:"daemon,omitempty"`
// Maximum number of CPUs to use: 0 - no limit
MaxCpus *uint32 `protobuf:"varint,15,opt,name=max_cpus,json=maxCpus,def=0" json:"max_cpus,omitempty"`
// FD to log to.
LogFd *int32 `protobuf:"varint,16,opt,name=log_fd,json=logFd" json:"log_fd,omitempty"`
// File to save lofs to
LogFile *string `protobuf:"bytes,17,opt,name=log_file,json=logFile" json:"log_file,omitempty"`
// Minimum log level displayed.
//See 'msg LogLevel' description for more
LogLevel *LogLevel `protobuf:"varint,18,opt,name=log_level,json=logLevel,enum=nsjail.LogLevel" json:"log_level,omitempty"`
// Should the current environment variables be kept
//when executing the binary
KeepEnv *bool `protobuf:"varint,19,opt,name=keep_env,json=keepEnv,def=0" json:"keep_env,omitempty"`
// EnvVars to be set before executing binaries. If the envvar doesn't contain '='
//(e.g. just the 'DISPLAY' string), the current envvar value will be used
Envar []string `protobuf:"bytes,20,rep,name=envar" json:"envar,omitempty"`
// Should capabilities be preserved or dropped
KeepCaps *bool `protobuf:"varint,21,opt,name=keep_caps,json=keepCaps,def=0" json:"keep_caps,omitempty"`
// Which capabilities should be preserved if keep_caps == false.
//Format: "CAP_SYS_PTRACE"
Cap []string `protobuf:"bytes,22,rep,name=cap" json:"cap,omitempty"`
// Should nsjail close FD=0,1,2 before executing the process
Silent *bool `protobuf:"varint,23,opt,name=silent,def=0" json:"silent,omitempty"`
// Should the child process have control over terminal?
//Can be useful to allow /bin/sh to provide
//job control / signals. Dangerous, can be used to put
//characters into the controlling terminal back
SkipSetsid *bool `protobuf:"varint,24,opt,name=skip_setsid,json=skipSetsid,def=0" json:"skip_setsid,omitempty"`
// Redirect sdterr of the process to /dev/null instead of the socket or original TTY
StderrToNull *bool `protobuf:"varint,25,opt,name=stderr_to_null,json=stderrToNull,def=0" json:"stderr_to_null,omitempty"`
// Which FDs should be passed to the newly executed process
//By default only FD=0,1,2 are passed
PassFd []int32 `protobuf:"varint,26,rep,name=pass_fd,json=passFd" json:"pass_fd,omitempty"`
// Setting it to true will allow to have set-uid binaries
//inside the jail
DisableNoNewPrivs *bool `protobuf:"varint,27,opt,name=disable_no_new_privs,json=disableNoNewPrivs,def=0" json:"disable_no_new_privs,omitempty"`
// Various rlimits, the rlimit_as/rlimit_core/... are used only if
//rlimit_as_type/rlimit_core_type/... are set to RLimit::VALUE
RlimitAs *uint64 `protobuf:"varint,28,opt,name=rlimit_as,json=rlimitAs,def=512" json:"rlimit_as,omitempty"` // In MiB
RlimitAsType *RLimit `protobuf:"varint,29,opt,name=rlimit_as_type,json=rlimitAsType,enum=nsjail.RLimit,def=0" json:"rlimit_as_type,omitempty"`
RlimitCore *uint64 `protobuf:"varint,30,opt,name=rlimit_core,json=rlimitCore,def=0" json:"rlimit_core,omitempty"` // In MiB
RlimitCoreType *RLimit `protobuf:"varint,31,opt,name=rlimit_core_type,json=rlimitCoreType,enum=nsjail.RLimit,def=0" json:"rlimit_core_type,omitempty"`
RlimitCpu *uint64 `protobuf:"varint,32,opt,name=rlimit_cpu,json=rlimitCpu,def=600" json:"rlimit_cpu,omitempty"` // In seconds
RlimitCpuType *RLimit `protobuf:"varint,33,opt,name=rlimit_cpu_type,json=rlimitCpuType,enum=nsjail.RLimit,def=0" json:"rlimit_cpu_type,omitempty"`
RlimitFsize *uint64 `protobuf:"varint,34,opt,name=rlimit_fsize,json=rlimitFsize,def=1" json:"rlimit_fsize,omitempty"` // In MiB
RlimitFsizeType *RLimit `protobuf:"varint,35,opt,name=rlimit_fsize_type,json=rlimitFsizeType,enum=nsjail.RLimit,def=0" json:"rlimit_fsize_type,omitempty"`
RlimitNofile *uint64 `protobuf:"varint,36,opt,name=rlimit_nofile,json=rlimitNofile,def=32" json:"rlimit_nofile,omitempty"`
RlimitNofileType *RLimit `protobuf:"varint,37,opt,name=rlimit_nofile_type,json=rlimitNofileType,enum=nsjail.RLimit,def=0" json:"rlimit_nofile_type,omitempty"`
// RLIMIT_NPROC is system-wide - tricky to use; use the soft limit value by
// default here
RlimitNproc *uint64 `protobuf:"varint,38,opt,name=rlimit_nproc,json=rlimitNproc,def=1024" json:"rlimit_nproc,omitempty"`
RlimitNprocType *RLimit `protobuf:"varint,39,opt,name=rlimit_nproc_type,json=rlimitNprocType,enum=nsjail.RLimit,def=1" json:"rlimit_nproc_type,omitempty"`
// In MiB, use the soft limit value by default
RlimitStack *uint64 `protobuf:"varint,40,opt,name=rlimit_stack,json=rlimitStack,def=1048576" json:"rlimit_stack,omitempty"`
RlimitStackType *RLimit `protobuf:"varint,41,opt,name=rlimit_stack_type,json=rlimitStackType,enum=nsjail.RLimit,def=1" json:"rlimit_stack_type,omitempty"`
// See 'man personality' for more
PersonaAddrCompatLayout *bool `protobuf:"varint,42,opt,name=persona_addr_compat_layout,json=personaAddrCompatLayout,def=0" json:"persona_addr_compat_layout,omitempty"`
PersonaMmapPageZero *bool `protobuf:"varint,43,opt,name=persona_mmap_page_zero,json=personaMmapPageZero,def=0" json:"persona_mmap_page_zero,omitempty"`
PersonaReadImpliesExec *bool `protobuf:"varint,44,opt,name=persona_read_implies_exec,json=personaReadImpliesExec,def=0" json:"persona_read_implies_exec,omitempty"`
PersonaAddrLimit_3Gb *bool `protobuf:"varint,45,opt,name=persona_addr_limit_3gb,json=personaAddrLimit3gb,def=0" json:"persona_addr_limit_3gb,omitempty"`
PersonaAddrNoRandomize *bool `protobuf:"varint,46,opt,name=persona_addr_no_randomize,json=personaAddrNoRandomize,def=0" json:"persona_addr_no_randomize,omitempty"`
// Which name-spaces should be used?
CloneNewnet *bool `protobuf:"varint,47,opt,name=clone_newnet,json=cloneNewnet,def=1" json:"clone_newnet,omitempty"`
CloneNewuser *bool `protobuf:"varint,48,opt,name=clone_newuser,json=cloneNewuser,def=1" json:"clone_newuser,omitempty"`
CloneNewns *bool `protobuf:"varint,49,opt,name=clone_newns,json=cloneNewns,def=1" json:"clone_newns,omitempty"`
CloneNewpid *bool `protobuf:"varint,50,opt,name=clone_newpid,json=cloneNewpid,def=1" json:"clone_newpid,omitempty"`
CloneNewipc *bool `protobuf:"varint,51,opt,name=clone_newipc,json=cloneNewipc,def=1" json:"clone_newipc,omitempty"`
CloneNewuts *bool `protobuf:"varint,52,opt,name=clone_newuts,json=cloneNewuts,def=1" json:"clone_newuts,omitempty"`
// Disable for kernel versions < 4.6 as it's not supported there
CloneNewcgroup *bool `protobuf:"varint,53,opt,name=clone_newcgroup,json=cloneNewcgroup,def=1" json:"clone_newcgroup,omitempty"`
// Mappings for UIDs and GIDs. See the description for 'msg IdMap'
//for more
Uidmap []*IdMap `protobuf:"bytes,54,rep,name=uidmap" json:"uidmap,omitempty"`
Gidmap []*IdMap `protobuf:"bytes,55,rep,name=gidmap" json:"gidmap,omitempty"`
// Should /proc be mounted (R/O)? This can also be added in the 'mount'
//section below
MountProc *bool `protobuf:"varint,56,opt,name=mount_proc,json=mountProc,def=0" json:"mount_proc,omitempty"`
// Mount points inside the jail. See the description for 'msg MountPt'
//for more
Mount []*MountPt `protobuf:"bytes,57,rep,name=mount" json:"mount,omitempty"`
// Kafel seccomp-bpf policy file or a string:
//Homepage of the project: https://github.com/google/kafel
SeccompPolicyFile *string `protobuf:"bytes,58,opt,name=seccomp_policy_file,json=seccompPolicyFile" json:"seccomp_policy_file,omitempty"`
SeccompString []string `protobuf:"bytes,59,rep,name=seccomp_string,json=seccompString" json:"seccomp_string,omitempty"`
// Setting it to true makes audit write seccomp logs to dmesg
SeccompLog *bool `protobuf:"varint,60,opt,name=seccomp_log,json=seccompLog,def=0" json:"seccomp_log,omitempty"`
// If > 0, maximum cumulative size of RAM used inside any jail
CgroupMemMax *uint64 `protobuf:"varint,61,opt,name=cgroup_mem_max,json=cgroupMemMax,def=0" json:"cgroup_mem_max,omitempty"` // In MiB
// Mount point for cgroups-memory in your system
CgroupMemMount *string `protobuf:"bytes,62,opt,name=cgroup_mem_mount,json=cgroupMemMount,def=/sys/fs/cgroup/memory" json:"cgroup_mem_mount,omitempty"`
// Writeable directory (for the nsjail user) under cgroup_mem_mount
CgroupMemParent *string `protobuf:"bytes,63,opt,name=cgroup_mem_parent,json=cgroupMemParent,def=NSJAIL" json:"cgroup_mem_parent,omitempty"`
// If > 0, maximum number of PIDs (threads/processes) inside jail
CgroupPidsMax *uint64 `protobuf:"varint,64,opt,name=cgroup_pids_max,json=cgroupPidsMax,def=0" json:"cgroup_pids_max,omitempty"`
// Mount point for cgroups-pids in your system
CgroupPidsMount *string `protobuf:"bytes,65,opt,name=cgroup_pids_mount,json=cgroupPidsMount,def=/sys/fs/cgroup/pids" json:"cgroup_pids_mount,omitempty"`
// Writeable directory (for the nsjail user) under cgroup_pids_mount
CgroupPidsParent *string `protobuf:"bytes,66,opt,name=cgroup_pids_parent,json=cgroupPidsParent,def=NSJAIL" json:"cgroup_pids_parent,omitempty"`
// If > 0, Class identifier of network packets inside jail
CgroupNetClsClassid *uint32 `protobuf:"varint,67,opt,name=cgroup_net_cls_classid,json=cgroupNetClsClassid,def=0" json:"cgroup_net_cls_classid,omitempty"`
// Mount point for cgroups-net-cls in your system
CgroupNetClsMount *string `protobuf:"bytes,68,opt,name=cgroup_net_cls_mount,json=cgroupNetClsMount,def=/sys/fs/cgroup/net_cls" json:"cgroup_net_cls_mount,omitempty"`
// Writeable directory (for the nsjail user) under cgroup_net_mount
CgroupNetClsParent *string `protobuf:"bytes,69,opt,name=cgroup_net_cls_parent,json=cgroupNetClsParent,def=NSJAIL" json:"cgroup_net_cls_parent,omitempty"`
// If > 0 number of milliseconds of CPU that jail processes can use per each second
CgroupCpuMsPerSec *uint32 `protobuf:"varint,70,opt,name=cgroup_cpu_ms_per_sec,json=cgroupCpuMsPerSec,def=0" json:"cgroup_cpu_ms_per_sec,omitempty"`
// Mount point for cgroups-cpu in your system
CgroupCpuMount *string `protobuf:"bytes,71,opt,name=cgroup_cpu_mount,json=cgroupCpuMount,def=/sys/fs/cgroup/cpu" json:"cgroup_cpu_mount,omitempty"`
// Writeable directory (for the nsjail user) under cgroup_cpu_mount
CgroupCpuParent *string `protobuf:"bytes,72,opt,name=cgroup_cpu_parent,json=cgroupCpuParent,def=NSJAIL" json:"cgroup_cpu_parent,omitempty"`
// Should the 'lo' interface be brought up (active) inside this jail?
IfaceNoLo *bool `protobuf:"varint,73,opt,name=iface_no_lo,json=ifaceNoLo,def=0" json:"iface_no_lo,omitempty"`
// Put this interface inside the jail
IfaceOwn []string `protobuf:"bytes,74,rep,name=iface_own,json=ifaceOwn" json:"iface_own,omitempty"`
// Parameters for the cloned MACVLAN interface inside jail
MacvlanIface *string `protobuf:"bytes,75,opt,name=macvlan_iface,json=macvlanIface" json:"macvlan_iface,omitempty"` // Interface to be cloned, eg 'eth0'
MacvlanVsIp *string `protobuf:"bytes,76,opt,name=macvlan_vs_ip,json=macvlanVsIp,def=192.168.0.2" json:"macvlan_vs_ip,omitempty"`
MacvlanVsNm *string `protobuf:"bytes,77,opt,name=macvlan_vs_nm,json=macvlanVsNm,def=255.255.255.0" json:"macvlan_vs_nm,omitempty"`
MacvlanVsGw *string `protobuf:"bytes,78,opt,name=macvlan_vs_gw,json=macvlanVsGw,def=192.168.0.1" json:"macvlan_vs_gw,omitempty"`
MacvlanVsMa *string `protobuf:"bytes,79,opt,name=macvlan_vs_ma,json=macvlanVsMa,def=" json:"macvlan_vs_ma,omitempty"`
// Binary path (with arguments) to be executed. If not specified here, it
//can be specified with cmd-line as "-- /path/to/command arg1 arg2"
ExecBin *Exe `protobuf:"bytes,80,opt,name=exec_bin,json=execBin" json:"exec_bin,omitempty"`
}
// Default values for NsJailConfig fields.
const (
Default_NsJailConfig_Name = string("")
Default_NsJailConfig_Mode = Mode_ONCE
Default_NsJailConfig_IsRootRw = bool(false)
Default_NsJailConfig_Hostname = string("NSJAIL")
Default_NsJailConfig_Cwd = string("/")
Default_NsJailConfig_Port = uint32(0)
Default_NsJailConfig_Bindhost = string("::")
Default_NsJailConfig_MaxConnsPerIp = uint32(0)
Default_NsJailConfig_TimeLimit = uint32(600)
Default_NsJailConfig_Daemon = bool(false)
Default_NsJailConfig_MaxCpus = uint32(0)
Default_NsJailConfig_KeepEnv = bool(false)
Default_NsJailConfig_KeepCaps = bool(false)
Default_NsJailConfig_Silent = bool(false)
Default_NsJailConfig_SkipSetsid = bool(false)
Default_NsJailConfig_StderrToNull = bool(false)
Default_NsJailConfig_DisableNoNewPrivs = bool(false)
Default_NsJailConfig_RlimitAs = uint64(512)
Default_NsJailConfig_RlimitAsType = RLimit_VALUE
Default_NsJailConfig_RlimitCore = uint64(0)
Default_NsJailConfig_RlimitCoreType = RLimit_VALUE
Default_NsJailConfig_RlimitCpu = uint64(600)
Default_NsJailConfig_RlimitCpuType = RLimit_VALUE
Default_NsJailConfig_RlimitFsize = uint64(1)
Default_NsJailConfig_RlimitFsizeType = RLimit_VALUE
Default_NsJailConfig_RlimitNofile = uint64(32)
Default_NsJailConfig_RlimitNofileType = RLimit_VALUE
Default_NsJailConfig_RlimitNproc = uint64(1024)
Default_NsJailConfig_RlimitNprocType = RLimit_SOFT
Default_NsJailConfig_RlimitStack = uint64(1048576)
Default_NsJailConfig_RlimitStackType = RLimit_SOFT
Default_NsJailConfig_PersonaAddrCompatLayout = bool(false)
Default_NsJailConfig_PersonaMmapPageZero = bool(false)
Default_NsJailConfig_PersonaReadImpliesExec = bool(false)
Default_NsJailConfig_PersonaAddrLimit_3Gb = bool(false)
Default_NsJailConfig_PersonaAddrNoRandomize = bool(false)
Default_NsJailConfig_CloneNewnet = bool(true)
Default_NsJailConfig_CloneNewuser = bool(true)
Default_NsJailConfig_CloneNewns = bool(true)
Default_NsJailConfig_CloneNewpid = bool(true)
Default_NsJailConfig_CloneNewipc = bool(true)
Default_NsJailConfig_CloneNewuts = bool(true)
Default_NsJailConfig_CloneNewcgroup = bool(true)
Default_NsJailConfig_MountProc = bool(false)
Default_NsJailConfig_SeccompLog = bool(false)
Default_NsJailConfig_CgroupMemMax = uint64(0)
Default_NsJailConfig_CgroupMemMount = string("/sys/fs/cgroup/memory")
Default_NsJailConfig_CgroupMemParent = string("NSJAIL")
Default_NsJailConfig_CgroupPidsMax = uint64(0)
Default_NsJailConfig_CgroupPidsMount = string("/sys/fs/cgroup/pids")
Default_NsJailConfig_CgroupPidsParent = string("NSJAIL")
Default_NsJailConfig_CgroupNetClsClassid = uint32(0)
Default_NsJailConfig_CgroupNetClsMount = string("/sys/fs/cgroup/net_cls")
Default_NsJailConfig_CgroupNetClsParent = string("NSJAIL")
Default_NsJailConfig_CgroupCpuMsPerSec = uint32(0)
Default_NsJailConfig_CgroupCpuMount = string("/sys/fs/cgroup/cpu")
Default_NsJailConfig_CgroupCpuParent = string("NSJAIL")
Default_NsJailConfig_IfaceNoLo = bool(false)
Default_NsJailConfig_MacvlanVsIp = string("192.168.0.2")
Default_NsJailConfig_MacvlanVsNm = string("255.255.255.0")
Default_NsJailConfig_MacvlanVsGw = string("192.168.0.1")
Default_NsJailConfig_MacvlanVsMa = string("")
)
func (x *NsJailConfig) Reset() {
*x = NsJailConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_nsjail_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NsJailConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NsJailConfig) ProtoMessage() {}
func (x *NsJailConfig) ProtoReflect() protoreflect.Message {
mi := &file_nsjail_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NsJailConfig.ProtoReflect.Descriptor instead.
func (*NsJailConfig) Descriptor() ([]byte, []int) {
return file_nsjail_config_proto_rawDescGZIP(), []int{3}
}
func (x *NsJailConfig) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return Default_NsJailConfig_Name
}
func (x *NsJailConfig) GetDescription() []string {
if x != nil {
return x.Description
}
return nil
}
func (x *NsJailConfig) GetMode() Mode {
if x != nil && x.Mode != nil {
return *x.Mode
}
return Default_NsJailConfig_Mode
}
// Deprecated: Do not use.
func (x *NsJailConfig) GetChrootDir() string {
if x != nil && x.ChrootDir != nil {
return *x.ChrootDir
}
return ""
}
// Deprecated: Do not use.
func (x *NsJailConfig) GetIsRootRw() bool {
if x != nil && x.IsRootRw != nil {
return *x.IsRootRw
}
return Default_NsJailConfig_IsRootRw
}
func (x *NsJailConfig) GetHostname() string {
if x != nil && x.Hostname != nil {
return *x.Hostname
}
return Default_NsJailConfig_Hostname
}
func (x *NsJailConfig) GetCwd() string {
if x != nil && x.Cwd != nil {
return *x.Cwd
}
return Default_NsJailConfig_Cwd
}
func (x *NsJailConfig) GetPort() uint32 {
if x != nil && x.Port != nil {
return *x.Port
}
return Default_NsJailConfig_Port
}
func (x *NsJailConfig) GetBindhost() string {
if x != nil && x.Bindhost != nil {
return *x.Bindhost
}
return Default_NsJailConfig_Bindhost
}
func (x *NsJailConfig) GetMaxConnsPerIp() uint32 {
if x != nil && x.MaxConnsPerIp != nil {
return *x.MaxConnsPerIp
}
return Default_NsJailConfig_MaxConnsPerIp
}
func (x *NsJailConfig) GetTimeLimit() uint32 {
if x != nil && x.TimeLimit != nil {
return *x.TimeLimit
}
return Default_NsJailConfig_TimeLimit
}
func (x *NsJailConfig) GetDaemon() bool {
if x != nil && x.Daemon != nil {
return *x.Daemon
}
return Default_NsJailConfig_Daemon
}
func (x *NsJailConfig) GetMaxCpus() uint32 {
if x != nil && x.MaxCpus != nil {
return *x.MaxCpus
}
return Default_NsJailConfig_MaxCpus
}
func (x *NsJailConfig) GetLogFd() int32 {
if x != nil && x.LogFd != nil {
return *x.LogFd
}
return 0
}
func (x *NsJailConfig) GetLogFile() string {
if x != nil && x.LogFile != nil {
return *x.LogFile
}
return ""
}
func (x *NsJailConfig) GetLogLevel() LogLevel {
if x != nil && x.LogLevel != nil {
return *x.LogLevel
}
return LogLevel_DEBUG
}
func (x *NsJailConfig) GetKeepEnv() bool {
if x != nil && x.KeepEnv != nil {
return *x.KeepEnv
}
return Default_NsJailConfig_KeepEnv
}
func (x *NsJailConfig) GetEnvar() []string {
if x != nil {
return x.Envar
}
return nil
}
func (x *NsJailConfig) GetKeepCaps() bool {
if x != nil && x.KeepCaps != nil {
return *x.KeepCaps
}
return Default_NsJailConfig_KeepCaps
}
func (x *NsJailConfig) GetCap() []string {
if x != nil {
return x.Cap
}
return nil
}
func (x *NsJailConfig) GetSilent() bool {
if x != nil && x.Silent != nil {
return *x.Silent
}
return Default_NsJailConfig_Silent
}
func (x *NsJailConfig) GetSkipSetsid() bool {
if x != nil && x.SkipSetsid != nil {
return *x.SkipSetsid
}
return Default_NsJailConfig_SkipSetsid
}
func (x *NsJailConfig) GetStderrToNull() bool {
if x != nil && x.StderrToNull != nil {
return *x.StderrToNull
}
return Default_NsJailConfig_StderrToNull
}
func (x *NsJailConfig) GetPassFd() []int32 {
if x != nil {
return x.PassFd
}
return nil
}
func (x *NsJailConfig) GetDisableNoNewPrivs() bool {
if x != nil && x.DisableNoNewPrivs != nil {
return *x.DisableNoNewPrivs
}
return Default_NsJailConfig_DisableNoNewPrivs
}
func (x *NsJailConfig) GetRlimitAs() uint64 {
if x != nil && x.RlimitAs != nil {
return *x.RlimitAs
}
return Default_NsJailConfig_RlimitAs
}
func (x *NsJailConfig) GetRlimitAsType() RLimit {
if x != nil && x.RlimitAsType != nil {
return *x.RlimitAsType
}
return Default_NsJailConfig_RlimitAsType
}
func (x *NsJailConfig) GetRlimitCore() uint64 {
if x != nil && x.RlimitCore != nil {
return *x.RlimitCore
}
return Default_NsJailConfig_RlimitCore
}
func (x *NsJailConfig) GetRlimitCoreType() RLimit {
if x != nil && x.RlimitCoreType != nil {
return *x.RlimitCoreType
}
return Default_NsJailConfig_RlimitCoreType
}
func (x *NsJailConfig) GetRlimitCpu() uint64 {
if x != nil && x.RlimitCpu != nil {
return *x.RlimitCpu
}
return Default_NsJailConfig_RlimitCpu
}
func (x *NsJailConfig) GetRlimitCpuType() RLimit {
if x != nil && x.RlimitCpuType != nil {
return *x.RlimitCpuType
}
return Default_NsJailConfig_RlimitCpuType
}
func (x *NsJailConfig) GetRlimitFsize() uint64 {
if x != nil && x.RlimitFsize != nil {
return *x.RlimitFsize
}
return Default_NsJailConfig_RlimitFsize
}
func (x *NsJailConfig) GetRlimitFsizeType() RLimit {
if x != nil && x.RlimitFsizeType != nil {
return *x.RlimitFsizeType
}
return Default_NsJailConfig_RlimitFsizeType
}
func (x *NsJailConfig) GetRlimitNofile() uint64 {
if x != nil && x.RlimitNofile != nil {
return *x.RlimitNofile
}
return Default_NsJailConfig_RlimitNofile
}
func (x *NsJailConfig) GetRlimitNofileType() RLimit {
if x != nil && x.RlimitNofileType != nil {
return *x.RlimitNofileType
}
return Default_NsJailConfig_RlimitNofileType
}
func (x *NsJailConfig) GetRlimitNproc() uint64 {
if x != nil && x.RlimitNproc != nil {
return *x.RlimitNproc
}
return Default_NsJailConfig_RlimitNproc
}
func (x *NsJailConfig) GetRlimitNprocType() RLimit {
if x != nil && x.RlimitNprocType != nil {
return *x.RlimitNprocType
}
return Default_NsJailConfig_RlimitNprocType
}
func (x *NsJailConfig) GetRlimitStack() uint64 {
if x != nil && x.RlimitStack != nil {
return *x.RlimitStack
}
return Default_NsJailConfig_RlimitStack
}
func (x *NsJailConfig) GetRlimitStackType() RLimit {
if x != nil && x.RlimitStackType != nil {
return *x.RlimitStackType
}
return Default_NsJailConfig_RlimitStackType
}
func (x *NsJailConfig) GetPersonaAddrCompatLayout() bool {
if x != nil && x.PersonaAddrCompatLayout != nil {
return *x.PersonaAddrCompatLayout
}
return Default_NsJailConfig_PersonaAddrCompatLayout
}
func (x *NsJailConfig) GetPersonaMmapPageZero() bool {
if x != nil && x.PersonaMmapPageZero != nil {
return *x.PersonaMmapPageZero
}
return Default_NsJailConfig_PersonaMmapPageZero
}
func (x *NsJailConfig) GetPersonaReadImpliesExec() bool {
if x != nil && x.PersonaReadImpliesExec != nil {
return *x.PersonaReadImpliesExec
}
return Default_NsJailConfig_PersonaReadImpliesExec
}
func (x *NsJailConfig) GetPersonaAddrLimit_3Gb() bool {
if x != nil && x.PersonaAddrLimit_3Gb != nil {
return *x.PersonaAddrLimit_3Gb
}
return Default_NsJailConfig_PersonaAddrLimit_3Gb
}
func (x *NsJailConfig) GetPersonaAddrNoRandomize() bool {
if x != nil && x.PersonaAddrNoRandomize != nil {
return *x.PersonaAddrNoRandomize
}
return Default_NsJailConfig_PersonaAddrNoRandomize
}
func (x *NsJailConfig) GetCloneNewnet() bool {
if x != nil && x.CloneNewnet != nil {
return *x.CloneNewnet
}
return Default_NsJailConfig_CloneNewnet
}
func (x *NsJailConfig) GetCloneNewuser() bool {
if x != nil && x.CloneNewuser != nil {
return *x.CloneNewuser
}
return Default_NsJailConfig_CloneNewuser
}
func (x *NsJailConfig) GetCloneNewns() bool {
if x != nil && x.CloneNewns != nil {
return *x.CloneNewns
}
return Default_NsJailConfig_CloneNewns
}
func (x *NsJailConfig) GetCloneNewpid() bool {
if x != nil && x.CloneNewpid != nil {
return *x.CloneNewpid
}
return Default_NsJailConfig_CloneNewpid
}
func (x *NsJailConfig) GetCloneNewipc() bool {
if x != nil && x.CloneNewipc != nil {
return *x.CloneNewipc
}
return Default_NsJailConfig_CloneNewipc
}
func (x *NsJailConfig) GetCloneNewuts() bool {
if x != nil && x.CloneNewuts != nil {
return *x.CloneNewuts
}
return Default_NsJailConfig_CloneNewuts
}
func (x *NsJailConfig) GetCloneNewcgroup() bool {
if x != nil && x.CloneNewcgroup != nil {
return *x.CloneNewcgroup
}
return Default_NsJailConfig_CloneNewcgroup
}
func (x *NsJailConfig) GetUidmap() []*IdMap {
if x != nil {
return x.Uidmap
}
return nil
}
func (x *NsJailConfig) GetGidmap() []*IdMap {
if x != nil {
return x.Gidmap
}
return nil
}
func (x *NsJailConfig) GetMountProc() bool {
if x != nil && x.MountProc != nil {
return *x.MountProc
}
return Default_NsJailConfig_MountProc
}
func (x *NsJailConfig) GetMount() []*MountPt {
if x != nil {
return x.Mount
}
return nil
}
func (x *NsJailConfig) GetSeccompPolicyFile() string {
if x != nil && x.SeccompPolicyFile != nil {
return *x.SeccompPolicyFile
}
return ""
}
func (x *NsJailConfig) GetSeccompString() []string {
if x != nil {
return x.SeccompString
}
return nil
}
func (x *NsJailConfig) GetSeccompLog() bool {
if x != nil && x.SeccompLog != nil {
return *x.SeccompLog
}
return Default_NsJailConfig_SeccompLog
}
func (x *NsJailConfig) GetCgroupMemMax() uint64 {
if x != nil && x.CgroupMemMax != nil {
return *x.CgroupMemMax
}
return Default_NsJailConfig_CgroupMemMax
}
func (x *NsJailConfig) GetCgroupMemMount() string {
if x != nil && x.CgroupMemMount != nil {
return *x.CgroupMemMount
}
return Default_NsJailConfig_CgroupMemMount
}
func (x *NsJailConfig) GetCgroupMemParent() string {
if x != nil && x.CgroupMemParent != nil {
return *x.CgroupMemParent
}
return Default_NsJailConfig_CgroupMemParent
}
func (x *NsJailConfig) GetCgroupPidsMax() uint64 {
if x != nil && x.CgroupPidsMax != nil {
return *x.CgroupPidsMax
}
return Default_NsJailConfig_CgroupPidsMax
}
func (x *NsJailConfig) GetCgroupPidsMount() string {
if x != nil && x.CgroupPidsMount != nil {
return *x.CgroupPidsMount
}
return Default_NsJailConfig_CgroupPidsMount
}
func (x *NsJailConfig) GetCgroupPidsParent() string {
if x != nil && x.CgroupPidsParent != nil {
return *x.CgroupPidsParent
}
return Default_NsJailConfig_CgroupPidsParent
}
func (x *NsJailConfig) GetCgroupNetClsClassid() uint32 {
if x != nil && x.CgroupNetClsClassid != nil {
return *x.CgroupNetClsClassid
}
return Default_NsJailConfig_CgroupNetClsClassid
}
func (x *NsJailConfig) GetCgroupNetClsMount() string {
if x != nil && x.CgroupNetClsMount != nil {
return *x.CgroupNetClsMount
}
return Default_NsJailConfig_CgroupNetClsMount
}
func (x *NsJailConfig) GetCgroupNetClsParent() string {
if x != nil && x.CgroupNetClsParent != nil {
return *x.CgroupNetClsParent
}
return Default_NsJailConfig_CgroupNetClsParent
}
func (x *NsJailConfig) GetCgroupCpuMsPerSec() uint32 {
if x != nil && x.CgroupCpuMsPerSec != nil {
return *x.CgroupCpuMsPerSec
}
return Default_NsJailConfig_CgroupCpuMsPerSec
}
func (x *NsJailConfig) GetCgroupCpuMount() string {
if x != nil && x.CgroupCpuMount != nil {
return *x.CgroupCpuMount
}
return Default_NsJailConfig_CgroupCpuMount
}
func (x *NsJailConfig) GetCgroupCpuParent() string {
if x != nil && x.CgroupCpuParent != nil {
return *x.CgroupCpuParent
}
return Default_NsJailConfig_CgroupCpuParent
}
func (x *NsJailConfig) GetIfaceNoLo() bool {
if x != nil && x.IfaceNoLo != nil {
return *x.IfaceNoLo
}
return Default_NsJailConfig_IfaceNoLo
}
func (x *NsJailConfig) GetIfaceOwn() []string {
if x != nil {
return x.IfaceOwn
}
return nil
}
func (x *NsJailConfig) GetMacvlanIface() string {
if x != nil && x.MacvlanIface != nil {
return *x.MacvlanIface
}
return ""
}
func (x *NsJailConfig) GetMacvlanVsIp() string {
if x != nil && x.MacvlanVsIp != nil {
return *x.MacvlanVsIp
}
return Default_NsJailConfig_MacvlanVsIp
}
func (x *NsJailConfig) GetMacvlanVsNm() string {
if x != nil && x.MacvlanVsNm != nil {
return *x.MacvlanVsNm
}
return Default_NsJailConfig_MacvlanVsNm
}
func (x *NsJailConfig) GetMacvlanVsGw() string {
if x != nil && x.MacvlanVsGw != nil {
return *x.MacvlanVsGw
}
return Default_NsJailConfig_MacvlanVsGw
}
func (x *NsJailConfig) GetMacvlanVsMa() string {
if x != nil && x.MacvlanVsMa != nil {
return *x.MacvlanVsMa
}
return Default_NsJailConfig_MacvlanVsMa
}
func (x *NsJailConfig) GetExecBin() *Exe {
if x != nil {
return x.ExecBin
}
return nil
}
var File_nsjail_config_proto protoreflect.FileDescriptor
var file_nsjail_config_proto_rawDesc = []byte{
0x0a, 0x13, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x22, 0x8a, 0x01,
0x0a, 0x05, 0x49, 0x64, 0x4d, 0x61, 0x70, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x69, 0x64,
0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x08, 0x69, 0x6e,
0x73, 0x69, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x73, 0x69, 0x64,
0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x09, 0x6f, 0x75,
0x74, 0x73, 0x69, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x31, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x28, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x69, 0x64, 0x6d, 0x61, 0x70,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x75,
0x73, 0x65, 0x4e, 0x65, 0x77, 0x69, 0x64, 0x6d, 0x61, 0x70, 0x22, 0xcd, 0x03, 0x0a, 0x07, 0x4d,
0x6f, 0x75, 0x6e, 0x74, 0x50, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72,
0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x3a, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x72, 0x63, 0x45,
0x6e, 0x76, 0x12, 0x21, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x00, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, 0x6f,
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x02,
0x28, 0x09, 0x3a, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x65,
0x66, 0x69, 0x78, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x3a, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x73, 0x74, 0x45, 0x6e,
0x76, 0x12, 0x18, 0x0a, 0x06, 0x66, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x3a, 0x00, 0x52, 0x06, 0x66, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x6f,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x07,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x62, 0x69,
0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,
0x06, 0x69, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x15, 0x0a, 0x02, 0x72, 0x77, 0x18, 0x09, 0x20,
0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x02, 0x72, 0x77, 0x12, 0x15,
0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x09, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f,
0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x09,
0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0a, 0x69, 0x73, 0x5f,
0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66,
0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12,
0x1d, 0x0a, 0x06, 0x6e, 0x6f, 0x73, 0x75, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x3a,
0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x6e, 0x6f, 0x73, 0x75, 0x69, 0x64, 0x12, 0x1b,
0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x76, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66,
0x61, 0x6c, 0x73, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x76, 0x12, 0x1d, 0x0a, 0x06, 0x6e,
0x6f, 0x65, 0x78, 0x65, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c,
0x73, 0x65, 0x52, 0x06, 0x6e, 0x6f, 0x65, 0x78, 0x65, 0x63, 0x22, 0x5f, 0x0a, 0x03, 0x45, 0x78,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52,
0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x03, 0x61, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x30, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x30, 0x12, 0x1e, 0x0a, 0x07, 0x65,
0x78, 0x65, 0x63, 0x5f, 0x66, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61,
0x6c, 0x73, 0x65, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x46, 0x64, 0x22, 0x90, 0x1b, 0x0a, 0x0c,
0x4e, 0x73, 0x4a, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65,
0x3a, 0x04, 0x4f, 0x4e, 0x43, 0x45, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0a,
0x63, 0x68, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x63, 0x68, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x12,
0x27, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x77, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08,
0x69, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x77, 0x12, 0x22, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x06, 0x4e, 0x53, 0x4a, 0x41,
0x49, 0x4c, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x03,
0x63, 0x77, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x01, 0x2f, 0x52, 0x03, 0x63, 0x77,
0x64, 0x12, 0x15, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x3a,
0x01, 0x30, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x69, 0x6e, 0x64,
0x68, 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x02, 0x3a, 0x3a, 0x52, 0x08,
0x62, 0x69, 0x6e, 0x64, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f,
0x63, 0x6f, 0x6e, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x50,
0x65, 0x72, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d,
0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x03, 0x36, 0x30, 0x30, 0x52, 0x09, 0x74,
0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x06, 0x64, 0x61, 0x65, 0x6d,
0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,
0x06, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63,
0x70, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x6d, 0x61,
0x78, 0x43, 0x70, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x64, 0x18,
0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x46, 0x64, 0x12, 0x19, 0x0a, 0x08,
0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c,
0x65, 0x76, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6e, 0x73, 0x6a,
0x61, 0x69, 0x6c, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f,
0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x08, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x65,
0x6e, 0x76, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,
0x07, 0x6b, 0x65, 0x65, 0x70, 0x45, 0x6e, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x61,
0x72, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x61, 0x72, 0x12, 0x22,
0x0a, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28,
0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x65, 0x70, 0x43, 0x61,
0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x70, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52,
0x03, 0x63, 0x61, 0x70, 0x12, 0x1d, 0x0a, 0x06, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x17,
0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x73, 0x69, 0x6c,
0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x73,
0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,
0x0a, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x65, 0x74, 0x73, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x0e, 0x73,
0x74, 0x64, 0x65, 0x72, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x19, 0x20,
0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0c, 0x73, 0x74, 0x64, 0x65,
0x72, 0x72, 0x54, 0x6f, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73,
0x5f, 0x66, 0x64, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x46,
0x64, 0x12, 0x36, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x5f,
0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a,
0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e,
0x6f, 0x4e, 0x65, 0x77, 0x50, 0x72, 0x69, 0x76, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x6c, 0x69,
0x6d, 0x69, 0x74, 0x5f, 0x61, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x03, 0x35, 0x31,
0x32, 0x52, 0x08, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x41, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x72,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69,
0x6d, 0x69, 0x74, 0x3a, 0x05, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x52, 0x0c, 0x72, 0x6c, 0x69, 0x6d,
0x69, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0b, 0x72, 0x6c, 0x69, 0x6d,
0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x30,
0x52, 0x0a, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x10,
0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e,
0x52, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x05, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x52, 0x0e, 0x72,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a,
0x0a, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x20, 0x20, 0x01, 0x28,
0x04, 0x3a, 0x03, 0x36, 0x30, 0x30, 0x52, 0x09, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x70,
0x75, 0x12, 0x3d, 0x0a, 0x0f, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73, 0x6a,
0x61, 0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x05, 0x56, 0x41, 0x4c, 0x55,
0x45, 0x52, 0x0d, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x70, 0x75, 0x54, 0x79, 0x70, 0x65,
0x12, 0x24, 0x0a, 0x0c, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x73, 0x69, 0x7a, 0x65,
0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x31, 0x52, 0x0b, 0x72, 0x6c, 0x69, 0x6d, 0x69,
0x74, 0x46, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74,
0x5f, 0x66, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x3a, 0x05, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x52, 0x0f, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74,
0x46, 0x73, 0x69, 0x7a, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x6c, 0x69,
0x6d, 0x69, 0x74, 0x5f, 0x6e, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04,
0x3a, 0x02, 0x33, 0x32, 0x52, 0x0c, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x6f, 0x66, 0x69,
0x6c, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6e, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e,
0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x05,
0x56, 0x41, 0x4c, 0x55, 0x45, 0x52, 0x10, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x6c, 0x69, 0x6d, 0x69,
0x74, 0x5f, 0x6e, 0x70, 0x72, 0x6f, 0x63, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x04, 0x31,
0x30, 0x32, 0x34, 0x52, 0x0b, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x70, 0x72, 0x6f, 0x63,
0x12, 0x40, 0x0a, 0x11, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6e, 0x70, 0x72, 0x6f, 0x63,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73,
0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x04, 0x53, 0x4f, 0x46,
0x54, 0x52, 0x0f, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x70, 0x72, 0x6f, 0x63, 0x54, 0x79,
0x70, 0x65, 0x12, 0x2a, 0x0a, 0x0c, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61,
0x63, 0x6b, 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x07, 0x31, 0x30, 0x34, 0x38, 0x35, 0x37,
0x36, 0x52, 0x0b, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x40,
0x0a, 0x11, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x6e, 0x73, 0x6a, 0x61,
0x69, 0x6c, 0x2e, 0x52, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x3a, 0x04, 0x53, 0x4f, 0x46, 0x54, 0x52,
0x0f, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65,
0x12, 0x42, 0x0a, 0x1a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72,
0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x2a,
0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x17, 0x70, 0x65, 0x72,
0x73, 0x6f, 0x6e, 0x61, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x4c, 0x61,
0x79, 0x6f, 0x75, 0x74, 0x12, 0x3a, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f,
0x6d, 0x6d, 0x61, 0x70, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x18, 0x2b,
0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x70, 0x65, 0x72,
0x73, 0x6f, 0x6e, 0x61, 0x4d, 0x6d, 0x61, 0x70, 0x50, 0x61, 0x67, 0x65, 0x5a, 0x65, 0x72, 0x6f,
0x12, 0x40, 0x0a, 0x19, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x72, 0x65, 0x61, 0x64,
0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x18, 0x2c, 0x20,
0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73,
0x6f, 0x6e, 0x61, 0x52, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x78,
0x65, 0x63, 0x12, 0x3a, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x61, 0x64,
0x64, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x33, 0x67, 0x62, 0x18, 0x2d, 0x20, 0x01,
0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x70, 0x65, 0x72, 0x73, 0x6f,
0x6e, 0x61, 0x41, 0x64, 0x64, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x33, 0x67, 0x62, 0x12, 0x40,
0x0a, 0x19, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x6e,
0x6f, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28,
0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
0x61, 0x41, 0x64, 0x64, 0x72, 0x4e, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65,
0x12, 0x27, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x6e, 0x65, 0x74,
0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c,
0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x6e, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x6f,
0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x75, 0x73, 0x65, 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08,
0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x77,
0x75, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x65,
0x77, 0x6e, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52,
0x0a, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0c, 0x63,
0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x70, 0x69, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28,
0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4e, 0x65,
0x77, 0x70, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x65,
0x77, 0x69, 0x70, 0x63, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65,
0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x69, 0x70, 0x63, 0x12, 0x27, 0x0a,
0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x75, 0x74, 0x73, 0x18, 0x34, 0x20,
0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x6e, 0x65,
0x4e, 0x65, 0x77, 0x75, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0f, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f,
0x6e, 0x65, 0x77, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x3a,
0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x75, 0x69, 0x64, 0x6d, 0x61, 0x70, 0x18,
0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x49,
0x64, 0x4d, 0x61, 0x70, 0x52, 0x06, 0x75, 0x69, 0x64, 0x6d, 0x61, 0x70, 0x12, 0x25, 0x0a, 0x06,
0x67, 0x69, 0x64, 0x6d, 0x61, 0x70, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e,
0x73, 0x6a, 0x61, 0x69, 0x6c, 0x2e, 0x49, 0x64, 0x4d, 0x61, 0x70, 0x52, 0x06, 0x67, 0x69, 0x64,
0x6d, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f,
0x63, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x12, 0x25, 0x0a, 0x05, 0x6d, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69,
0x6c, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x74, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73,
0x65, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x46, 0x69, 0x6c, 0x65,
0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x63, 0x6f, 0x6d,
0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x63, 0x6f,
0x6d, 0x70, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61,
0x6c, 0x73, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x4c, 0x6f, 0x67, 0x12,
0x27, 0x0a, 0x0e, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61,
0x78, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x30, 0x52, 0x0c, 0x63, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x4d, 0x61, 0x78, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x3e, 0x20, 0x01,
0x28, 0x09, 0x3a, 0x15, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x66, 0x73, 0x2f, 0x63, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x63, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x11, 0x63, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x3f,
0x20, 0x01, 0x28, 0x09, 0x3a, 0x06, 0x4e, 0x53, 0x4a, 0x41, 0x49, 0x4c, 0x52, 0x0f, 0x63, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a,
0x0f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x69, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78,
0x18, 0x40, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x01, 0x30, 0x52, 0x0d, 0x63, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x50, 0x69, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x3f, 0x0a, 0x11, 0x63, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x5f, 0x70, 0x69, 0x64, 0x73, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x41, 0x20,
0x01, 0x28, 0x09, 0x3a, 0x13, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x66, 0x73, 0x2f, 0x63, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2f, 0x70, 0x69, 0x64, 0x73, 0x52, 0x0f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x50, 0x69, 0x64, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x12, 0x63, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x5f, 0x70, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
0x42, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x06, 0x4e, 0x53, 0x4a, 0x41, 0x49, 0x4c, 0x52, 0x10, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x69, 0x64, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
0x36, 0x0a, 0x16, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6c,
0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x64, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0d, 0x3a,
0x01, 0x30, 0x52, 0x13, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x65, 0x74, 0x43, 0x6c, 0x73,
0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x14, 0x63, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x73, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x44, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x16, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x66, 0x73, 0x2f, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x73, 0x52, 0x11, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x65, 0x74, 0x43, 0x6c, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x39, 0x0a, 0x15, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63,
0x6c, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x45, 0x20, 0x01, 0x28, 0x09, 0x3a,
0x06, 0x4e, 0x53, 0x4a, 0x41, 0x49, 0x4c, 0x52, 0x12, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e,
0x65, 0x74, 0x43, 0x6c, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x15, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72,
0x5f, 0x73, 0x65, 0x63, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x11, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x70, 0x75, 0x4d, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63,
0x12, 0x3c, 0x0a, 0x10, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x6d,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x47, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x12, 0x2f, 0x73, 0x79, 0x73,
0x2f, 0x66, 0x73, 0x2f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x63, 0x70, 0x75, 0x52, 0x0e,
0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x70, 0x75, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32,
0x0a, 0x11, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x18, 0x48, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x06, 0x4e, 0x53, 0x4a, 0x41, 0x49,
0x4c, 0x52, 0x0f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x70, 0x75, 0x50, 0x61, 0x72, 0x65,
0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x69, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x5f, 0x6c,
0x6f, 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09,
0x69, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x4c, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x66, 0x61,
0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x18, 0x4a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x69, 0x66,
0x61, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61,
0x6e, 0x5f, 0x69, 0x66, 0x61, 0x63, 0x65, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d,
0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x0d, 0x6d,
0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x76, 0x73, 0x5f, 0x69, 0x70, 0x18, 0x4c, 0x20, 0x01,
0x28, 0x09, 0x3a, 0x0b, 0x31, 0x39, 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x32, 0x52,
0x0b, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x56, 0x73, 0x49, 0x70, 0x12, 0x31, 0x0a, 0x0d,
0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x76, 0x73, 0x5f, 0x6e, 0x6d, 0x18, 0x4d, 0x20,
0x01, 0x28, 0x09, 0x3a, 0x0d, 0x32, 0x35, 0x35, 0x2e, 0x32, 0x35, 0x35, 0x2e, 0x32, 0x35, 0x35,
0x2e, 0x30, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x56, 0x73, 0x4e, 0x6d, 0x12,
0x2f, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x76, 0x73, 0x5f, 0x67, 0x77,
0x18, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x0b, 0x31, 0x39, 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e,
0x30, 0x2e, 0x31, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x56, 0x73, 0x47, 0x77,
0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x76, 0x73, 0x5f, 0x6d,
0x61, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x76, 0x6c,
0x61, 0x6e, 0x56, 0x73, 0x4d, 0x61, 0x12, 0x26, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x62,
0x69, 0x6e, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6e, 0x73, 0x6a, 0x61, 0x69,
0x6c, 0x2e, 0x45, 0x78, 0x65, 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x42, 0x69, 0x6e, 0x2a, 0x33,
0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x49, 0x53, 0x54, 0x45, 0x4e,
0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05,
0x52, 0x45, 0x52, 0x55, 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x45, 0x43, 0x56,
0x45, 0x10, 0x03, 0x2a, 0x42, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e,
0x46, 0x4f, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10,
0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05,
0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x04, 0x2a, 0x30, 0x0a, 0x06, 0x52, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04,
0x53, 0x4f, 0x46, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x52, 0x44, 0x10, 0x02,
0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x46, 0x10, 0x03, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x6f, 0x2e,
0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x6d,
0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e,
0x73, 0x6a, 0x61, 0x69, 0x6c,
}
var (
file_nsjail_config_proto_rawDescOnce sync.Once
file_nsjail_config_proto_rawDescData = file_nsjail_config_proto_rawDesc
)
func file_nsjail_config_proto_rawDescGZIP() []byte {
file_nsjail_config_proto_rawDescOnce.Do(func() {
file_nsjail_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_nsjail_config_proto_rawDescData)
})
return file_nsjail_config_proto_rawDescData
}
var file_nsjail_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_nsjail_config_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_nsjail_config_proto_goTypes = []interface{}{
(Mode)(0), // 0: nsjail.Mode
(LogLevel)(0), // 1: nsjail.LogLevel
(RLimit)(0), // 2: nsjail.RLimit
(*IdMap)(nil), // 3: nsjail.IdMap
(*MountPt)(nil), // 4: nsjail.MountPt
(*Exe)(nil), // 5: nsjail.Exe
(*NsJailConfig)(nil), // 6: nsjail.NsJailConfig
}
var file_nsjail_config_proto_depIdxs = []int32{
0, // 0: nsjail.NsJailConfig.mode:type_name -> nsjail.Mode
1, // 1: nsjail.NsJailConfig.log_level:type_name -> nsjail.LogLevel
2, // 2: nsjail.NsJailConfig.rlimit_as_type:type_name -> nsjail.RLimit
2, // 3: nsjail.NsJailConfig.rlimit_core_type:type_name -> nsjail.RLimit
2, // 4: nsjail.NsJailConfig.rlimit_cpu_type:type_name -> nsjail.RLimit
2, // 5: nsjail.NsJailConfig.rlimit_fsize_type:type_name -> nsjail.RLimit
2, // 6: nsjail.NsJailConfig.rlimit_nofile_type:type_name -> nsjail.RLimit
2, // 7: nsjail.NsJailConfig.rlimit_nproc_type:type_name -> nsjail.RLimit
2, // 8: nsjail.NsJailConfig.rlimit_stack_type:type_name -> nsjail.RLimit
3, // 9: nsjail.NsJailConfig.uidmap:type_name -> nsjail.IdMap
3, // 10: nsjail.NsJailConfig.gidmap:type_name -> nsjail.IdMap
4, // 11: nsjail.NsJailConfig.mount:type_name -> nsjail.MountPt
5, // 12: nsjail.NsJailConfig.exec_bin:type_name -> nsjail.Exe
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_nsjail_config_proto_init() }
func file_nsjail_config_proto_init() {
if File_nsjail_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_nsjail_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IdMap); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_nsjail_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MountPt); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_nsjail_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Exe); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_nsjail_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NsJailConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_nsjail_config_proto_rawDesc,
NumEnums: 3,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_nsjail_config_proto_goTypes,
DependencyIndexes: file_nsjail_config_proto_depIdxs,
EnumInfos: file_nsjail_config_proto_enumTypes,
MessageInfos: file_nsjail_config_proto_msgTypes,
}.Build()
File_nsjail_config_proto = out.File
file_nsjail_config_proto_rawDesc = nil
file_nsjail_config_proto_goTypes = nil
file_nsjail_config_proto_depIdxs = nil
}