blob: 3fd79cff10ae7193d852787acf1c91a305ca41d3 [file] [log] [blame]
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.22.0
// protoc v3.12.3
// source: google/devtools/clouddebugger/v2/data.proto
package clouddebugger
import (
reflect "reflect"
sync "sync"
proto "github.com/golang/protobuf/proto"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
wrappers "github.com/golang/protobuf/ptypes/wrappers"
_ "google.golang.org/genproto/googleapis/api/annotations"
v1 "google.golang.org/genproto/googleapis/devtools/source/v1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)
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)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
// Enumerates references to which the message applies.
type StatusMessage_Reference int32
const (
// Status doesn't refer to any particular input.
StatusMessage_UNSPECIFIED StatusMessage_Reference = 0
// Status applies to the breakpoint and is related to its location.
StatusMessage_BREAKPOINT_SOURCE_LOCATION StatusMessage_Reference = 3
// Status applies to the breakpoint and is related to its condition.
StatusMessage_BREAKPOINT_CONDITION StatusMessage_Reference = 4
// Status applies to the breakpoint and is related to its expressions.
StatusMessage_BREAKPOINT_EXPRESSION StatusMessage_Reference = 7
// Status applies to the breakpoint and is related to its age.
StatusMessage_BREAKPOINT_AGE StatusMessage_Reference = 8
// Status applies to the entire variable.
StatusMessage_VARIABLE_NAME StatusMessage_Reference = 5
// Status applies to variable value (variable name is valid).
StatusMessage_VARIABLE_VALUE StatusMessage_Reference = 6
)
// Enum value maps for StatusMessage_Reference.
var (
StatusMessage_Reference_name = map[int32]string{
0: "UNSPECIFIED",
3: "BREAKPOINT_SOURCE_LOCATION",
4: "BREAKPOINT_CONDITION",
7: "BREAKPOINT_EXPRESSION",
8: "BREAKPOINT_AGE",
5: "VARIABLE_NAME",
6: "VARIABLE_VALUE",
}
StatusMessage_Reference_value = map[string]int32{
"UNSPECIFIED": 0,
"BREAKPOINT_SOURCE_LOCATION": 3,
"BREAKPOINT_CONDITION": 4,
"BREAKPOINT_EXPRESSION": 7,
"BREAKPOINT_AGE": 8,
"VARIABLE_NAME": 5,
"VARIABLE_VALUE": 6,
}
)
func (x StatusMessage_Reference) Enum() *StatusMessage_Reference {
p := new(StatusMessage_Reference)
*p = x
return p
}
func (x StatusMessage_Reference) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StatusMessage_Reference) Descriptor() protoreflect.EnumDescriptor {
return file_google_devtools_clouddebugger_v2_data_proto_enumTypes[0].Descriptor()
}
func (StatusMessage_Reference) Type() protoreflect.EnumType {
return &file_google_devtools_clouddebugger_v2_data_proto_enumTypes[0]
}
func (x StatusMessage_Reference) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StatusMessage_Reference.Descriptor instead.
func (StatusMessage_Reference) EnumDescriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{1, 0}
}
// Actions that can be taken when a breakpoint hits.
// Agents should reject breakpoints with unsupported or unknown action values.
type Breakpoint_Action int32
const (
// Capture stack frame and variables and update the breakpoint.
// The data is only captured once. After that the breakpoint is set
// in a final state.
Breakpoint_CAPTURE Breakpoint_Action = 0
// Log each breakpoint hit. The breakpoint remains active until
// deleted or expired.
Breakpoint_LOG Breakpoint_Action = 1
)
// Enum value maps for Breakpoint_Action.
var (
Breakpoint_Action_name = map[int32]string{
0: "CAPTURE",
1: "LOG",
}
Breakpoint_Action_value = map[string]int32{
"CAPTURE": 0,
"LOG": 1,
}
)
func (x Breakpoint_Action) Enum() *Breakpoint_Action {
p := new(Breakpoint_Action)
*p = x
return p
}
func (x Breakpoint_Action) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Breakpoint_Action) Descriptor() protoreflect.EnumDescriptor {
return file_google_devtools_clouddebugger_v2_data_proto_enumTypes[1].Descriptor()
}
func (Breakpoint_Action) Type() protoreflect.EnumType {
return &file_google_devtools_clouddebugger_v2_data_proto_enumTypes[1]
}
func (x Breakpoint_Action) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Breakpoint_Action.Descriptor instead.
func (Breakpoint_Action) EnumDescriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{5, 0}
}
// Log severity levels.
type Breakpoint_LogLevel int32
const (
// Information log message.
Breakpoint_INFO Breakpoint_LogLevel = 0
// Warning log message.
Breakpoint_WARNING Breakpoint_LogLevel = 1
// Error log message.
Breakpoint_ERROR Breakpoint_LogLevel = 2
)
// Enum value maps for Breakpoint_LogLevel.
var (
Breakpoint_LogLevel_name = map[int32]string{
0: "INFO",
1: "WARNING",
2: "ERROR",
}
Breakpoint_LogLevel_value = map[string]int32{
"INFO": 0,
"WARNING": 1,
"ERROR": 2,
}
)
func (x Breakpoint_LogLevel) Enum() *Breakpoint_LogLevel {
p := new(Breakpoint_LogLevel)
*p = x
return p
}
func (x Breakpoint_LogLevel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Breakpoint_LogLevel) Descriptor() protoreflect.EnumDescriptor {
return file_google_devtools_clouddebugger_v2_data_proto_enumTypes[2].Descriptor()
}
func (Breakpoint_LogLevel) Type() protoreflect.EnumType {
return &file_google_devtools_clouddebugger_v2_data_proto_enumTypes[2]
}
func (x Breakpoint_LogLevel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Breakpoint_LogLevel.Descriptor instead.
func (Breakpoint_LogLevel) EnumDescriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{5, 1}
}
// Represents a message with parameters.
type FormatMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Format template for the message. The `format` uses placeholders `$0`,
// `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
// character.
//
// Examples:
//
// * `Failed to load '$0' which helps debug $1 the first time it
// is loaded. Again, $0 is very important.`
// * `Please pay $$10 to use $0 instead of $1.`
Format string `protobuf:"bytes,1,opt,name=format,proto3" json:"format,omitempty"`
// Optional parameters to be embedded into the message.
Parameters []string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
}
func (x *FormatMessage) Reset() {
*x = FormatMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FormatMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FormatMessage) ProtoMessage() {}
func (x *FormatMessage) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 FormatMessage.ProtoReflect.Descriptor instead.
func (*FormatMessage) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{0}
}
func (x *FormatMessage) GetFormat() string {
if x != nil {
return x.Format
}
return ""
}
func (x *FormatMessage) GetParameters() []string {
if x != nil {
return x.Parameters
}
return nil
}
// Represents a contextual status message.
// The message can indicate an error or informational status, and refer to
// specific parts of the containing object.
// For example, the `Breakpoint.status` field can indicate an error referring
// to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
type StatusMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Distinguishes errors from informational messages.
IsError bool `protobuf:"varint,1,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
// Reference to which the message applies.
RefersTo StatusMessage_Reference `protobuf:"varint,2,opt,name=refers_to,json=refersTo,proto3,enum=google.devtools.clouddebugger.v2.StatusMessage_Reference" json:"refers_to,omitempty"`
// Status message text.
Description *FormatMessage `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
}
func (x *StatusMessage) Reset() {
*x = StatusMessage{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatusMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatusMessage) ProtoMessage() {}
func (x *StatusMessage) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 StatusMessage.ProtoReflect.Descriptor instead.
func (*StatusMessage) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{1}
}
func (x *StatusMessage) GetIsError() bool {
if x != nil {
return x.IsError
}
return false
}
func (x *StatusMessage) GetRefersTo() StatusMessage_Reference {
if x != nil {
return x.RefersTo
}
return StatusMessage_UNSPECIFIED
}
func (x *StatusMessage) GetDescription() *FormatMessage {
if x != nil {
return x.Description
}
return nil
}
// Represents a location in the source code.
type SourceLocation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Path to the source file within the source context of the target binary.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// Line inside the file. The first line in the file has the value `1`.
Line int32 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
// Column within a line. The first column in a line as the value `1`.
// Agents that do not support setting breakpoints on specific columns ignore
// this field.
Column int32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"`
}
func (x *SourceLocation) Reset() {
*x = SourceLocation{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SourceLocation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SourceLocation) ProtoMessage() {}
func (x *SourceLocation) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 SourceLocation.ProtoReflect.Descriptor instead.
func (*SourceLocation) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{2}
}
func (x *SourceLocation) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *SourceLocation) GetLine() int32 {
if x != nil {
return x.Line
}
return 0
}
func (x *SourceLocation) GetColumn() int32 {
if x != nil {
return x.Column
}
return 0
}
// Represents a variable or an argument possibly of a compound object type.
// Note how the following variables are represented:
//
// 1) A simple variable:
//
// int x = 5
//
// { name: "x", value: "5", type: "int" } // Captured variable
//
// 2) A compound object:
//
// struct T {
// int m1;
// int m2;
// };
// T x = { 3, 7 };
//
// { // Captured variable
// name: "x",
// type: "T",
// members { name: "m1", value: "3", type: "int" },
// members { name: "m2", value: "7", type: "int" }
// }
//
// 3) A pointer where the pointee was captured:
//
// T x = { 3, 7 };
// T* p = &x;
//
// { // Captured variable
// name: "p",
// type: "T*",
// value: "0x00500500",
// members { name: "m1", value: "3", type: "int" },
// members { name: "m2", value: "7", type: "int" }
// }
//
// 4) A pointer where the pointee was not captured:
//
// T* p = new T;
//
// { // Captured variable
// name: "p",
// type: "T*",
// value: "0x00400400"
// status { is_error: true, description { format: "unavailable" } }
// }
//
// The status should describe the reason for the missing value,
// such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
//
// Note that a null pointer should not have members.
//
// 5) An unnamed value:
//
// int* p = new int(7);
//
// { // Captured variable
// name: "p",
// value: "0x00500500",
// type: "int*",
// members { value: "7", type: "int" } }
//
// 6) An unnamed pointer where the pointee was not captured:
//
// int* p = new int(7);
// int** pp = &p;
//
// { // Captured variable
// name: "pp",
// value: "0x00500500",
// type: "int**",
// members {
// value: "0x00400400",
// type: "int*"
// status {
// is_error: true,
// description: { format: "unavailable" } }
// }
// }
// }
//
// To optimize computation, memory and network traffic, variables that
// repeat in the output multiple times can be stored once in a shared
// variable table and be referenced using the `var_table_index` field. The
// variables stored in the shared table are nameless and are essentially
// a partition of the complete variable. To reconstruct the complete
// variable, merge the referencing variable with the referenced variable.
//
// When using the shared variable table, the following variables:
//
// T x = { 3, 7 };
// T* p = &x;
// T& r = x;
//
// { name: "x", var_table_index: 3, type: "T" } // Captured variables
// { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
// { name: "r", type="T&", var_table_index: 3 }
//
// { // Shared variable table entry #3:
// members { name: "m1", value: "3", type: "int" },
// members { name: "m2", value: "7", type: "int" }
// }
//
// Note that the pointer address is stored with the referencing variable
// and not with the referenced variable. This allows the referenced variable
// to be shared between pointers and references.
//
// The type field is optional. The debugger agent may or may not support it.
type Variable struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the variable, if any.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Simple value of the variable.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Variable type (e.g. `MyClass`). If the variable is split with
// `var_table_index`, `type` goes next to `value`. The interpretation of
// a type is agent specific. It is recommended to include the dynamic type
// rather than a static type of an object.
Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"`
// Members contained or pointed to by the variable.
Members []*Variable `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
// Reference to a variable in the shared variable table. More than
// one variable can reference the same variable in the table. The
// `var_table_index` field is an index into `variable_table` in Breakpoint.
VarTableIndex *wrappers.Int32Value `protobuf:"bytes,4,opt,name=var_table_index,json=varTableIndex,proto3" json:"var_table_index,omitempty"`
// Status associated with the variable. This field will usually stay
// unset. A status of a single variable only applies to that variable or
// expression. The rest of breakpoint data still remains valid. Variables
// might be reported in error state even when breakpoint is not in final
// state.
//
// The message may refer to variable name with `refers_to` set to
// `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
// In either case variable value and members will be unset.
//
// Example of error message applied to name: `Invalid expression syntax`.
//
// Example of information message applied to value: `Not captured`.
//
// Examples of error message applied to value:
//
// * `Malformed string`,
// * `Field f not found in class C`
// * `Null pointer dereference`
Status *StatusMessage `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
}
func (x *Variable) Reset() {
*x = Variable{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Variable) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Variable) ProtoMessage() {}
func (x *Variable) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 Variable.ProtoReflect.Descriptor instead.
func (*Variable) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{3}
}
func (x *Variable) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Variable) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
func (x *Variable) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Variable) GetMembers() []*Variable {
if x != nil {
return x.Members
}
return nil
}
func (x *Variable) GetVarTableIndex() *wrappers.Int32Value {
if x != nil {
return x.VarTableIndex
}
return nil
}
func (x *Variable) GetStatus() *StatusMessage {
if x != nil {
return x.Status
}
return nil
}
// Represents a stack frame context.
type StackFrame struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Demangled function name at the call site.
Function string `protobuf:"bytes,1,opt,name=function,proto3" json:"function,omitempty"`
// Source location of the call site.
Location *SourceLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
// Set of arguments passed to this function.
// Note that this might not be populated for all stack frames.
Arguments []*Variable `protobuf:"bytes,3,rep,name=arguments,proto3" json:"arguments,omitempty"`
// Set of local variables at the stack frame location.
// Note that this might not be populated for all stack frames.
Locals []*Variable `protobuf:"bytes,4,rep,name=locals,proto3" json:"locals,omitempty"`
}
func (x *StackFrame) Reset() {
*x = StackFrame{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StackFrame) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StackFrame) ProtoMessage() {}
func (x *StackFrame) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 StackFrame.ProtoReflect.Descriptor instead.
func (*StackFrame) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{4}
}
func (x *StackFrame) GetFunction() string {
if x != nil {
return x.Function
}
return ""
}
func (x *StackFrame) GetLocation() *SourceLocation {
if x != nil {
return x.Location
}
return nil
}
func (x *StackFrame) GetArguments() []*Variable {
if x != nil {
return x.Arguments
}
return nil
}
func (x *StackFrame) GetLocals() []*Variable {
if x != nil {
return x.Locals
}
return nil
}
// Represents the breakpoint specification, status and results.
type Breakpoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Breakpoint identifier, unique in the scope of the debuggee.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Action that the agent should perform when the code at the
// breakpoint location is hit.
Action Breakpoint_Action `protobuf:"varint,13,opt,name=action,proto3,enum=google.devtools.clouddebugger.v2.Breakpoint_Action" json:"action,omitempty"`
// Breakpoint source location.
Location *SourceLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
// Condition that triggers the breakpoint.
// The condition is a compound boolean expression composed using expressions
// in a programming language at the source location.
Condition string `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
// List of read-only expressions to evaluate at the breakpoint location.
// The expressions are composed using expressions in the programming language
// at the source location. If the breakpoint action is `LOG`, the evaluated
// expressions are included in log statements.
Expressions []string `protobuf:"bytes,4,rep,name=expressions,proto3" json:"expressions,omitempty"`
// Only relevant when action is `LOG`. Defines the message to log when
// the breakpoint hits. The message may include parameter placeholders `$0`,
// `$1`, etc. These placeholders are replaced with the evaluated value
// of the appropriate expression. Expressions not referenced in
// `log_message_format` are not logged.
//
// Example: `Message received, id = $0, count = $1` with
// `expressions` = `[ message.id, message.count ]`.
LogMessageFormat string `protobuf:"bytes,14,opt,name=log_message_format,json=logMessageFormat,proto3" json:"log_message_format,omitempty"`
// Indicates the severity of the log. Only relevant when action is `LOG`.
LogLevel Breakpoint_LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=google.devtools.clouddebugger.v2.Breakpoint_LogLevel" json:"log_level,omitempty"`
// When true, indicates that this is a final result and the
// breakpoint state will not change from here on.
IsFinalState bool `protobuf:"varint,5,opt,name=is_final_state,json=isFinalState,proto3" json:"is_final_state,omitempty"`
// Time this breakpoint was created by the server in seconds resolution.
CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Time this breakpoint was finalized as seen by the server in seconds
// resolution.
FinalTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=final_time,json=finalTime,proto3" json:"final_time,omitempty"`
// E-mail address of the user that created this breakpoint
UserEmail string `protobuf:"bytes,16,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
// Breakpoint status.
//
// The status includes an error flag and a human readable message.
// This field is usually unset. The message can be either
// informational or an error message. Regardless, clients should always
// display the text message back to the user.
//
// Error status indicates complete failure of the breakpoint.
//
// Example (non-final state): `Still loading symbols...`
//
// Examples (final state):
//
// * `Invalid line number` referring to location
// * `Field f not found in class C` referring to condition
Status *StatusMessage `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"`
// The stack at breakpoint time, where stack_frames[0] represents the most
// recently entered function.
StackFrames []*StackFrame `protobuf:"bytes,7,rep,name=stack_frames,json=stackFrames,proto3" json:"stack_frames,omitempty"`
// Values of evaluated expressions at breakpoint time.
// The evaluated expressions appear in exactly the same order they
// are listed in the `expressions` field.
// The `name` field holds the original expression text, the `value` or
// `members` field holds the result of the evaluated expression.
// If the expression cannot be evaluated, the `status` inside the `Variable`
// will indicate an error and contain the error text.
EvaluatedExpressions []*Variable `protobuf:"bytes,8,rep,name=evaluated_expressions,json=evaluatedExpressions,proto3" json:"evaluated_expressions,omitempty"`
// The `variable_table` exists to aid with computation, memory and network
// traffic optimization. It enables storing a variable once and reference
// it from multiple variables, including variables stored in the
// `variable_table` itself.
// For example, the same `this` object, which may appear at many levels of
// the stack, can have all of its data stored once in this table. The
// stack frame variables then would hold only a reference to it.
//
// The variable `var_table_index` field is an index into this repeated field.
// The stored objects are nameless and get their name from the referencing
// variable. The effective variable is a merge of the referencing variable
// and the referenced variable.
VariableTable []*Variable `protobuf:"bytes,9,rep,name=variable_table,json=variableTable,proto3" json:"variable_table,omitempty"`
// A set of custom breakpoint properties, populated by the agent, to be
// displayed to the user.
Labels map[string]string `protobuf:"bytes,17,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *Breakpoint) Reset() {
*x = Breakpoint{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Breakpoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Breakpoint) ProtoMessage() {}
func (x *Breakpoint) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 Breakpoint.ProtoReflect.Descriptor instead.
func (*Breakpoint) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{5}
}
func (x *Breakpoint) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Breakpoint) GetAction() Breakpoint_Action {
if x != nil {
return x.Action
}
return Breakpoint_CAPTURE
}
func (x *Breakpoint) GetLocation() *SourceLocation {
if x != nil {
return x.Location
}
return nil
}
func (x *Breakpoint) GetCondition() string {
if x != nil {
return x.Condition
}
return ""
}
func (x *Breakpoint) GetExpressions() []string {
if x != nil {
return x.Expressions
}
return nil
}
func (x *Breakpoint) GetLogMessageFormat() string {
if x != nil {
return x.LogMessageFormat
}
return ""
}
func (x *Breakpoint) GetLogLevel() Breakpoint_LogLevel {
if x != nil {
return x.LogLevel
}
return Breakpoint_INFO
}
func (x *Breakpoint) GetIsFinalState() bool {
if x != nil {
return x.IsFinalState
}
return false
}
func (x *Breakpoint) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Breakpoint) GetFinalTime() *timestamp.Timestamp {
if x != nil {
return x.FinalTime
}
return nil
}
func (x *Breakpoint) GetUserEmail() string {
if x != nil {
return x.UserEmail
}
return ""
}
func (x *Breakpoint) GetStatus() *StatusMessage {
if x != nil {
return x.Status
}
return nil
}
func (x *Breakpoint) GetStackFrames() []*StackFrame {
if x != nil {
return x.StackFrames
}
return nil
}
func (x *Breakpoint) GetEvaluatedExpressions() []*Variable {
if x != nil {
return x.EvaluatedExpressions
}
return nil
}
func (x *Breakpoint) GetVariableTable() []*Variable {
if x != nil {
return x.VariableTable
}
return nil
}
func (x *Breakpoint) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
// Represents the debugged application. The application may include one or more
// replicated processes executing the same code. Each of these processes is
// attached with a debugger agent, carrying out the debugging commands.
// Agents attached to the same debuggee identify themselves as such by using
// exactly the same Debuggee message value when registering.
type Debuggee struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Unique identifier for the debuggee generated by the controller service.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Project the debuggee is associated with.
// Use project number or id when registering a Google Cloud Platform project.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Uniquifier to further distinguish the application.
// It is possible that different applications might have identical values in
// the debuggee message, thus, incorrectly identified as a single application
// by the Controller service. This field adds salt to further distinguish the
// application. Agents should consider seeding this field with value that
// identifies the code, binary, configuration and environment.
Uniquifier string `protobuf:"bytes,3,opt,name=uniquifier,proto3" json:"uniquifier,omitempty"`
// Human readable description of the debuggee.
// Including a human-readable project name, environment name and version
// information is recommended.
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
// If set to `true`, indicates that Controller service does not detect any
// activity from the debuggee agents and the application is possibly stopped.
IsInactive bool `protobuf:"varint,5,opt,name=is_inactive,json=isInactive,proto3" json:"is_inactive,omitempty"`
// Version ID of the agent.
// Schema: `domain/language-platform/vmajor.minor` (for example
// `google.com/java-gcp/v1.1`).
AgentVersion string `protobuf:"bytes,6,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"`
// If set to `true`, indicates that the agent should disable itself and
// detach from the debuggee.
IsDisabled bool `protobuf:"varint,7,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"`
// Human readable message to be displayed to the user about this debuggee.
// Absence of this field indicates no status. The message can be either
// informational or an error status.
Status *StatusMessage `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
// References to the locations and revisions of the source code used in the
// deployed application.
SourceContexts []*v1.SourceContext `protobuf:"bytes,9,rep,name=source_contexts,json=sourceContexts,proto3" json:"source_contexts,omitempty"`
// References to the locations and revisions of the source code used in the
// deployed application.
//
// Deprecated: Do not use.
ExtSourceContexts []*v1.ExtendedSourceContext `protobuf:"bytes,13,rep,name=ext_source_contexts,json=extSourceContexts,proto3" json:"ext_source_contexts,omitempty"`
// A set of custom debuggee properties, populated by the agent, to be
// displayed to the user.
Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *Debuggee) Reset() {
*x = Debuggee{}
if protoimpl.UnsafeEnabled {
mi := &file_google_devtools_clouddebugger_v2_data_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Debuggee) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Debuggee) ProtoMessage() {}
func (x *Debuggee) ProtoReflect() protoreflect.Message {
mi := &file_google_devtools_clouddebugger_v2_data_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 Debuggee.ProtoReflect.Descriptor instead.
func (*Debuggee) Descriptor() ([]byte, []int) {
return file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP(), []int{6}
}
func (x *Debuggee) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Debuggee) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *Debuggee) GetUniquifier() string {
if x != nil {
return x.Uniquifier
}
return ""
}
func (x *Debuggee) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Debuggee) GetIsInactive() bool {
if x != nil {
return x.IsInactive
}
return false
}
func (x *Debuggee) GetAgentVersion() string {
if x != nil {
return x.AgentVersion
}
return ""
}
func (x *Debuggee) GetIsDisabled() bool {
if x != nil {
return x.IsDisabled
}
return false
}
func (x *Debuggee) GetStatus() *StatusMessage {
if x != nil {
return x.Status
}
return nil
}
func (x *Debuggee) GetSourceContexts() []*v1.SourceContext {
if x != nil {
return x.SourceContexts
}
return nil
}
// Deprecated: Do not use.
func (x *Debuggee) GetExtSourceContexts() []*v1.ExtendedSourceContext {
if x != nil {
return x.ExtSourceContexts
}
return nil
}
func (x *Debuggee) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
var File_google_devtools_clouddebugger_v2_data_proto protoreflect.FileDescriptor
var file_google_devtools_clouddebugger_v2_data_proto_rawDesc = []byte{
0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2f,
0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47,
0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x84, 0x03, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x74,
0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64,
0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x12, 0x51, 0x0a, 0x0b,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65,
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0xac, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0f, 0x0a,
0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e,
0x0a, 0x1a, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x4f, 0x55,
0x52, 0x43, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x18,
0x0a, 0x14, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e,
0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x52, 0x45, 0x41,
0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f,
0x4e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x45, 0x41, 0x4b, 0x50, 0x4f, 0x49, 0x4e,
0x54, 0x5f, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x41, 0x52, 0x49, 0x41,
0x42, 0x4c, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x41,
0x52, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x06, 0x22, 0x50,
0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
0x22, 0x9c, 0x02, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x6d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x73, 0x12, 0x43, 0x0a, 0x0f, 0x76, 0x61, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74,
0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x76, 0x61, 0x72, 0x54, 0x61, 0x62, 0x6c,
0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x47, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65,
0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
0x84, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x08, 0x6c, 0x6f,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08,
0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75,
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x56,
0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
0x74, 0x73, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67,
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x06,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x73, 0x22, 0xdf, 0x08, 0x0a, 0x0a, 0x42, 0x72, 0x65, 0x61, 0x6b,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62,
0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75,
0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20,
0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f,
0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f,
0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x52,
0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65,
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e,
0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76,
0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x46, 0x69,
0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x10,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12,
0x47, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e,
0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76,
0x32, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x73, 0x74,
0x61, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x65, 0x76, 0x61,
0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x72, 0x69,
0x61, 0x62, 0x6c, 0x65, 0x52, 0x14, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x45,
0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x0e, 0x76, 0x61,
0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67,
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0d,
0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x50, 0x0a,
0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32,
0x2e, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65,
0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a,
0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1e, 0x0a, 0x06, 0x41, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x10,
0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x22, 0x2c, 0x0a, 0x08, 0x4c, 0x6f,
0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x00,
0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a,
0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x22, 0xea, 0x04, 0x0a, 0x08, 0x44, 0x65, 0x62,
0x75, 0x67, 0x67, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12,
0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x69, 0x66, 0x69, 0x65, 0x72, 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, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69,
0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x64, 0x69,
0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73,
0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78,
0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x65, 0x78, 0x74, 0x53, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x6c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65,
0x62, 0x75, 0x67, 0x67, 0x65, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xd9, 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x42, 0x09,
0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67,
0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x3b, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x18,
0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x44, 0x65, 0x62,
0x75, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72,
0x5c, 0x56, 0x32, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c,
0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x3a, 0x3a, 0x56,
0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_devtools_clouddebugger_v2_data_proto_rawDescOnce sync.Once
file_google_devtools_clouddebugger_v2_data_proto_rawDescData = file_google_devtools_clouddebugger_v2_data_proto_rawDesc
)
func file_google_devtools_clouddebugger_v2_data_proto_rawDescGZIP() []byte {
file_google_devtools_clouddebugger_v2_data_proto_rawDescOnce.Do(func() {
file_google_devtools_clouddebugger_v2_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_clouddebugger_v2_data_proto_rawDescData)
})
return file_google_devtools_clouddebugger_v2_data_proto_rawDescData
}
var file_google_devtools_clouddebugger_v2_data_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_devtools_clouddebugger_v2_data_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_google_devtools_clouddebugger_v2_data_proto_goTypes = []interface{}{
(StatusMessage_Reference)(0), // 0: google.devtools.clouddebugger.v2.StatusMessage.Reference
(Breakpoint_Action)(0), // 1: google.devtools.clouddebugger.v2.Breakpoint.Action
(Breakpoint_LogLevel)(0), // 2: google.devtools.clouddebugger.v2.Breakpoint.LogLevel
(*FormatMessage)(nil), // 3: google.devtools.clouddebugger.v2.FormatMessage
(*StatusMessage)(nil), // 4: google.devtools.clouddebugger.v2.StatusMessage
(*SourceLocation)(nil), // 5: google.devtools.clouddebugger.v2.SourceLocation
(*Variable)(nil), // 6: google.devtools.clouddebugger.v2.Variable
(*StackFrame)(nil), // 7: google.devtools.clouddebugger.v2.StackFrame
(*Breakpoint)(nil), // 8: google.devtools.clouddebugger.v2.Breakpoint
(*Debuggee)(nil), // 9: google.devtools.clouddebugger.v2.Debuggee
nil, // 10: google.devtools.clouddebugger.v2.Breakpoint.LabelsEntry
nil, // 11: google.devtools.clouddebugger.v2.Debuggee.LabelsEntry
(*wrappers.Int32Value)(nil), // 12: google.protobuf.Int32Value
(*timestamp.Timestamp)(nil), // 13: google.protobuf.Timestamp
(*v1.SourceContext)(nil), // 14: google.devtools.source.v1.SourceContext
(*v1.ExtendedSourceContext)(nil), // 15: google.devtools.source.v1.ExtendedSourceContext
}
var file_google_devtools_clouddebugger_v2_data_proto_depIdxs = []int32{
0, // 0: google.devtools.clouddebugger.v2.StatusMessage.refers_to:type_name -> google.devtools.clouddebugger.v2.StatusMessage.Reference
3, // 1: google.devtools.clouddebugger.v2.StatusMessage.description:type_name -> google.devtools.clouddebugger.v2.FormatMessage
6, // 2: google.devtools.clouddebugger.v2.Variable.members:type_name -> google.devtools.clouddebugger.v2.Variable
12, // 3: google.devtools.clouddebugger.v2.Variable.var_table_index:type_name -> google.protobuf.Int32Value
4, // 4: google.devtools.clouddebugger.v2.Variable.status:type_name -> google.devtools.clouddebugger.v2.StatusMessage
5, // 5: google.devtools.clouddebugger.v2.StackFrame.location:type_name -> google.devtools.clouddebugger.v2.SourceLocation
6, // 6: google.devtools.clouddebugger.v2.StackFrame.arguments:type_name -> google.devtools.clouddebugger.v2.Variable
6, // 7: google.devtools.clouddebugger.v2.StackFrame.locals:type_name -> google.devtools.clouddebugger.v2.Variable
1, // 8: google.devtools.clouddebugger.v2.Breakpoint.action:type_name -> google.devtools.clouddebugger.v2.Breakpoint.Action
5, // 9: google.devtools.clouddebugger.v2.Breakpoint.location:type_name -> google.devtools.clouddebugger.v2.SourceLocation
2, // 10: google.devtools.clouddebugger.v2.Breakpoint.log_level:type_name -> google.devtools.clouddebugger.v2.Breakpoint.LogLevel
13, // 11: google.devtools.clouddebugger.v2.Breakpoint.create_time:type_name -> google.protobuf.Timestamp
13, // 12: google.devtools.clouddebugger.v2.Breakpoint.final_time:type_name -> google.protobuf.Timestamp
4, // 13: google.devtools.clouddebugger.v2.Breakpoint.status:type_name -> google.devtools.clouddebugger.v2.StatusMessage
7, // 14: google.devtools.clouddebugger.v2.Breakpoint.stack_frames:type_name -> google.devtools.clouddebugger.v2.StackFrame
6, // 15: google.devtools.clouddebugger.v2.Breakpoint.evaluated_expressions:type_name -> google.devtools.clouddebugger.v2.Variable
6, // 16: google.devtools.clouddebugger.v2.Breakpoint.variable_table:type_name -> google.devtools.clouddebugger.v2.Variable
10, // 17: google.devtools.clouddebugger.v2.Breakpoint.labels:type_name -> google.devtools.clouddebugger.v2.Breakpoint.LabelsEntry
4, // 18: google.devtools.clouddebugger.v2.Debuggee.status:type_name -> google.devtools.clouddebugger.v2.StatusMessage
14, // 19: google.devtools.clouddebugger.v2.Debuggee.source_contexts:type_name -> google.devtools.source.v1.SourceContext
15, // 20: google.devtools.clouddebugger.v2.Debuggee.ext_source_contexts:type_name -> google.devtools.source.v1.ExtendedSourceContext
11, // 21: google.devtools.clouddebugger.v2.Debuggee.labels:type_name -> google.devtools.clouddebugger.v2.Debuggee.LabelsEntry
22, // [22:22] is the sub-list for method output_type
22, // [22:22] is the sub-list for method input_type
22, // [22:22] is the sub-list for extension type_name
22, // [22:22] is the sub-list for extension extendee
0, // [0:22] is the sub-list for field type_name
}
func init() { file_google_devtools_clouddebugger_v2_data_proto_init() }
func file_google_devtools_clouddebugger_v2_data_proto_init() {
if File_google_devtools_clouddebugger_v2_data_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FormatMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatusMessage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SourceLocation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Variable); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StackFrame); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Breakpoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_devtools_clouddebugger_v2_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Debuggee); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_devtools_clouddebugger_v2_data_proto_rawDesc,
NumEnums: 3,
NumMessages: 9,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_devtools_clouddebugger_v2_data_proto_goTypes,
DependencyIndexes: file_google_devtools_clouddebugger_v2_data_proto_depIdxs,
EnumInfos: file_google_devtools_clouddebugger_v2_data_proto_enumTypes,
MessageInfos: file_google_devtools_clouddebugger_v2_data_proto_msgTypes,
}.Build()
File_google_devtools_clouddebugger_v2_data_proto = out.File
file_google_devtools_clouddebugger_v2_data_proto_rawDesc = nil
file_google_devtools_clouddebugger_v2_data_proto_goTypes = nil
file_google_devtools_clouddebugger_v2_data_proto_depIdxs = nil
}