// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc (unknown) // source: qsfera/messages/settings/v0/settings.proto package v0 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 UserRoleAssignmentFilter_Type int32 const ( UserRoleAssignmentFilter_TYPE_UNKNOWN UserRoleAssignmentFilter_Type = 0 UserRoleAssignmentFilter_TYPE_ACCOUNT UserRoleAssignmentFilter_Type = 1 UserRoleAssignmentFilter_TYPE_ROLE UserRoleAssignmentFilter_Type = 2 ) // Enum value maps for UserRoleAssignmentFilter_Type. var ( UserRoleAssignmentFilter_Type_name = map[int32]string{ 0: "TYPE_UNKNOWN", 1: "TYPE_ACCOUNT", 2: "TYPE_ROLE", } UserRoleAssignmentFilter_Type_value = map[string]int32{ "TYPE_UNKNOWN": 0, "TYPE_ACCOUNT": 1, "TYPE_ROLE": 2, } ) func (x UserRoleAssignmentFilter_Type) Enum() *UserRoleAssignmentFilter_Type { p := new(UserRoleAssignmentFilter_Type) *p = x return p } func (x UserRoleAssignmentFilter_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (UserRoleAssignmentFilter_Type) Descriptor() protoreflect.EnumDescriptor { return file_qsfera_messages_settings_v0_settings_proto_enumTypes[0].Descriptor() } func (UserRoleAssignmentFilter_Type) Type() protoreflect.EnumType { return &file_qsfera_messages_settings_v0_settings_proto_enumTypes[0] } func (x UserRoleAssignmentFilter_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use UserRoleAssignmentFilter_Type.Descriptor instead. func (UserRoleAssignmentFilter_Type) EnumDescriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{3, 0} } type Resource_Type int32 const ( Resource_TYPE_UNKNOWN Resource_Type = 0 Resource_TYPE_SYSTEM Resource_Type = 1 Resource_TYPE_FILE Resource_Type = 2 Resource_TYPE_SHARE Resource_Type = 3 Resource_TYPE_SETTING Resource_Type = 4 Resource_TYPE_BUNDLE Resource_Type = 5 Resource_TYPE_USER Resource_Type = 6 Resource_TYPE_GROUP Resource_Type = 7 ) // Enum value maps for Resource_Type. var ( Resource_Type_name = map[int32]string{ 0: "TYPE_UNKNOWN", 1: "TYPE_SYSTEM", 2: "TYPE_FILE", 3: "TYPE_SHARE", 4: "TYPE_SETTING", 5: "TYPE_BUNDLE", 6: "TYPE_USER", 7: "TYPE_GROUP", } Resource_Type_value = map[string]int32{ "TYPE_UNKNOWN": 0, "TYPE_SYSTEM": 1, "TYPE_FILE": 2, "TYPE_SHARE": 3, "TYPE_SETTING": 4, "TYPE_BUNDLE": 5, "TYPE_USER": 6, "TYPE_GROUP": 7, } ) func (x Resource_Type) Enum() *Resource_Type { p := new(Resource_Type) *p = x return p } func (x Resource_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Resource_Type) Descriptor() protoreflect.EnumDescriptor { return file_qsfera_messages_settings_v0_settings_proto_enumTypes[1].Descriptor() } func (Resource_Type) Type() protoreflect.EnumType { return &file_qsfera_messages_settings_v0_settings_proto_enumTypes[1] } func (x Resource_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Resource_Type.Descriptor instead. func (Resource_Type) EnumDescriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{4, 0} } type Bundle_Type int32 const ( Bundle_TYPE_UNKNOWN Bundle_Type = 0 Bundle_TYPE_DEFAULT Bundle_Type = 1 Bundle_TYPE_ROLE Bundle_Type = 2 ) // Enum value maps for Bundle_Type. var ( Bundle_Type_name = map[int32]string{ 0: "TYPE_UNKNOWN", 1: "TYPE_DEFAULT", 2: "TYPE_ROLE", } Bundle_Type_value = map[string]int32{ "TYPE_UNKNOWN": 0, "TYPE_DEFAULT": 1, "TYPE_ROLE": 2, } ) func (x Bundle_Type) Enum() *Bundle_Type { p := new(Bundle_Type) *p = x return p } func (x Bundle_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Bundle_Type) Descriptor() protoreflect.EnumDescriptor { return file_qsfera_messages_settings_v0_settings_proto_enumTypes[2].Descriptor() } func (Bundle_Type) Type() protoreflect.EnumType { return &file_qsfera_messages_settings_v0_settings_proto_enumTypes[2] } func (x Bundle_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Bundle_Type.Descriptor instead. func (Bundle_Type) EnumDescriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{5, 0} } type Permission_Operation int32 const ( Permission_OPERATION_UNKNOWN Permission_Operation = 0 Permission_OPERATION_CREATE Permission_Operation = 1 Permission_OPERATION_READ Permission_Operation = 2 Permission_OPERATION_UPDATE Permission_Operation = 3 Permission_OPERATION_DELETE Permission_Operation = 4 Permission_OPERATION_WRITE Permission_Operation = 5 // WRITE is a combination of CREATE and UPDATE Permission_OPERATION_READWRITE Permission_Operation = 6 // READWRITE is a combination of READ and WRITE ) // Enum value maps for Permission_Operation. var ( Permission_Operation_name = map[int32]string{ 0: "OPERATION_UNKNOWN", 1: "OPERATION_CREATE", 2: "OPERATION_READ", 3: "OPERATION_UPDATE", 4: "OPERATION_DELETE", 5: "OPERATION_WRITE", 6: "OPERATION_READWRITE", } Permission_Operation_value = map[string]int32{ "OPERATION_UNKNOWN": 0, "OPERATION_CREATE": 1, "OPERATION_READ": 2, "OPERATION_UPDATE": 3, "OPERATION_DELETE": 4, "OPERATION_WRITE": 5, "OPERATION_READWRITE": 6, } ) func (x Permission_Operation) Enum() *Permission_Operation { p := new(Permission_Operation) *p = x return p } func (x Permission_Operation) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Permission_Operation) Descriptor() protoreflect.EnumDescriptor { return file_qsfera_messages_settings_v0_settings_proto_enumTypes[3].Descriptor() } func (Permission_Operation) Type() protoreflect.EnumType { return &file_qsfera_messages_settings_v0_settings_proto_enumTypes[3] } func (x Permission_Operation) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Permission_Operation.Descriptor instead. func (Permission_Operation) EnumDescriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{16, 0} } type Permission_Constraint int32 const ( Permission_CONSTRAINT_UNKNOWN Permission_Constraint = 0 Permission_CONSTRAINT_OWN Permission_Constraint = 1 Permission_CONSTRAINT_SHARED Permission_Constraint = 2 Permission_CONSTRAINT_ALL Permission_Constraint = 3 ) // Enum value maps for Permission_Constraint. var ( Permission_Constraint_name = map[int32]string{ 0: "CONSTRAINT_UNKNOWN", 1: "CONSTRAINT_OWN", 2: "CONSTRAINT_SHARED", 3: "CONSTRAINT_ALL", } Permission_Constraint_value = map[string]int32{ "CONSTRAINT_UNKNOWN": 0, "CONSTRAINT_OWN": 1, "CONSTRAINT_SHARED": 2, "CONSTRAINT_ALL": 3, } ) func (x Permission_Constraint) Enum() *Permission_Constraint { p := new(Permission_Constraint) *p = x return p } func (x Permission_Constraint) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Permission_Constraint) Descriptor() protoreflect.EnumDescriptor { return file_qsfera_messages_settings_v0_settings_proto_enumTypes[4].Descriptor() } func (Permission_Constraint) Type() protoreflect.EnumType { return &file_qsfera_messages_settings_v0_settings_proto_enumTypes[4] } func (x Permission_Constraint) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Permission_Constraint.Descriptor instead. func (Permission_Constraint) EnumDescriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{16, 1} } type ValueWithIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` Value *Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *ValueWithIdentifier) Reset() { *x = ValueWithIdentifier{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ValueWithIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } func (*ValueWithIdentifier) ProtoMessage() {} func (x *ValueWithIdentifier) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 ValueWithIdentifier.ProtoReflect.Descriptor instead. func (*ValueWithIdentifier) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{0} } func (x *ValueWithIdentifier) GetIdentifier() *Identifier { if x != nil { return x.Identifier } return nil } func (x *ValueWithIdentifier) GetValue() *Value { if x != nil { return x.Value } return nil } type Identifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Extension string `protobuf:"bytes,1,opt,name=extension,proto3" json:"extension,omitempty"` Bundle string `protobuf:"bytes,2,opt,name=bundle,proto3" json:"bundle,omitempty"` Setting string `protobuf:"bytes,3,opt,name=setting,proto3" json:"setting,omitempty"` } func (x *Identifier) Reset() { *x = Identifier{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Identifier) String() string { return protoimpl.X.MessageStringOf(x) } func (*Identifier) ProtoMessage() {} func (x *Identifier) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Identifier.ProtoReflect.Descriptor instead. func (*Identifier) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{1} } func (x *Identifier) GetExtension() string { if x != nil { return x.Extension } return "" } func (x *Identifier) GetBundle() string { if x != nil { return x.Bundle } return "" } func (x *Identifier) GetSetting() string { if x != nil { return x.Setting } return "" } type UserRoleAssignment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // id is generated upon saving the assignment Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` AccountUuid string `protobuf:"bytes,2,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` // the role_id is a bundle_id internally RoleId string `protobuf:"bytes,3,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` } func (x *UserRoleAssignment) Reset() { *x = UserRoleAssignment{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRoleAssignment) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRoleAssignment) ProtoMessage() {} func (x *UserRoleAssignment) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 UserRoleAssignment.ProtoReflect.Descriptor instead. func (*UserRoleAssignment) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{2} } func (x *UserRoleAssignment) GetId() string { if x != nil { return x.Id } return "" } func (x *UserRoleAssignment) GetAccountUuid() string { if x != nil { return x.AccountUuid } return "" } func (x *UserRoleAssignment) GetRoleId() string { if x != nil { return x.RoleId } return "" } type UserRoleAssignmentFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type UserRoleAssignmentFilter_Type `protobuf:"varint,1,opt,name=type,proto3,enum=qsfera.messages.settings.v0.UserRoleAssignmentFilter_Type" json:"type,omitempty"` // Types that are assignable to Term: // // *UserRoleAssignmentFilter_AccountUuid // *UserRoleAssignmentFilter_RoleId Term isUserRoleAssignmentFilter_Term `protobuf_oneof:"term"` } func (x *UserRoleAssignmentFilter) Reset() { *x = UserRoleAssignmentFilter{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRoleAssignmentFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRoleAssignmentFilter) ProtoMessage() {} func (x *UserRoleAssignmentFilter) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 UserRoleAssignmentFilter.ProtoReflect.Descriptor instead. func (*UserRoleAssignmentFilter) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{3} } func (x *UserRoleAssignmentFilter) GetType() UserRoleAssignmentFilter_Type { if x != nil { return x.Type } return UserRoleAssignmentFilter_TYPE_UNKNOWN } func (m *UserRoleAssignmentFilter) GetTerm() isUserRoleAssignmentFilter_Term { if m != nil { return m.Term } return nil } func (x *UserRoleAssignmentFilter) GetAccountUuid() string { if x, ok := x.GetTerm().(*UserRoleAssignmentFilter_AccountUuid); ok { return x.AccountUuid } return "" } func (x *UserRoleAssignmentFilter) GetRoleId() string { if x, ok := x.GetTerm().(*UserRoleAssignmentFilter_RoleId); ok { return x.RoleId } return "" } type isUserRoleAssignmentFilter_Term interface { isUserRoleAssignmentFilter_Term() } type UserRoleAssignmentFilter_AccountUuid struct { AccountUuid string `protobuf:"bytes,2,opt,name=account_uuid,json=accountUuid,proto3,oneof"` } type UserRoleAssignmentFilter_RoleId struct { RoleId string `protobuf:"bytes,3,opt,name=role_id,json=roleId,proto3,oneof"` } func (*UserRoleAssignmentFilter_AccountUuid) isUserRoleAssignmentFilter_Term() {} func (*UserRoleAssignmentFilter_RoleId) isUserRoleAssignmentFilter_Term() {} type Resource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type Resource_Type `protobuf:"varint,1,opt,name=type,proto3,enum=qsfera.messages.settings.v0.Resource_Type" json:"type,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *Resource) Reset() { *x = Resource{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Resource) String() string { return protoimpl.X.MessageStringOf(x) } func (*Resource) ProtoMessage() {} func (x *Resource) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Resource.ProtoReflect.Descriptor instead. func (*Resource) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{4} } func (x *Resource) GetType() Resource_Type { if x != nil { return x.Type } return Resource_TYPE_UNKNOWN } func (x *Resource) GetId() string { if x != nil { return x.Id } return "" } type Bundle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // @gotags: yaml:"id" Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // @gotags: yaml:"name" Type Bundle_Type `protobuf:"varint,3,opt,name=type,proto3,enum=qsfera.messages.settings.v0.Bundle_Type" json:"type,omitempty"` // @gotags: yaml:"type" Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension,omitempty"` // @gotags: yaml:"extension" DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // @gotags: yaml:"display_name" Settings []*Setting `protobuf:"bytes,6,rep,name=settings,proto3" json:"settings,omitempty"` // @gotags: yaml:"settings" Resource *Resource `protobuf:"bytes,7,opt,name=resource,proto3" json:"resource,omitempty"` // @gotags: yaml:"resource" } func (x *Bundle) Reset() { *x = Bundle{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bundle) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bundle) ProtoMessage() {} func (x *Bundle) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Bundle.ProtoReflect.Descriptor instead. func (*Bundle) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{5} } func (x *Bundle) GetId() string { if x != nil { return x.Id } return "" } func (x *Bundle) GetName() string { if x != nil { return x.Name } return "" } func (x *Bundle) GetType() Bundle_Type { if x != nil { return x.Type } return Bundle_TYPE_UNKNOWN } func (x *Bundle) GetExtension() string { if x != nil { return x.Extension } return "" } func (x *Bundle) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Bundle) GetSettings() []*Setting { if x != nil { return x.Settings } return nil } func (x *Bundle) GetResource() *Resource { if x != nil { return x.Resource } return nil } type Setting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // @gotags: yaml:"id" Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // @gotags: yaml:"name" DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // @gotags: yaml:"display_name" Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // @gotags: yaml:"description" // Types that are assignable to Value: // // *Setting_IntValue // *Setting_StringValue // *Setting_BoolValue // *Setting_SingleChoiceValue // *Setting_MultiChoiceValue // *Setting_PermissionValue // *Setting_MultiChoiceCollectionValue Value isSetting_Value `protobuf_oneof:"value"` Resource *Resource `protobuf:"bytes,11,opt,name=resource,proto3" json:"resource,omitempty"` // @gotags: yaml:"resource" } func (x *Setting) Reset() { *x = Setting{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Setting) String() string { return protoimpl.X.MessageStringOf(x) } func (*Setting) ProtoMessage() {} func (x *Setting) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Setting.ProtoReflect.Descriptor instead. func (*Setting) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{6} } func (x *Setting) GetId() string { if x != nil { return x.Id } return "" } func (x *Setting) GetName() string { if x != nil { return x.Name } return "" } func (x *Setting) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Setting) GetDescription() string { if x != nil { return x.Description } return "" } func (m *Setting) GetValue() isSetting_Value { if m != nil { return m.Value } return nil } func (x *Setting) GetIntValue() *Int { if x, ok := x.GetValue().(*Setting_IntValue); ok { return x.IntValue } return nil } func (x *Setting) GetStringValue() *String { if x, ok := x.GetValue().(*Setting_StringValue); ok { return x.StringValue } return nil } func (x *Setting) GetBoolValue() *Bool { if x, ok := x.GetValue().(*Setting_BoolValue); ok { return x.BoolValue } return nil } func (x *Setting) GetSingleChoiceValue() *SingleChoiceList { if x, ok := x.GetValue().(*Setting_SingleChoiceValue); ok { return x.SingleChoiceValue } return nil } func (x *Setting) GetMultiChoiceValue() *MultiChoiceList { if x, ok := x.GetValue().(*Setting_MultiChoiceValue); ok { return x.MultiChoiceValue } return nil } func (x *Setting) GetPermissionValue() *Permission { if x, ok := x.GetValue().(*Setting_PermissionValue); ok { return x.PermissionValue } return nil } func (x *Setting) GetMultiChoiceCollectionValue() *MultiChoiceCollection { if x, ok := x.GetValue().(*Setting_MultiChoiceCollectionValue); ok { return x.MultiChoiceCollectionValue } return nil } func (x *Setting) GetResource() *Resource { if x != nil { return x.Resource } return nil } type isSetting_Value interface { isSetting_Value() } type Setting_IntValue struct { IntValue *Int `protobuf:"bytes,5,opt,name=int_value,json=intValue,proto3,oneof"` // @gotags: yaml:"int_value" } type Setting_StringValue struct { StringValue *String `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` // @gotags: yaml:"string_value" } type Setting_BoolValue struct { BoolValue *Bool `protobuf:"bytes,7,opt,name=bool_value,json=boolValue,proto3,oneof"` // @gotags: yaml:"bool_value" } type Setting_SingleChoiceValue struct { SingleChoiceValue *SingleChoiceList `protobuf:"bytes,8,opt,name=single_choice_value,json=singleChoiceValue,proto3,oneof"` // @gotags: yaml:"single_choice_value" } type Setting_MultiChoiceValue struct { MultiChoiceValue *MultiChoiceList `protobuf:"bytes,9,opt,name=multi_choice_value,json=multiChoiceValue,proto3,oneof"` // @gotags: yaml:"multi_choice_value" } type Setting_PermissionValue struct { PermissionValue *Permission `protobuf:"bytes,10,opt,name=permission_value,json=permissionValue,proto3,oneof"` // @gotags: yaml:"permission_value" } type Setting_MultiChoiceCollectionValue struct { MultiChoiceCollectionValue *MultiChoiceCollection `protobuf:"bytes,12,opt,name=multi_choice_collection_value,json=multiChoiceCollectionValue,proto3,oneof"` // @gotags: yaml:"multi_choice_collection_value" } func (*Setting_IntValue) isSetting_Value() {} func (*Setting_StringValue) isSetting_Value() {} func (*Setting_BoolValue) isSetting_Value() {} func (*Setting_SingleChoiceValue) isSetting_Value() {} func (*Setting_MultiChoiceValue) isSetting_Value() {} func (*Setting_PermissionValue) isSetting_Value() {} func (*Setting_MultiChoiceCollectionValue) isSetting_Value() {} type Int struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Default int64 `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` // @gotags: yaml:"default" Min int64 `protobuf:"varint,2,opt,name=min,proto3" json:"min,omitempty"` // @gotags: yaml:"min" Max int64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"` // @gotags: yaml:"max" Step int64 `protobuf:"varint,4,opt,name=step,proto3" json:"step,omitempty"` // @gotags: yaml:"step" Placeholder string `protobuf:"bytes,5,opt,name=placeholder,proto3" json:"placeholder,omitempty"` // @gotags: yaml:"placeholder" } func (x *Int) Reset() { *x = Int{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Int) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int) ProtoMessage() {} func (x *Int) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Int.ProtoReflect.Descriptor instead. func (*Int) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{7} } func (x *Int) GetDefault() int64 { if x != nil { return x.Default } return 0 } func (x *Int) GetMin() int64 { if x != nil { return x.Min } return 0 } func (x *Int) GetMax() int64 { if x != nil { return x.Max } return 0 } func (x *Int) GetStep() int64 { if x != nil { return x.Step } return 0 } func (x *Int) GetPlaceholder() string { if x != nil { return x.Placeholder } return "" } type String struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Default string `protobuf:"bytes,1,opt,name=default,proto3" json:"default,omitempty"` // @gotags: yaml:"default" Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` // @gotags: yaml:"required" MinLength int32 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` // @gotags: yaml:"min_length" MaxLength int32 `protobuf:"varint,4,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` // @gotags: yaml:"max_length" Placeholder string `protobuf:"bytes,5,opt,name=placeholder,proto3" json:"placeholder,omitempty"` // @gotags: yaml:"placeholder" } func (x *String) Reset() { *x = String{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *String) String() string { return protoimpl.X.MessageStringOf(x) } func (*String) ProtoMessage() {} func (x *String) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 String.ProtoReflect.Descriptor instead. func (*String) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{8} } func (x *String) GetDefault() string { if x != nil { return x.Default } return "" } func (x *String) GetRequired() bool { if x != nil { return x.Required } return false } func (x *String) GetMinLength() int32 { if x != nil { return x.MinLength } return 0 } func (x *String) GetMaxLength() int32 { if x != nil { return x.MaxLength } return 0 } func (x *String) GetPlaceholder() string { if x != nil { return x.Placeholder } return "" } type Bool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Default bool `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` // @gotags: yaml:"default" Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` // @gotags: yaml:"label" } func (x *Bool) Reset() { *x = Bool{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bool) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bool) ProtoMessage() {} func (x *Bool) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Bool.ProtoReflect.Descriptor instead. func (*Bool) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{9} } func (x *Bool) GetDefault() bool { if x != nil { return x.Default } return false } func (x *Bool) GetLabel() string { if x != nil { return x.Label } return "" } type SingleChoiceList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` // @gotags: yaml:"options" } func (x *SingleChoiceList) Reset() { *x = SingleChoiceList{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SingleChoiceList) String() string { return protoimpl.X.MessageStringOf(x) } func (*SingleChoiceList) ProtoMessage() {} func (x *SingleChoiceList) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 SingleChoiceList.ProtoReflect.Descriptor instead. func (*SingleChoiceList) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{10} } func (x *SingleChoiceList) GetOptions() []*ListOption { if x != nil { return x.Options } return nil } type MultiChoiceList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` // @gotags: yaml:"options" } func (x *MultiChoiceList) Reset() { *x = MultiChoiceList{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiChoiceList) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiChoiceList) ProtoMessage() {} func (x *MultiChoiceList) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 MultiChoiceList.ProtoReflect.Descriptor instead. func (*MultiChoiceList) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{11} } func (x *MultiChoiceList) GetOptions() []*ListOption { if x != nil { return x.Options } return nil } type ListOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value *ListOptionValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // @gotags: yaml:"value" Default bool `protobuf:"varint,2,opt,name=default,proto3" json:"default,omitempty"` // @gotags: yaml:"default" DisplayValue string `protobuf:"bytes,3,opt,name=display_value,json=displayValue,proto3" json:"display_value,omitempty"` // @gotags: yaml:"display_value" } func (x *ListOption) Reset() { *x = ListOption{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListOption) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListOption) ProtoMessage() {} func (x *ListOption) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 ListOption.ProtoReflect.Descriptor instead. func (*ListOption) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{12} } func (x *ListOption) GetValue() *ListOptionValue { if x != nil { return x.Value } return nil } func (x *ListOption) GetDefault() bool { if x != nil { return x.Default } return false } func (x *ListOption) GetDisplayValue() string { if x != nil { return x.DisplayValue } return "" } type MultiChoiceCollection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Options []*MultiChoiceCollectionOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` // @gotags: yaml:"options" } func (x *MultiChoiceCollection) Reset() { *x = MultiChoiceCollection{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiChoiceCollection) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiChoiceCollection) ProtoMessage() {} func (x *MultiChoiceCollection) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 MultiChoiceCollection.ProtoReflect.Descriptor instead. func (*MultiChoiceCollection) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{13} } func (x *MultiChoiceCollection) GetOptions() []*MultiChoiceCollectionOption { if x != nil { return x.Options } return nil } type MultiChoiceCollectionOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value *MultiChoiceCollectionOptionValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // @gotags: yaml:"value" Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // @gotags: yaml:"key" Attribute string `protobuf:"bytes,3,opt,name=attribute,proto3" json:"attribute,omitempty"` // @gotags: yaml:"attribute" DisplayValue string `protobuf:"bytes,4,opt,name=display_value,json=displayValue,proto3" json:"display_value,omitempty"` // @gotags: yaml:"display_value" } func (x *MultiChoiceCollectionOption) Reset() { *x = MultiChoiceCollectionOption{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiChoiceCollectionOption) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiChoiceCollectionOption) ProtoMessage() {} func (x *MultiChoiceCollectionOption) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 MultiChoiceCollectionOption.ProtoReflect.Descriptor instead. func (*MultiChoiceCollectionOption) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{14} } func (x *MultiChoiceCollectionOption) GetValue() *MultiChoiceCollectionOptionValue { if x != nil { return x.Value } return nil } func (x *MultiChoiceCollectionOption) GetKey() string { if x != nil { return x.Key } return "" } func (x *MultiChoiceCollectionOption) GetAttribute() string { if x != nil { return x.Attribute } return "" } func (x *MultiChoiceCollectionOption) GetDisplayValue() string { if x != nil { return x.DisplayValue } return "" } type MultiChoiceCollectionOptionValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Option: // // *MultiChoiceCollectionOptionValue_IntValue // *MultiChoiceCollectionOptionValue_StringValue // *MultiChoiceCollectionOptionValue_BoolValue Option isMultiChoiceCollectionOptionValue_Option `protobuf_oneof:"option"` } func (x *MultiChoiceCollectionOptionValue) Reset() { *x = MultiChoiceCollectionOptionValue{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiChoiceCollectionOptionValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiChoiceCollectionOptionValue) ProtoMessage() {} func (x *MultiChoiceCollectionOptionValue) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 MultiChoiceCollectionOptionValue.ProtoReflect.Descriptor instead. func (*MultiChoiceCollectionOptionValue) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{15} } func (m *MultiChoiceCollectionOptionValue) GetOption() isMultiChoiceCollectionOptionValue_Option { if m != nil { return m.Option } return nil } func (x *MultiChoiceCollectionOptionValue) GetIntValue() *Int { if x, ok := x.GetOption().(*MultiChoiceCollectionOptionValue_IntValue); ok { return x.IntValue } return nil } func (x *MultiChoiceCollectionOptionValue) GetStringValue() *String { if x, ok := x.GetOption().(*MultiChoiceCollectionOptionValue_StringValue); ok { return x.StringValue } return nil } func (x *MultiChoiceCollectionOptionValue) GetBoolValue() *Bool { if x, ok := x.GetOption().(*MultiChoiceCollectionOptionValue_BoolValue); ok { return x.BoolValue } return nil } type isMultiChoiceCollectionOptionValue_Option interface { isMultiChoiceCollectionOptionValue_Option() } type MultiChoiceCollectionOptionValue_IntValue struct { IntValue *Int `protobuf:"bytes,1,opt,name=int_value,json=intValue,proto3,oneof"` // @gotags: yaml:"int_value" } type MultiChoiceCollectionOptionValue_StringValue struct { StringValue *String `protobuf:"bytes,2,opt,name=string_value,json=stringValue,proto3,oneof"` // @gotags: yaml:"string_value" } type MultiChoiceCollectionOptionValue_BoolValue struct { BoolValue *Bool `protobuf:"bytes,3,opt,name=bool_value,json=boolValue,proto3,oneof"` // @gotags: yaml:"bool_value" } func (*MultiChoiceCollectionOptionValue_IntValue) isMultiChoiceCollectionOptionValue_Option() {} func (*MultiChoiceCollectionOptionValue_StringValue) isMultiChoiceCollectionOptionValue_Option() {} func (*MultiChoiceCollectionOptionValue_BoolValue) isMultiChoiceCollectionOptionValue_Option() {} type Permission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Operation Permission_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=qsfera.messages.settings.v0.Permission_Operation" json:"operation,omitempty"` // @gotags: yaml:"operation" Constraint Permission_Constraint `protobuf:"varint,2,opt,name=constraint,proto3,enum=qsfera.messages.settings.v0.Permission_Constraint" json:"constraint,omitempty"` // @gotags: yaml:"constraint" } func (x *Permission) Reset() { *x = Permission{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Permission) String() string { return protoimpl.X.MessageStringOf(x) } func (*Permission) ProtoMessage() {} func (x *Permission) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Permission.ProtoReflect.Descriptor instead. func (*Permission) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{16} } func (x *Permission) GetOperation() Permission_Operation { if x != nil { return x.Operation } return Permission_OPERATION_UNKNOWN } func (x *Permission) GetConstraint() Permission_Constraint { if x != nil { return x.Constraint } return Permission_CONSTRAINT_UNKNOWN } type Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // id is the id of the Value. It is generated on saving it. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // @gotags: yaml:"id" BundleId string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` // @gotags: yaml:"bundle_id" // setting_id is the id of the setting from within its bundle. SettingId string `protobuf:"bytes,3,opt,name=setting_id,json=settingId,proto3" json:"setting_id,omitempty"` // @gotags: yaml:"setting_id" AccountUuid string `protobuf:"bytes,4,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` // @gotags: yaml:"account_uuid" Resource *Resource `protobuf:"bytes,5,opt,name=resource,proto3" json:"resource,omitempty"` // @gotags: yaml:"resource" // Types that are assignable to Value: // // *Value_BoolValue // *Value_IntValue // *Value_StringValue // *Value_ListValue // *Value_CollectionValue Value isValue_Value `protobuf_oneof:"value"` } func (x *Value) Reset() { *x = Value{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_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 Value.ProtoReflect.Descriptor instead. func (*Value) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{17} } func (x *Value) GetId() string { if x != nil { return x.Id } return "" } func (x *Value) GetBundleId() string { if x != nil { return x.BundleId } return "" } func (x *Value) GetSettingId() string { if x != nil { return x.SettingId } return "" } func (x *Value) GetAccountUuid() string { if x != nil { return x.AccountUuid } return "" } func (x *Value) GetResource() *Resource { if x != nil { return x.Resource } return nil } func (m *Value) GetValue() isValue_Value { if m != nil { return m.Value } return nil } func (x *Value) GetBoolValue() bool { if x, ok := x.GetValue().(*Value_BoolValue); ok { return x.BoolValue } return false } func (x *Value) GetIntValue() int64 { if x, ok := x.GetValue().(*Value_IntValue); ok { return x.IntValue } return 0 } func (x *Value) GetStringValue() string { if x, ok := x.GetValue().(*Value_StringValue); ok { return x.StringValue } return "" } func (x *Value) GetListValue() *ListValue { if x, ok := x.GetValue().(*Value_ListValue); ok { return x.ListValue } return nil } func (x *Value) GetCollectionValue() *CollectionValue { if x, ok := x.GetValue().(*Value_CollectionValue); ok { return x.CollectionValue } return nil } type isValue_Value interface { isValue_Value() } type Value_BoolValue struct { BoolValue bool `protobuf:"varint,6,opt,name=bool_value,json=boolValue,proto3,oneof"` // @gotags: yaml:"bool_value" } type Value_IntValue struct { IntValue int64 `protobuf:"varint,7,opt,name=int_value,json=intValue,proto3,oneof"` // @gotags: yaml:"int_value" } type Value_StringValue struct { StringValue string `protobuf:"bytes,8,opt,name=string_value,json=stringValue,proto3,oneof"` // @gotags: yaml:"string_value" } type Value_ListValue struct { ListValue *ListValue `protobuf:"bytes,9,opt,name=list_value,json=listValue,proto3,oneof"` // @gotags: yaml:"list_value" } type Value_CollectionValue struct { CollectionValue *CollectionValue `protobuf:"bytes,10,opt,name=collection_value,json=collectionValue,proto3,oneof"` // @gotags: yaml:"collection_value" } func (*Value_BoolValue) isValue_Value() {} func (*Value_IntValue) isValue_Value() {} func (*Value_StringValue) isValue_Value() {} func (*Value_ListValue) isValue_Value() {} func (*Value_CollectionValue) isValue_Value() {} type ListValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Values []*ListOptionValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` // @gotags: yaml:"values" } func (x *ListValue) Reset() { *x = ListValue{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListValue) ProtoMessage() {} func (x *ListValue) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[18] 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 ListValue.ProtoReflect.Descriptor instead. func (*ListValue) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{18} } func (x *ListValue) GetValues() []*ListOptionValue { if x != nil { return x.Values } return nil } type ListOptionValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Option: // // *ListOptionValue_StringValue // *ListOptionValue_IntValue // *ListOptionValue_BoolValue Option isListOptionValue_Option `protobuf_oneof:"option"` } func (x *ListOptionValue) Reset() { *x = ListOptionValue{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListOptionValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListOptionValue) ProtoMessage() {} func (x *ListOptionValue) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[19] 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 ListOptionValue.ProtoReflect.Descriptor instead. func (*ListOptionValue) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{19} } func (m *ListOptionValue) GetOption() isListOptionValue_Option { if m != nil { return m.Option } return nil } func (x *ListOptionValue) GetStringValue() string { if x, ok := x.GetOption().(*ListOptionValue_StringValue); ok { return x.StringValue } return "" } func (x *ListOptionValue) GetIntValue() int64 { if x, ok := x.GetOption().(*ListOptionValue_IntValue); ok { return x.IntValue } return 0 } func (x *ListOptionValue) GetBoolValue() bool { if x, ok := x.GetOption().(*ListOptionValue_BoolValue); ok { return x.BoolValue } return false } type isListOptionValue_Option interface { isListOptionValue_Option() } type ListOptionValue_StringValue struct { StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` // @gotags: yaml:"string_value" } type ListOptionValue_IntValue struct { IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"` // @gotags: yaml:"int_value" } type ListOptionValue_BoolValue struct { BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"` // @gotags: yaml:"bool_value" } func (*ListOptionValue_StringValue) isListOptionValue_Option() {} func (*ListOptionValue_IntValue) isListOptionValue_Option() {} func (*ListOptionValue_BoolValue) isListOptionValue_Option() {} type CollectionValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Values []*CollectionOption `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` // @gotags: yaml:"values" } func (x *CollectionValue) Reset() { *x = CollectionValue{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CollectionValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*CollectionValue) ProtoMessage() {} func (x *CollectionValue) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[20] 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 CollectionValue.ProtoReflect.Descriptor instead. func (*CollectionValue) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{20} } func (x *CollectionValue) GetValues() []*CollectionOption { if x != nil { return x.Values } return nil } type CollectionOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // required Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // @gotags: yaml:"key" // Types that are assignable to Option: // // *CollectionOption_IntValue // *CollectionOption_StringValue // *CollectionOption_BoolValue Option isCollectionOption_Option `protobuf_oneof:"option"` } func (x *CollectionOption) Reset() { *x = CollectionOption{} if protoimpl.UnsafeEnabled { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CollectionOption) String() string { return protoimpl.X.MessageStringOf(x) } func (*CollectionOption) ProtoMessage() {} func (x *CollectionOption) ProtoReflect() protoreflect.Message { mi := &file_qsfera_messages_settings_v0_settings_proto_msgTypes[21] 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 CollectionOption.ProtoReflect.Descriptor instead. func (*CollectionOption) Descriptor() ([]byte, []int) { return file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP(), []int{21} } func (x *CollectionOption) GetKey() string { if x != nil { return x.Key } return "" } func (m *CollectionOption) GetOption() isCollectionOption_Option { if m != nil { return m.Option } return nil } func (x *CollectionOption) GetIntValue() int64 { if x, ok := x.GetOption().(*CollectionOption_IntValue); ok { return x.IntValue } return 0 } func (x *CollectionOption) GetStringValue() string { if x, ok := x.GetOption().(*CollectionOption_StringValue); ok { return x.StringValue } return "" } func (x *CollectionOption) GetBoolValue() bool { if x, ok := x.GetOption().(*CollectionOption_BoolValue); ok { return x.BoolValue } return false } type isCollectionOption_Option interface { isCollectionOption_Option() } type CollectionOption_IntValue struct { IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"` // @gotags: yaml:"int_value" } type CollectionOption_StringValue struct { StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` // @gotags: yaml:"string_value" } type CollectionOption_BoolValue struct { BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"` // @gotags: yaml:"bool_value" } func (*CollectionOption_IntValue) isCollectionOption_Option() {} func (*CollectionOption_StringValue) isCollectionOption_Option() {} func (*CollectionOption_BoolValue) isCollectionOption_Option() {} var File_qsfera_messages_settings_v0_settings_proto protoreflect.FileDescriptor var file_qsfera_messages_settings_v0_settings_proto_rawDesc = []byte{ 0x0a, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x22, 0x9e, 0x01, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5c, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x60, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xf0, 0x01, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x22, 0xea, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x07, 0x22, 0xf4, 0x02, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xb3, 0x06, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x62, 0x0a, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7a, 0x0a, 0x1d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x79, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x58, 0x0a, 0x10, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6e, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x1b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc5, 0x03, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x06, 0x22, 0x63, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x22, 0xd4, 0x03, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x4f, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x65, 0x75, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_qsfera_messages_settings_v0_settings_proto_rawDescOnce sync.Once file_qsfera_messages_settings_v0_settings_proto_rawDescData = file_qsfera_messages_settings_v0_settings_proto_rawDesc ) func file_qsfera_messages_settings_v0_settings_proto_rawDescGZIP() []byte { file_qsfera_messages_settings_v0_settings_proto_rawDescOnce.Do(func() { file_qsfera_messages_settings_v0_settings_proto_rawDescData = protoimpl.X.CompressGZIP(file_qsfera_messages_settings_v0_settings_proto_rawDescData) }) return file_qsfera_messages_settings_v0_settings_proto_rawDescData } var file_qsfera_messages_settings_v0_settings_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_qsfera_messages_settings_v0_settings_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_qsfera_messages_settings_v0_settings_proto_goTypes = []interface{}{ (UserRoleAssignmentFilter_Type)(0), // 0: qsfera.messages.settings.v0.UserRoleAssignmentFilter.Type (Resource_Type)(0), // 1: qsfera.messages.settings.v0.Resource.Type (Bundle_Type)(0), // 2: qsfera.messages.settings.v0.Bundle.Type (Permission_Operation)(0), // 3: qsfera.messages.settings.v0.Permission.Operation (Permission_Constraint)(0), // 4: qsfera.messages.settings.v0.Permission.Constraint (*ValueWithIdentifier)(nil), // 5: qsfera.messages.settings.v0.ValueWithIdentifier (*Identifier)(nil), // 6: qsfera.messages.settings.v0.Identifier (*UserRoleAssignment)(nil), // 7: qsfera.messages.settings.v0.UserRoleAssignment (*UserRoleAssignmentFilter)(nil), // 8: qsfera.messages.settings.v0.UserRoleAssignmentFilter (*Resource)(nil), // 9: qsfera.messages.settings.v0.Resource (*Bundle)(nil), // 10: qsfera.messages.settings.v0.Bundle (*Setting)(nil), // 11: qsfera.messages.settings.v0.Setting (*Int)(nil), // 12: qsfera.messages.settings.v0.Int (*String)(nil), // 13: qsfera.messages.settings.v0.String (*Bool)(nil), // 14: qsfera.messages.settings.v0.Bool (*SingleChoiceList)(nil), // 15: qsfera.messages.settings.v0.SingleChoiceList (*MultiChoiceList)(nil), // 16: qsfera.messages.settings.v0.MultiChoiceList (*ListOption)(nil), // 17: qsfera.messages.settings.v0.ListOption (*MultiChoiceCollection)(nil), // 18: qsfera.messages.settings.v0.MultiChoiceCollection (*MultiChoiceCollectionOption)(nil), // 19: qsfera.messages.settings.v0.MultiChoiceCollectionOption (*MultiChoiceCollectionOptionValue)(nil), // 20: qsfera.messages.settings.v0.MultiChoiceCollectionOptionValue (*Permission)(nil), // 21: qsfera.messages.settings.v0.Permission (*Value)(nil), // 22: qsfera.messages.settings.v0.Value (*ListValue)(nil), // 23: qsfera.messages.settings.v0.ListValue (*ListOptionValue)(nil), // 24: qsfera.messages.settings.v0.ListOptionValue (*CollectionValue)(nil), // 25: qsfera.messages.settings.v0.CollectionValue (*CollectionOption)(nil), // 26: qsfera.messages.settings.v0.CollectionOption } var file_qsfera_messages_settings_v0_settings_proto_depIdxs = []int32{ 6, // 0: qsfera.messages.settings.v0.ValueWithIdentifier.identifier:type_name -> qsfera.messages.settings.v0.Identifier 22, // 1: qsfera.messages.settings.v0.ValueWithIdentifier.value:type_name -> qsfera.messages.settings.v0.Value 0, // 2: qsfera.messages.settings.v0.UserRoleAssignmentFilter.type:type_name -> qsfera.messages.settings.v0.UserRoleAssignmentFilter.Type 1, // 3: qsfera.messages.settings.v0.Resource.type:type_name -> qsfera.messages.settings.v0.Resource.Type 2, // 4: qsfera.messages.settings.v0.Bundle.type:type_name -> qsfera.messages.settings.v0.Bundle.Type 11, // 5: qsfera.messages.settings.v0.Bundle.settings:type_name -> qsfera.messages.settings.v0.Setting 9, // 6: qsfera.messages.settings.v0.Bundle.resource:type_name -> qsfera.messages.settings.v0.Resource 12, // 7: qsfera.messages.settings.v0.Setting.int_value:type_name -> qsfera.messages.settings.v0.Int 13, // 8: qsfera.messages.settings.v0.Setting.string_value:type_name -> qsfera.messages.settings.v0.String 14, // 9: qsfera.messages.settings.v0.Setting.bool_value:type_name -> qsfera.messages.settings.v0.Bool 15, // 10: qsfera.messages.settings.v0.Setting.single_choice_value:type_name -> qsfera.messages.settings.v0.SingleChoiceList 16, // 11: qsfera.messages.settings.v0.Setting.multi_choice_value:type_name -> qsfera.messages.settings.v0.MultiChoiceList 21, // 12: qsfera.messages.settings.v0.Setting.permission_value:type_name -> qsfera.messages.settings.v0.Permission 18, // 13: qsfera.messages.settings.v0.Setting.multi_choice_collection_value:type_name -> qsfera.messages.settings.v0.MultiChoiceCollection 9, // 14: qsfera.messages.settings.v0.Setting.resource:type_name -> qsfera.messages.settings.v0.Resource 17, // 15: qsfera.messages.settings.v0.SingleChoiceList.options:type_name -> qsfera.messages.settings.v0.ListOption 17, // 16: qsfera.messages.settings.v0.MultiChoiceList.options:type_name -> qsfera.messages.settings.v0.ListOption 24, // 17: qsfera.messages.settings.v0.ListOption.value:type_name -> qsfera.messages.settings.v0.ListOptionValue 19, // 18: qsfera.messages.settings.v0.MultiChoiceCollection.options:type_name -> qsfera.messages.settings.v0.MultiChoiceCollectionOption 20, // 19: qsfera.messages.settings.v0.MultiChoiceCollectionOption.value:type_name -> qsfera.messages.settings.v0.MultiChoiceCollectionOptionValue 12, // 20: qsfera.messages.settings.v0.MultiChoiceCollectionOptionValue.int_value:type_name -> qsfera.messages.settings.v0.Int 13, // 21: qsfera.messages.settings.v0.MultiChoiceCollectionOptionValue.string_value:type_name -> qsfera.messages.settings.v0.String 14, // 22: qsfera.messages.settings.v0.MultiChoiceCollectionOptionValue.bool_value:type_name -> qsfera.messages.settings.v0.Bool 3, // 23: qsfera.messages.settings.v0.Permission.operation:type_name -> qsfera.messages.settings.v0.Permission.Operation 4, // 24: qsfera.messages.settings.v0.Permission.constraint:type_name -> qsfera.messages.settings.v0.Permission.Constraint 9, // 25: qsfera.messages.settings.v0.Value.resource:type_name -> qsfera.messages.settings.v0.Resource 23, // 26: qsfera.messages.settings.v0.Value.list_value:type_name -> qsfera.messages.settings.v0.ListValue 25, // 27: qsfera.messages.settings.v0.Value.collection_value:type_name -> qsfera.messages.settings.v0.CollectionValue 24, // 28: qsfera.messages.settings.v0.ListValue.values:type_name -> qsfera.messages.settings.v0.ListOptionValue 26, // 29: qsfera.messages.settings.v0.CollectionValue.values:type_name -> qsfera.messages.settings.v0.CollectionOption 30, // [30:30] is the sub-list for method output_type 30, // [30:30] is the sub-list for method input_type 30, // [30:30] is the sub-list for extension type_name 30, // [30:30] is the sub-list for extension extendee 0, // [0:30] is the sub-list for field type_name } func init() { file_qsfera_messages_settings_v0_settings_proto_init() } func file_qsfera_messages_settings_v0_settings_proto_init() { if File_qsfera_messages_settings_v0_settings_proto != nil { return } if !protoimpl.UnsafeEnabled { file_qsfera_messages_settings_v0_settings_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValueWithIdentifier); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Identifier); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRoleAssignment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRoleAssignmentFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Resource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bundle); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Setting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*String); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SingleChoiceList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiChoiceList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOption); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiChoiceCollection); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiChoiceCollectionOption); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiChoiceCollectionOptionValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Permission); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Value); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListOptionValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CollectionValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CollectionOption); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_qsfera_messages_settings_v0_settings_proto_msgTypes[3].OneofWrappers = []interface{}{ (*UserRoleAssignmentFilter_AccountUuid)(nil), (*UserRoleAssignmentFilter_RoleId)(nil), } file_qsfera_messages_settings_v0_settings_proto_msgTypes[6].OneofWrappers = []interface{}{ (*Setting_IntValue)(nil), (*Setting_StringValue)(nil), (*Setting_BoolValue)(nil), (*Setting_SingleChoiceValue)(nil), (*Setting_MultiChoiceValue)(nil), (*Setting_PermissionValue)(nil), (*Setting_MultiChoiceCollectionValue)(nil), } file_qsfera_messages_settings_v0_settings_proto_msgTypes[15].OneofWrappers = []interface{}{ (*MultiChoiceCollectionOptionValue_IntValue)(nil), (*MultiChoiceCollectionOptionValue_StringValue)(nil), (*MultiChoiceCollectionOptionValue_BoolValue)(nil), } file_qsfera_messages_settings_v0_settings_proto_msgTypes[17].OneofWrappers = []interface{}{ (*Value_BoolValue)(nil), (*Value_IntValue)(nil), (*Value_StringValue)(nil), (*Value_ListValue)(nil), (*Value_CollectionValue)(nil), } file_qsfera_messages_settings_v0_settings_proto_msgTypes[19].OneofWrappers = []interface{}{ (*ListOptionValue_StringValue)(nil), (*ListOptionValue_IntValue)(nil), (*ListOptionValue_BoolValue)(nil), } file_qsfera_messages_settings_v0_settings_proto_msgTypes[21].OneofWrappers = []interface{}{ (*CollectionOption_IntValue)(nil), (*CollectionOption_StringValue)(nil), (*CollectionOption_BoolValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_qsfera_messages_settings_v0_settings_proto_rawDesc, NumEnums: 5, NumMessages: 22, NumExtensions: 0, NumServices: 0, }, GoTypes: file_qsfera_messages_settings_v0_settings_proto_goTypes, DependencyIndexes: file_qsfera_messages_settings_v0_settings_proto_depIdxs, EnumInfos: file_qsfera_messages_settings_v0_settings_proto_enumTypes, MessageInfos: file_qsfera_messages_settings_v0_settings_proto_msgTypes, }.Build() File_qsfera_messages_settings_v0_settings_proto = out.File file_qsfera_messages_settings_v0_settings_proto_rawDesc = nil file_qsfera_messages_settings_v0_settings_proto_goTypes = nil file_qsfera_messages_settings_v0_settings_proto_depIdxs = nil }