blob: b5d6522630211462da47a08aea11efda4cff56ff [file] [log] [blame]
// Copyright 2018 The Goma Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc v3.17.3
// source: command/command.proto
package command
import (
api "go.chromium.org/goma/server/proto/api"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
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 CmdDescriptor_PathType int32
const (
CmdDescriptor_UNKNOWN_PATH_TYPE CmdDescriptor_PathType = 0
CmdDescriptor_POSIX CmdDescriptor_PathType = 1 // unix-style, slash separated.
CmdDescriptor_WINDOWS CmdDescriptor_PathType = 2 // windows-style. backslash separated.
)
// Enum value maps for CmdDescriptor_PathType.
var (
CmdDescriptor_PathType_name = map[int32]string{
0: "UNKNOWN_PATH_TYPE",
1: "POSIX",
2: "WINDOWS",
}
CmdDescriptor_PathType_value = map[string]int32{
"UNKNOWN_PATH_TYPE": 0,
"POSIX": 1,
"WINDOWS": 2,
}
)
func (x CmdDescriptor_PathType) Enum() *CmdDescriptor_PathType {
p := new(CmdDescriptor_PathType)
*p = x
return p
}
func (x CmdDescriptor_PathType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CmdDescriptor_PathType) Descriptor() protoreflect.EnumDescriptor {
return file_command_command_proto_enumTypes[0].Descriptor()
}
func (CmdDescriptor_PathType) Type() protoreflect.EnumType {
return &file_command_command_proto_enumTypes[0]
}
func (x CmdDescriptor_PathType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CmdDescriptor_PathType.Descriptor instead.
func (CmdDescriptor_PathType) EnumDescriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{4, 0}
}
// Selector is a command selector.
// it is used to select a compiler or a subprogram/plugin to run on
// cmd_server by matching it with CommandSpec or SubprogramSpec in a request
// from goma client.
// a subprogram/plugin use name and binary_hash for matching.
// basename of path in SubprogramSpec should match with name in Selector.
// TODO: consider also using target.
type Selector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// command name.
// name is command base name without version number and architecture.
// i.e. it should be equivalent CompilerFlags::GetCompilerName.
// e.g. "gcc", "g++", "clang", "libFindBadConstructs.so",
// "libFindBadConstructs.dylib".
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// version. e.g. "4.4.3[Ubuntu 4.4.3-4ubuntu5]"
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
// compiler's target machine. e.g. gcc -dumpmachine.
Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
// binary hash of the command (sha256, hexencoded)
BinaryHash string `protobuf:"bytes,4,opt,name=binary_hash,json=binaryHash,proto3" json:"binary_hash,omitempty"`
}
func (x *Selector) Reset() {
*x = Selector{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Selector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Selector) ProtoMessage() {}
func (x *Selector) ProtoReflect() protoreflect.Message {
mi := &file_command_command_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 Selector.ProtoReflect.Descriptor instead.
func (*Selector) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{0}
}
func (x *Selector) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Selector) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *Selector) GetTarget() string {
if x != nil {
return x.Target
}
return ""
}
func (x *Selector) GetBinaryHash() string {
if x != nil {
return x.BinaryHash
}
return ""
}
// FileSpec is a file metadata. content is identified by hash.
// NEXT_ID_TO_USE: 9
type FileSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// path in client file system.
// may be relative.
// for cmd descriptor, it is relative to command binary directory.
// (e.g. /usr/bin for /usr/bin/gcc).
// for CmdReq, it is relative to working directory specified in cmd.Dir.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` // hash is empty, if file is symlink, or dir.
IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
Symlink string `protobuf:"bytes,5,opt,name=symlink,proto3" json:"symlink,omitempty"` // hash is empty.
// used for goma api.
HashKey string `protobuf:"bytes,6,opt,name=hash_key,json=hashKey,proto3" json:"hash_key,omitempty"`
Blob *api.FileBlob `protobuf:"bytes,7,opt,name=blob,proto3" json:"blob,omitempty"`
}
func (x *FileSpec) Reset() {
*x = FileSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FileSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileSpec) ProtoMessage() {}
func (x *FileSpec) ProtoReflect() protoreflect.Message {
mi := &file_command_command_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 FileSpec.ProtoReflect.Descriptor instead.
func (*FileSpec) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{1}
}
func (x *FileSpec) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *FileSpec) GetSize() int64 {
if x != nil {
return x.Size
}
return 0
}
func (x *FileSpec) GetHash() string {
if x != nil {
return x.Hash
}
return ""
}
func (x *FileSpec) GetIsExecutable() bool {
if x != nil {
return x.IsExecutable
}
return false
}
func (x *FileSpec) GetSymlink() string {
if x != nil {
return x.Symlink
}
return ""
}
func (x *FileSpec) GetHashKey() string {
if x != nil {
return x.HashKey
}
return ""
}
func (x *FileSpec) GetBlob() *api.FileBlob {
if x != nil {
return x.Blob
}
return nil
}
// Target is a target address.
type Target struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` // TBD: dial option?
}
func (x *Target) Reset() {
*x = Target{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Target) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Target) ProtoMessage() {}
func (x *Target) ProtoReflect() protoreflect.Message {
mi := &file_command_command_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 Target.ProtoReflect.Descriptor instead.
func (*Target) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{2}
}
func (x *Target) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
// BuildInfo is image build info.
type BuildInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// who build this toolchain.
Creator string `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"`
// hostname where the toolchain was built.
Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"`
// current working directory of toolchain build.
Directory string `protobuf:"bytes,4,opt,name=directory,proto3" json:"directory,omitempty"`
// when this toolchain was built.
Timestamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// full image name of cmd_server container.
CmdServer string `protobuf:"bytes,7,opt,name=cmd_server,json=cmdServer,proto3" json:"cmd_server,omitempty"`
// full qualified toolchain name (separated by space)
Toolchain string `protobuf:"bytes,8,opt,name=toolchain,proto3" json:"toolchain,omitempty"`
}
func (x *BuildInfo) Reset() {
*x = BuildInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfo) ProtoMessage() {}
func (x *BuildInfo) ProtoReflect() protoreflect.Message {
mi := &file_command_command_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 BuildInfo.ProtoReflect.Descriptor instead.
func (*BuildInfo) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{3}
}
func (x *BuildInfo) GetCreator() string {
if x != nil {
return x.Creator
}
return ""
}
func (x *BuildInfo) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *BuildInfo) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *BuildInfo) GetTimestamp() *timestamppb.Timestamp {
if x != nil {
return x.Timestamp
}
return nil
}
func (x *BuildInfo) GetCmdServer() string {
if x != nil {
return x.CmdServer
}
return ""
}
func (x *BuildInfo) GetToolchain() string {
if x != nil {
return x.Toolchain
}
return ""
}
// CmdDescriptor is a command descriptor.
// NEXT ID TO USE: 7
type CmdDescriptor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Selector *Selector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
Setup *CmdDescriptor_Setup `protobuf:"bytes,2,opt,name=setup,proto3" json:"setup,omitempty"`
Cross *CmdDescriptor_Cross `protobuf:"bytes,3,opt,name=cross,proto3" json:"cross,omitempty"`
EmulationOpts *CmdDescriptor_EmulationOpts `protobuf:"bytes,6,opt,name=emulation_opts,json=emulationOpts,proto3" json:"emulation_opts,omitempty"`
}
func (x *CmdDescriptor) Reset() {
*x = CmdDescriptor{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CmdDescriptor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CmdDescriptor) ProtoMessage() {}
func (x *CmdDescriptor) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[4]
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 CmdDescriptor.ProtoReflect.Descriptor instead.
func (*CmdDescriptor) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{4}
}
func (x *CmdDescriptor) GetSelector() *Selector {
if x != nil {
return x.Selector
}
return nil
}
func (x *CmdDescriptor) GetSetup() *CmdDescriptor_Setup {
if x != nil {
return x.Setup
}
return nil
}
func (x *CmdDescriptor) GetCross() *CmdDescriptor_Cross {
if x != nil {
return x.Cross
}
return nil
}
func (x *CmdDescriptor) GetEmulationOpts() *CmdDescriptor_EmulationOpts {
if x != nil {
return x.EmulationOpts
}
return nil
}
// RemoteexecPlatform is a set of requirements, such as hardware,
// operating system, for an remoteexec API.
type RemoteexecPlatform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Properties []*RemoteexecPlatform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
// Basename of RBE instance to use. e.g. "default_instance" or "windows".
RbeInstanceBasename string `protobuf:"bytes,2,opt,name=rbe_instance_basename,json=rbeInstanceBasename,proto3" json:"rbe_instance_basename,omitempty"`
// Set true if nsjail is available in the platform image.
// TODO: deprecated. always requires najail on linux platform.
HasNsjail bool `protobuf:"varint,3,opt,name=has_nsjail,json=hasNsjail,proto3" json:"has_nsjail,omitempty"`
}
func (x *RemoteexecPlatform) Reset() {
*x = RemoteexecPlatform{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteexecPlatform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteexecPlatform) ProtoMessage() {}
func (x *RemoteexecPlatform) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[5]
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 RemoteexecPlatform.ProtoReflect.Descriptor instead.
func (*RemoteexecPlatform) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{5}
}
func (x *RemoteexecPlatform) GetProperties() []*RemoteexecPlatform_Property {
if x != nil {
return x.Properties
}
return nil
}
func (x *RemoteexecPlatform) GetRbeInstanceBasename() string {
if x != nil {
return x.RbeInstanceBasename
}
return ""
}
func (x *RemoteexecPlatform) GetHasNsjail() bool {
if x != nil {
return x.HasNsjail
}
return false
}
// Config is a command config; mapping from selector.
type Config struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Target *Target `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
BuildInfo *BuildInfo `protobuf:"bytes,3,opt,name=build_info,json=buildInfo,proto3" json:"build_info,omitempty"`
CmdDescriptor *CmdDescriptor `protobuf:"bytes,4,opt,name=cmd_descriptor,json=cmdDescriptor,proto3" json:"cmd_descriptor,omitempty"`
RemoteexecPlatform *RemoteexecPlatform `protobuf:"bytes,5,opt,name=remoteexec_platform,json=remoteexecPlatform,proto3" json:"remoteexec_platform,omitempty"`
// If this config is configured for arbitrary toolchain support,
// set dimensions of the config. Otherwise, this should be nil.
Dimensions []string `protobuf:"bytes,6,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
Acl *ACL `protobuf:"bytes,7,opt,name=acl,proto3" json:"acl,omitempty"`
}
func (x *Config) Reset() {
*x = Config{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config) ProtoMessage() {}
func (x *Config) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[6]
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 Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{6}
}
func (x *Config) GetTarget() *Target {
if x != nil {
return x.Target
}
return nil
}
func (x *Config) GetBuildInfo() *BuildInfo {
if x != nil {
return x.BuildInfo
}
return nil
}
func (x *Config) GetCmdDescriptor() *CmdDescriptor {
if x != nil {
return x.CmdDescriptor
}
return nil
}
func (x *Config) GetRemoteexecPlatform() *RemoteexecPlatform {
if x != nil {
return x.RemoteexecPlatform
}
return nil
}
func (x *Config) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *Config) GetAcl() *ACL {
if x != nil {
return x.Acl
}
return nil
}
// ACL is access control list for requester.
type ACL struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Groups that is allowed to use.
// If allowed_groups specified, only groups in allowed_groups are
// allowed, and other groups are disallowed.
// If no allowed_groups specified, any groups are allowed
// if it is not disallowed by disallowed_groups.
AllowedGroups []string `protobuf:"bytes,1,rep,name=allowed_groups,json=allowedGroups,proto3" json:"allowed_groups,omitempty"`
// Groups that is not allowed to use.
// If no disallowed_groups specified, only allowed_groups is allowed to use.
// If both are not specified, any groups are alllowed.
DisallowedGroups []string `protobuf:"bytes,2,rep,name=disallowed_groups,json=disallowedGroups,proto3" json:"disallowed_groups,omitempty"`
}
func (x *ACL) Reset() {
*x = ACL{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ACL) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ACL) ProtoMessage() {}
func (x *ACL) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[7]
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 ACL.ProtoReflect.Descriptor instead.
func (*ACL) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{7}
}
func (x *ACL) GetAllowedGroups() []string {
if x != nil {
return x.AllowedGroups
}
return nil
}
func (x *ACL) GetDisallowedGroups() []string {
if x != nil {
return x.DisallowedGroups
}
return nil
}
// Platform is a set of requirements, such as haredware, operting system
// for RBE backend.
// matched with build.bazel.remote.execution.v2.Platform.
type Platform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Properties []*Platform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
}
func (x *Platform) Reset() {
*x = Platform{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform) ProtoMessage() {}
func (x *Platform) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[8]
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 Platform.ProtoReflect.Descriptor instead.
func (*Platform) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{8}
}
func (x *Platform) GetProperties() []*Platform_Property {
if x != nil {
return x.Properties
}
return nil
}
// RuntimeConfig is config for runtime.
// NEXT ID TO USE: 10
type RuntimeConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name of runtime.
//
// if this runtime config found in a bucket,
// the following files will be detected in this name directory in the bucket:
// seq
// <prebuilt-item>/descriptors/<descriptorHash>
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// service address for the runtime. i.e. RBE address.
ServiceAddr string `protobuf:"bytes,2,opt,name=service_addr,json=serviceAddr,proto3" json:"service_addr,omitempty"`
// If not nil, this runtime config will be also configured
// for arbitrary toolchain support.
// This is selector to use this runtime. i.e. if client request contains
// the dimentions, this runtime config will be selected.
PlatformRuntimeConfig *PlatformRuntimeConfig `protobuf:"bytes,6,opt,name=platform_runtime_config,json=platformRuntimeConfig,proto3" json:"platform_runtime_config,omitempty"`
// Platform is a set of requirements, such as hardware, operating system
// for RBE backend.
Platform *Platform `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform,omitempty"`
// prebuilts prefix to allow.
// if allowed_prebuilts specified, only prebuilts that are matched
// by allowed_prebuilts is allowed. other prebuilts are disallowed.
// if no allowed_prebuilts specified, any prebuilts are allowed
// if it is not disallowed by disallowed_prebuilts.
AllowedPrebuilts []string `protobuf:"bytes,3,rep,name=allowed_prebuilts,json=allowedPrebuilts,proto3" json:"allowed_prebuilts,omitempty"`
// prebuilts prefix to disallow.
// if no disallowed_prebuilts specified, only allowed_prebuilts is used.
// if both are not specified, all prebuilts are allowed.
DisallowedPrebuilts []string `protobuf:"bytes,4,rep,name=disallowed_prebuilts,json=disallowedPrebuilts,proto3" json:"disallowed_prebuilts,omitempty"`
// commands that is disallowed in the runtime.
// selector field is used for exact match, if it is specified.
// selector field that is not specified in disallowed_commands will
// match any selector.
DisallowedCommands []*Selector `protobuf:"bytes,5,rep,name=disallowed_commands,json=disallowedCommands,proto3" json:"disallowed_commands,omitempty"`
Acl *ACL `protobuf:"bytes,9,opt,name=acl,proto3" json:"acl,omitempty"`
}
func (x *RuntimeConfig) Reset() {
*x = RuntimeConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RuntimeConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RuntimeConfig) ProtoMessage() {}
func (x *RuntimeConfig) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[9]
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 RuntimeConfig.ProtoReflect.Descriptor instead.
func (*RuntimeConfig) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{9}
}
func (x *RuntimeConfig) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *RuntimeConfig) GetServiceAddr() string {
if x != nil {
return x.ServiceAddr
}
return ""
}
func (x *RuntimeConfig) GetPlatformRuntimeConfig() *PlatformRuntimeConfig {
if x != nil {
return x.PlatformRuntimeConfig
}
return nil
}
func (x *RuntimeConfig) GetPlatform() *Platform {
if x != nil {
return x.Platform
}
return nil
}
func (x *RuntimeConfig) GetAllowedPrebuilts() []string {
if x != nil {
return x.AllowedPrebuilts
}
return nil
}
func (x *RuntimeConfig) GetDisallowedPrebuilts() []string {
if x != nil {
return x.DisallowedPrebuilts
}
return nil
}
func (x *RuntimeConfig) GetDisallowedCommands() []*Selector {
if x != nil {
return x.DisallowedCommands
}
return nil
}
func (x *RuntimeConfig) GetAcl() *ACL {
if x != nil {
return x.Acl
}
return nil
}
// PlatformRuntimeConfig is a config to use the runtime.
// NEXT ID TO USE: 3
type PlatformRuntimeConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Dimensions []string `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// Set true if nsjail is available in the platform image.
HasNsjail bool `protobuf:"varint,2,opt,name=has_nsjail,json=hasNsjail,proto3" json:"has_nsjail,omitempty"`
}
func (x *PlatformRuntimeConfig) Reset() {
*x = PlatformRuntimeConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlatformRuntimeConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlatformRuntimeConfig) ProtoMessage() {}
func (x *PlatformRuntimeConfig) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[10]
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 PlatformRuntimeConfig.ProtoReflect.Descriptor instead.
func (*PlatformRuntimeConfig) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{10}
}
func (x *PlatformRuntimeConfig) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *PlatformRuntimeConfig) GetHasNsjail() bool {
if x != nil {
return x.HasNsjail
}
return false
}
// ConfigMap is a config map; data source of Config.
// admin creates/updates the file in <bucket>/<config>.config
// and ConfigMapBucket will read the info.
type ConfigMap struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Runtimes []*RuntimeConfig `protobuf:"bytes,1,rep,name=runtimes,proto3" json:"runtimes,omitempty"`
}
func (x *ConfigMap) Reset() {
*x = ConfigMap{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConfigMap) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConfigMap) ProtoMessage() {}
func (x *ConfigMap) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[11]
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 ConfigMap.ProtoReflect.Descriptor instead.
func (*ConfigMap) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{11}
}
func (x *ConfigMap) GetRuntimes() []*RuntimeConfig {
if x != nil {
return x.Runtimes
}
return nil
}
// TODO: remove ConfigResp.
type ConfigResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
VersionId string `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
Configs []*Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
}
func (x *ConfigResp) Reset() {
*x = ConfigResp{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConfigResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConfigResp) ProtoMessage() {}
func (x *ConfigResp) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[12]
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 ConfigResp.ProtoReflect.Descriptor instead.
func (*ConfigResp) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{12}
}
func (x *ConfigResp) GetVersionId() string {
if x != nil {
return x.VersionId
}
return ""
}
func (x *ConfigResp) GetConfigs() []*Config {
if x != nil {
return x.Configs
}
return nil
}
// command binaries to run.
// it includes driver program (e.g. gcc), and subprograms
// (e.g. cc1, cc1plus, as, objcopy etc).
// note: shared objects in standard dirs (/lib, /usr/lib, etc)
// will be included in image, so no need to install in each run.
// shared objects specified by RPATH (i.e. $ORIGIN/../lib, e.g.
// libstdc++.so.6 in chromium-clang) should be specified in files below.
//
// path is represented in path type.
type CmdDescriptor_Setup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If cmd_file.Path is abs path, then this command binary is installed
// in image at the path, and no need to setup. when run command, use
// this path instead of local_compiler_path. files would be empty.
//
// If cmd_file.Path is relative path from cmd_dir, then this command
// binary is installed at local_compiler_path as cmd run setup. files
// would be also installed.
CmdFile *FileSpec `protobuf:"bytes,1,opt,name=cmd_file,json=cmdFile,proto3" json:"cmd_file,omitempty"`
CmdDir string `protobuf:"bytes,2,opt,name=cmd_dir,json=cmdDir,proto3" json:"cmd_dir,omitempty"`
Files []*FileSpec `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"` // relative to cmd path or absolute.
PathType CmdDescriptor_PathType `protobuf:"varint,4,opt,name=path_type,json=pathType,proto3,enum=command.CmdDescriptor_PathType" json:"path_type,omitempty"`
}
func (x *CmdDescriptor_Setup) Reset() {
*x = CmdDescriptor_Setup{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CmdDescriptor_Setup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CmdDescriptor_Setup) ProtoMessage() {}
func (x *CmdDescriptor_Setup) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[13]
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 CmdDescriptor_Setup.ProtoReflect.Descriptor instead.
func (*CmdDescriptor_Setup) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{4, 0}
}
func (x *CmdDescriptor_Setup) GetCmdFile() *FileSpec {
if x != nil {
return x.CmdFile
}
return nil
}
func (x *CmdDescriptor_Setup) GetCmdDir() string {
if x != nil {
return x.CmdDir
}
return ""
}
func (x *CmdDescriptor_Setup) GetFiles() []*FileSpec {
if x != nil {
return x.Files
}
return nil
}
func (x *CmdDescriptor_Setup) GetPathType() CmdDescriptor_PathType {
if x != nil {
return x.PathType
}
return CmdDescriptor_UNKNOWN_PATH_TYPE
}
// cross options (when user's platform and cmd_server's platform differs)
type CmdDescriptor_Cross struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If clang_need_target is true, exec_service adds -target <arch>
// in args if args does not have -target option.
// note: it is clang/clang++ specific.
ClangNeedTarget bool `protobuf:"varint,1,opt,name=clang_need_target,json=clangNeedTarget,proto3" json:"clang_need_target,omitempty"`
// If windows_cross is true, it accepts compile request from windows,
// but run it on linux workers.
WindowsCross bool `protobuf:"varint,2,opt,name=windows_cross,json=windowsCross,proto3" json:"windows_cross,omitempty"`
}
func (x *CmdDescriptor_Cross) Reset() {
*x = CmdDescriptor_Cross{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CmdDescriptor_Cross) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CmdDescriptor_Cross) ProtoMessage() {}
func (x *CmdDescriptor_Cross) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[14]
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 CmdDescriptor_Cross.ProtoReflect.Descriptor instead.
func (*CmdDescriptor_Cross) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{4, 1}
}
func (x *CmdDescriptor_Cross) GetClangNeedTarget() bool {
if x != nil {
return x.ClangNeedTarget
}
return false
}
func (x *CmdDescriptor_Cross) GetWindowsCross() bool {
if x != nil {
return x.WindowsCross
}
return false
}
// EmulationOpts is used when goma backend cannot fully emulate client environment.
type CmdDescriptor_EmulationOpts struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// respect_client_include_paths is true if we need to append
// include directories sent from goma client to command line.
// For example, when we choose a binary is not relocatable, we need to
// specify -isystem, -imsvc (or equivalent)
RespectClientIncludePaths bool `protobuf:"varint,1,opt,name=respect_client_include_paths,json=respectClientIncludePaths,proto3" json:"respect_client_include_paths,omitempty"`
}
func (x *CmdDescriptor_EmulationOpts) Reset() {
*x = CmdDescriptor_EmulationOpts{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CmdDescriptor_EmulationOpts) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CmdDescriptor_EmulationOpts) ProtoMessage() {}
func (x *CmdDescriptor_EmulationOpts) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[15]
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 CmdDescriptor_EmulationOpts.ProtoReflect.Descriptor instead.
func (*CmdDescriptor_EmulationOpts) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{4, 2}
}
func (x *CmdDescriptor_EmulationOpts) GetRespectClientIncludePaths() bool {
if x != nil {
return x.RespectClientIncludePaths
}
return false
}
type RemoteexecPlatform_Property struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The property name.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The property value.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *RemoteexecPlatform_Property) Reset() {
*x = RemoteexecPlatform_Property{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteexecPlatform_Property) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteexecPlatform_Property) ProtoMessage() {}
func (x *RemoteexecPlatform_Property) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[16]
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 RemoteexecPlatform_Property.ProtoReflect.Descriptor instead.
func (*RemoteexecPlatform_Property) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{5, 0}
}
func (x *RemoteexecPlatform_Property) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *RemoteexecPlatform_Property) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
type Platform_Property struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *Platform_Property) Reset() {
*x = Platform_Property{}
if protoimpl.UnsafeEnabled {
mi := &file_command_command_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform_Property) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform_Property) ProtoMessage() {}
func (x *Platform_Property) ProtoReflect() protoreflect.Message {
mi := &file_command_command_proto_msgTypes[17]
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 Platform_Property.ProtoReflect.Descriptor instead.
func (*Platform_Property) Descriptor() ([]byte, []int) {
return file_command_command_proto_rawDescGZIP(), []int{8, 0}
}
func (x *Platform_Property) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Platform_Property) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
var File_command_command_proto protoreflect.FileDescriptor
var file_command_command_proto_rawDesc = []byte{
0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x1a, 0x13, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x6d, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x71, 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x61, 0x73, 0x68, 0x22, 0xd3, 0x01, 0x0a, 0x08, 0x46, 0x69,
0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69,
0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12,
0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61,
0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x45, 0x78, 0x65,
0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x6c, 0x69,
0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e,
0x6b, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x04,
0x62, 0x6c, 0x6f, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x65, 0x76,
0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x42,
0x6c, 0x6f, 0x62, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22,
0x1c, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x22, 0xf5, 0x01,
0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63,
0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72,
0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6d, 0x64,
0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
0x6d, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c,
0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x6f,
0x6c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x06,
0x10, 0x07, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x09, 0x75, 0x70, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0xb5, 0x05, 0x0a, 0x0d, 0x43, 0x6d, 0x64, 0x44, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63,
0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e,
0x43, 0x6d, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65,
0x74, 0x75, 0x70, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x72,
0x6f, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6d, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
0x72, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x4b,
0x0a, 0x0e, 0x65, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x73,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x2e, 0x43, 0x6d, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x45,
0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x0d, 0x65, 0x6d,
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x73, 0x1a, 0xb5, 0x01, 0x0a, 0x05,
0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x2c, 0x0a, 0x08, 0x63, 0x6d, 0x64, 0x5f, 0x66, 0x69, 0x6c,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x46,
0x69, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x44, 0x69, 0x72, 0x12, 0x27, 0x0a, 0x05,
0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05,
0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x79,
0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x2e, 0x43, 0x6d, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,
0x2e, 0x50, 0x61, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x54,
0x79, 0x70, 0x65, 0x1a, 0x58, 0x0a, 0x05, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x11,
0x63, 0x6c, 0x61, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x4e, 0x65,
0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64,
0x6f, 0x77, 0x73, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x1a, 0x50, 0x0a,
0x0d, 0x45, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x3f,
0x0a, 0x1c, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x22,
0x39, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45,
0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x10, 0x01, 0x12, 0x0b, 0x0a,
0x07, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05,
0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x52, 0x08, 0x63, 0x6d, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x73,
0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x22, 0xe3, 0x01,
0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x50, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x50, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a,
0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x62,
0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x62, 0x65, 0x49, 0x6e,
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x61, 0x73, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d,
0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01,
0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x1a, 0x34, 0x0a,
0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27,
0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6d,
0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6d, 0x64,
0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x63, 0x6d, 0x64, 0x44,
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x65, 0x6d,
0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x78, 0x65, 0x63, 0x50,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x6d,
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41,
0x43, 0x4c, 0x52, 0x03, 0x61, 0x63, 0x6c, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x05, 0x69,
0x6d, 0x61, 0x67, 0x65, 0x22, 0x59, 0x0a, 0x03, 0x41, 0x43, 0x4c, 0x12, 0x25, 0x0a, 0x0e, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22,
0x7c, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x3a, 0x0a, 0x0a, 0x70,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x34, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xae, 0x03,
0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x56, 0x0a, 0x17, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d,
0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2b, 0x0a,
0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c,
0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
0x64, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x69,
0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c,
0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x65, 0x64, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x73, 0x12, 0x42, 0x0a,
0x13, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x73, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41, 0x43, 0x4c, 0x52, 0x03, 0x61, 0x63,
0x6c, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x52, 0x15, 0x72, 0x62, 0x65, 0x5f, 0x69, 0x6e, 0x73,
0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x56,
0x0a, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x6d,
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e,
0x73, 0x6a, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73,
0x4e, 0x73, 0x6a, 0x61, 0x69, 0x6c, 0x22, 0x3f, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e,
0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x72,
0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x42,
0x2b, 0x5a, 0x29, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
file_command_command_proto_rawDescOnce sync.Once
file_command_command_proto_rawDescData = file_command_command_proto_rawDesc
)
func file_command_command_proto_rawDescGZIP() []byte {
file_command_command_proto_rawDescOnce.Do(func() {
file_command_command_proto_rawDescData = protoimpl.X.CompressGZIP(file_command_command_proto_rawDescData)
})
return file_command_command_proto_rawDescData
}
var file_command_command_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_command_command_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_command_command_proto_goTypes = []interface{}{
(CmdDescriptor_PathType)(0), // 0: command.CmdDescriptor.PathType
(*Selector)(nil), // 1: command.Selector
(*FileSpec)(nil), // 2: command.FileSpec
(*Target)(nil), // 3: command.Target
(*BuildInfo)(nil), // 4: command.BuildInfo
(*CmdDescriptor)(nil), // 5: command.CmdDescriptor
(*RemoteexecPlatform)(nil), // 6: command.RemoteexecPlatform
(*Config)(nil), // 7: command.Config
(*ACL)(nil), // 8: command.ACL
(*Platform)(nil), // 9: command.Platform
(*RuntimeConfig)(nil), // 10: command.RuntimeConfig
(*PlatformRuntimeConfig)(nil), // 11: command.PlatformRuntimeConfig
(*ConfigMap)(nil), // 12: command.ConfigMap
(*ConfigResp)(nil), // 13: command.ConfigResp
(*CmdDescriptor_Setup)(nil), // 14: command.CmdDescriptor.Setup
(*CmdDescriptor_Cross)(nil), // 15: command.CmdDescriptor.Cross
(*CmdDescriptor_EmulationOpts)(nil), // 16: command.CmdDescriptor.EmulationOpts
(*RemoteexecPlatform_Property)(nil), // 17: command.RemoteexecPlatform.Property
(*Platform_Property)(nil), // 18: command.Platform.Property
(*api.FileBlob)(nil), // 19: devtools_goma.FileBlob
(*timestamppb.Timestamp)(nil), // 20: google.protobuf.Timestamp
}
var file_command_command_proto_depIdxs = []int32{
19, // 0: command.FileSpec.blob:type_name -> devtools_goma.FileBlob
20, // 1: command.BuildInfo.timestamp:type_name -> google.protobuf.Timestamp
1, // 2: command.CmdDescriptor.selector:type_name -> command.Selector
14, // 3: command.CmdDescriptor.setup:type_name -> command.CmdDescriptor.Setup
15, // 4: command.CmdDescriptor.cross:type_name -> command.CmdDescriptor.Cross
16, // 5: command.CmdDescriptor.emulation_opts:type_name -> command.CmdDescriptor.EmulationOpts
17, // 6: command.RemoteexecPlatform.properties:type_name -> command.RemoteexecPlatform.Property
3, // 7: command.Config.target:type_name -> command.Target
4, // 8: command.Config.build_info:type_name -> command.BuildInfo
5, // 9: command.Config.cmd_descriptor:type_name -> command.CmdDescriptor
6, // 10: command.Config.remoteexec_platform:type_name -> command.RemoteexecPlatform
8, // 11: command.Config.acl:type_name -> command.ACL
18, // 12: command.Platform.properties:type_name -> command.Platform.Property
11, // 13: command.RuntimeConfig.platform_runtime_config:type_name -> command.PlatformRuntimeConfig
9, // 14: command.RuntimeConfig.platform:type_name -> command.Platform
1, // 15: command.RuntimeConfig.disallowed_commands:type_name -> command.Selector
8, // 16: command.RuntimeConfig.acl:type_name -> command.ACL
10, // 17: command.ConfigMap.runtimes:type_name -> command.RuntimeConfig
7, // 18: command.ConfigResp.configs:type_name -> command.Config
2, // 19: command.CmdDescriptor.Setup.cmd_file:type_name -> command.FileSpec
2, // 20: command.CmdDescriptor.Setup.files:type_name -> command.FileSpec
0, // 21: command.CmdDescriptor.Setup.path_type:type_name -> command.CmdDescriptor.PathType
22, // [22:22] is the sub-list for method output_type
22, // [22:22] is the sub-list for method input_type
22, // [22:22] is the sub-list for extension type_name
22, // [22:22] is the sub-list for extension extendee
0, // [0:22] is the sub-list for field type_name
}
func init() { file_command_command_proto_init() }
func file_command_command_proto_init() {
if File_command_command_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_command_command_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Selector); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FileSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Target); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CmdDescriptor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteexecPlatform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ACL); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RuntimeConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlatformRuntimeConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConfigMap); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConfigResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CmdDescriptor_Setup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CmdDescriptor_Cross); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CmdDescriptor_EmulationOpts); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteexecPlatform_Property); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_command_command_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform_Property); 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_command_command_proto_rawDesc,
NumEnums: 1,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_command_command_proto_goTypes,
DependencyIndexes: file_command_command_proto_depIdxs,
EnumInfos: file_command_command_proto_enumTypes,
MessageInfos: file_command_command_proto_msgTypes,
}.Build()
File_command_command_proto = out.File
file_command_command_proto_rawDesc = nil
file_command_command_proto_goTypes = nil
file_command_command_proto_depIdxs = nil
}