From f2c9478d33e92fbc2d376367709b573a2412514a Mon Sep 17 00:00:00 2001 From: hiboyang <14280154+hiboyang@users.noreply.github.com> Date: Fri, 18 Aug 2023 12:20:20 +0800 Subject: [PATCH] [SPARK-44681] Fix issues when writing Go application code using Spark Connect Go client library ### What changes were proposed in this pull request? When trying to write Go application code using Spark Connect Go client and put the Go application code in users' own repo (e.g. https://github.com/user-foo/my-go-application), the Go application code cannot resolve Spark Connect Go client from `https://github.com/apache/spark-connect-go` correctly, due to two issues: 1. The name `github.com/apache/spark-connect-go/v_3_4` cannot resolve correctly to find the module, it complains not finding `go.mod` file under `github.com/apache/spark-connect-go/v_3_4`. After change the name to `github.com/apache/spark-connect-go/v34`, it is good. 2. The Go application code needs generated Go protobuf code as well. Thus need to commit the generated Go protobuf code into `github.com/apache/spark-connect-go` repo. ### Why are the changes needed? See above. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Tested by run Go application code to use Spark Connect Go client. Closes #14 from hiboyang/bo-dev-05. Authored-by: hiboyang <14280154+hiboyang@users.noreply.github.com> Signed-off-by: Ruifeng Zheng --- .gitignore | 1 - client/channel/channel_test.go | 2 +- client/sql/dataframe.go | 2 +- client/sql/dataframe_test.go | 2 +- client/sql/dataframereader.go | 2 +- client/sql/dataframewriter.go | 2 +- client/sql/dataframewriter_test.go | 2 +- client/sql/sparksession.go | 4 +- .../main.go | 2 +- .../main.go | 2 +- go.mod | 2 +- internal/generated/base.pb.go | 5994 +++++++++++++++ internal/generated/base_grpc.pb.go | 390 + internal/generated/catalog.pb.go | 2562 +++++++ internal/generated/commands.pb.go | 3546 +++++++++ internal/generated/common.pb.go | 285 + internal/generated/example_plugins.pb.go | 323 + internal/generated/expressions.pb.go | 3400 +++++++++ internal/generated/relations.pb.go | 6655 +++++++++++++++++ internal/generated/types.pb.go | 2502 +++++++ 20 files changed, 25668 insertions(+), 12 deletions(-) create mode 100644 internal/generated/base.pb.go create mode 100644 internal/generated/base_grpc.pb.go create mode 100644 internal/generated/catalog.pb.go create mode 100644 internal/generated/commands.pb.go create mode 100644 internal/generated/common.pb.go create mode 100644 internal/generated/example_plugins.pb.go create mode 100644 internal/generated/expressions.pb.go create mode 100644 internal/generated/relations.pb.go create mode 100644 internal/generated/types.pb.go diff --git a/.gitignore b/.gitignore index 17dc1fb..e76d6f0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ # # All generated files -internal/generated internal/generated.out # Ignore Coverage Files diff --git a/client/channel/channel_test.go b/client/channel/channel_test.go index aedceb8..53b9561 100644 --- a/client/channel/channel_test.go +++ b/client/channel/channel_test.go @@ -20,7 +20,7 @@ import ( "strings" "testing" - "github.com/apache/spark-connect-go/v_3_4/client/channel" + "github.com/apache/spark-connect-go/v34/client/channel" "github.com/stretchr/testify/assert" ) diff --git a/client/sql/dataframe.go b/client/sql/dataframe.go index 773f714..adb5e1b 100644 --- a/client/sql/dataframe.go +++ b/client/sql/dataframe.go @@ -23,7 +23,7 @@ import ( "github.com/apache/arrow/go/v12/arrow" "github.com/apache/arrow/go/v12/arrow/array" "github.com/apache/arrow/go/v12/arrow/ipc" - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "io" ) diff --git a/client/sql/dataframe_test.go b/client/sql/dataframe_test.go index 7775b74..a41f126 100644 --- a/client/sql/dataframe_test.go +++ b/client/sql/dataframe_test.go @@ -25,7 +25,7 @@ import ( "github.com/apache/arrow/go/v12/arrow/float16" "github.com/apache/arrow/go/v12/arrow/ipc" "github.com/apache/arrow/go/v12/arrow/memory" - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "testing" diff --git a/client/sql/dataframereader.go b/client/sql/dataframereader.go index 71c4e79..738b7a8 100644 --- a/client/sql/dataframereader.go +++ b/client/sql/dataframereader.go @@ -1,6 +1,6 @@ package sql -import proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" +import proto "github.com/apache/spark-connect-go/v34/internal/generated" // DataFrameReader supports reading data from storage and returning a data frame. // TODO needs to implement other methods like Option(), Schema(), and also "strong typed" diff --git a/client/sql/dataframewriter.go b/client/sql/dataframewriter.go index 868ae39..20e70d9 100644 --- a/client/sql/dataframewriter.go +++ b/client/sql/dataframewriter.go @@ -2,7 +2,7 @@ package sql import ( "fmt" - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "strings" ) diff --git a/client/sql/dataframewriter_test.go b/client/sql/dataframewriter_test.go index 6521d57..c4ad58b 100644 --- a/client/sql/dataframewriter_test.go +++ b/client/sql/dataframewriter_test.go @@ -1,7 +1,7 @@ package sql import ( - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "github.com/stretchr/testify/assert" "testing" ) diff --git a/client/sql/sparksession.go b/client/sql/sparksession.go index 3fa05cd..005136e 100644 --- a/client/sql/sparksession.go +++ b/client/sql/sparksession.go @@ -21,8 +21,8 @@ import ( "errors" "fmt" - "github.com/apache/spark-connect-go/v_3_4/client/channel" - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + "github.com/apache/spark-connect-go/v34/client/channel" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "github.com/google/uuid" "google.golang.org/grpc/metadata" "io" diff --git a/cmd/spark-connect-example-raw-grpc-client/main.go b/cmd/spark-connect-example-raw-grpc-client/main.go index 8398292..3d122ca 100644 --- a/cmd/spark-connect-example-raw-grpc-client/main.go +++ b/cmd/spark-connect-example-raw-grpc-client/main.go @@ -19,7 +19,7 @@ package main import ( "context" "flag" - proto "github.com/apache/spark-connect-go/v_3_4/internal/generated" + proto "github.com/apache/spark-connect-go/v34/internal/generated" "github.com/google/uuid" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" diff --git a/cmd/spark-connect-example-spark-session/main.go b/cmd/spark-connect-example-spark-session/main.go index cd21878..0913c50 100644 --- a/cmd/spark-connect-example-spark-session/main.go +++ b/cmd/spark-connect-example-spark-session/main.go @@ -20,7 +20,7 @@ import ( "flag" "log" - "github.com/apache/spark-connect-go/v_3_4/client/sql" + "github.com/apache/spark-connect-go/v34/client/sql" ) var ( diff --git a/go.mod b/go.mod index c95c5ec..6b4c0a0 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -module github.com/apache/spark-connect-go/v_3_4 +module github.com/apache/spark-connect-go/v34 go 1.19 diff --git a/internal/generated/base.pb.go b/internal/generated/base.pb.go new file mode 100644 index 0000000..ab8bb5d --- /dev/null +++ b/internal/generated/base.pb.go @@ -0,0 +1,5994 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/base.proto + +package generated + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + 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) +) + +// Plan explanation mode. +type AnalyzePlanRequest_Explain_ExplainMode int32 + +const ( + AnalyzePlanRequest_Explain_EXPLAIN_MODE_UNSPECIFIED AnalyzePlanRequest_Explain_ExplainMode = 0 + // Generates only physical plan. + AnalyzePlanRequest_Explain_EXPLAIN_MODE_SIMPLE AnalyzePlanRequest_Explain_ExplainMode = 1 + // Generates parsed logical plan, analyzed logical plan, optimized logical plan and physical plan. + // Parsed Logical plan is a unresolved plan that extracted from the query. Analyzed logical plans + // transforms which translates unresolvedAttribute and unresolvedRelation into fully typed objects. + // The optimized logical plan transforms through a set of optimization rules, resulting in the + // physical plan. + AnalyzePlanRequest_Explain_EXPLAIN_MODE_EXTENDED AnalyzePlanRequest_Explain_ExplainMode = 2 + // Generates code for the statement, if any and a physical plan. + AnalyzePlanRequest_Explain_EXPLAIN_MODE_CODEGEN AnalyzePlanRequest_Explain_ExplainMode = 3 + // If plan node statistics are available, generates a logical plan and also the statistics. + AnalyzePlanRequest_Explain_EXPLAIN_MODE_COST AnalyzePlanRequest_Explain_ExplainMode = 4 + // Generates a physical plan outline and also node details. + AnalyzePlanRequest_Explain_EXPLAIN_MODE_FORMATTED AnalyzePlanRequest_Explain_ExplainMode = 5 +) + +// Enum value maps for AnalyzePlanRequest_Explain_ExplainMode. +var ( + AnalyzePlanRequest_Explain_ExplainMode_name = map[int32]string{ + 0: "EXPLAIN_MODE_UNSPECIFIED", + 1: "EXPLAIN_MODE_SIMPLE", + 2: "EXPLAIN_MODE_EXTENDED", + 3: "EXPLAIN_MODE_CODEGEN", + 4: "EXPLAIN_MODE_COST", + 5: "EXPLAIN_MODE_FORMATTED", + } + AnalyzePlanRequest_Explain_ExplainMode_value = map[string]int32{ + "EXPLAIN_MODE_UNSPECIFIED": 0, + "EXPLAIN_MODE_SIMPLE": 1, + "EXPLAIN_MODE_EXTENDED": 2, + "EXPLAIN_MODE_CODEGEN": 3, + "EXPLAIN_MODE_COST": 4, + "EXPLAIN_MODE_FORMATTED": 5, + } +) + +func (x AnalyzePlanRequest_Explain_ExplainMode) Enum() *AnalyzePlanRequest_Explain_ExplainMode { + p := new(AnalyzePlanRequest_Explain_ExplainMode) + *p = x + return p +} + +func (x AnalyzePlanRequest_Explain_ExplainMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnalyzePlanRequest_Explain_ExplainMode) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_base_proto_enumTypes[0].Descriptor() +} + +func (AnalyzePlanRequest_Explain_ExplainMode) Type() protoreflect.EnumType { + return &file_spark_connect_base_proto_enumTypes[0] +} + +func (x AnalyzePlanRequest_Explain_ExplainMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnalyzePlanRequest_Explain_ExplainMode.Descriptor instead. +func (AnalyzePlanRequest_Explain_ExplainMode) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 1, 0} +} + +type InterruptRequest_InterruptType int32 + +const ( + InterruptRequest_INTERRUPT_TYPE_UNSPECIFIED InterruptRequest_InterruptType = 0 + // Interrupt all running executions within session with provided session_id. + InterruptRequest_INTERRUPT_TYPE_ALL InterruptRequest_InterruptType = 1 +) + +// Enum value maps for InterruptRequest_InterruptType. +var ( + InterruptRequest_InterruptType_name = map[int32]string{ + 0: "INTERRUPT_TYPE_UNSPECIFIED", + 1: "INTERRUPT_TYPE_ALL", + } + InterruptRequest_InterruptType_value = map[string]int32{ + "INTERRUPT_TYPE_UNSPECIFIED": 0, + "INTERRUPT_TYPE_ALL": 1, + } +) + +func (x InterruptRequest_InterruptType) Enum() *InterruptRequest_InterruptType { + p := new(InterruptRequest_InterruptType) + *p = x + return p +} + +func (x InterruptRequest_InterruptType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InterruptRequest_InterruptType) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_base_proto_enumTypes[1].Descriptor() +} + +func (InterruptRequest_InterruptType) Type() protoreflect.EnumType { + return &file_spark_connect_base_proto_enumTypes[1] +} + +func (x InterruptRequest_InterruptType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use InterruptRequest_InterruptType.Descriptor instead. +func (InterruptRequest_InterruptType) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{13, 0} +} + +// A [[Plan]] is the structure that carries the runtime information for the execution from the +// client to the server. A [[Plan]] can either be of the type [[Relation]] which is a reference +// to the underlying logical plan or it can be of the [[Command]] type that is used to execute +// commands on the server. +type Plan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to OpType: + // + // *Plan_Root + // *Plan_Command + OpType isPlan_OpType `protobuf_oneof:"op_type"` +} + +func (x *Plan) Reset() { + *x = Plan{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Plan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Plan) ProtoMessage() {} + +func (x *Plan) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 Plan.ProtoReflect.Descriptor instead. +func (*Plan) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{0} +} + +func (m *Plan) GetOpType() isPlan_OpType { + if m != nil { + return m.OpType + } + return nil +} + +func (x *Plan) GetRoot() *Relation { + if x, ok := x.GetOpType().(*Plan_Root); ok { + return x.Root + } + return nil +} + +func (x *Plan) GetCommand() *Command { + if x, ok := x.GetOpType().(*Plan_Command); ok { + return x.Command + } + return nil +} + +type isPlan_OpType interface { + isPlan_OpType() +} + +type Plan_Root struct { + Root *Relation `protobuf:"bytes,1,opt,name=root,proto3,oneof"` +} + +type Plan_Command struct { + Command *Command `protobuf:"bytes,2,opt,name=command,proto3,oneof"` +} + +func (*Plan_Root) isPlan_OpType() {} + +func (*Plan_Command) isPlan_OpType() {} + +// User Context is used to refer to one particular user session that is executing +// queries in the backend. +type UserContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + // To extend the existing user context message that is used to identify incoming requests, + // Spark Connect leverages the Any protobuf type that can be used to inject arbitrary other + // messages into this message. Extensions are stored as a `repeated` type to be able to + // handle multiple active extensions. + Extensions []*anypb.Any `protobuf:"bytes,999,rep,name=extensions,proto3" json:"extensions,omitempty"` +} + +func (x *UserContext) Reset() { + *x = UserContext{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserContext) ProtoMessage() {} + +func (x *UserContext) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 UserContext.ProtoReflect.Descriptor instead. +func (*UserContext) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{1} +} + +func (x *UserContext) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *UserContext) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserContext) GetExtensions() []*anypb.Any { + if x != nil { + return x.Extensions + } + return nil +} + +// Request to perform plan analyze, optionally to explain the plan. +type AnalyzePlanRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // (Required) User context + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,3,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` + // Types that are assignable to Analyze: + // + // *AnalyzePlanRequest_Schema_ + // *AnalyzePlanRequest_Explain_ + // *AnalyzePlanRequest_TreeString_ + // *AnalyzePlanRequest_IsLocal_ + // *AnalyzePlanRequest_IsStreaming_ + // *AnalyzePlanRequest_InputFiles_ + // *AnalyzePlanRequest_SparkVersion_ + // *AnalyzePlanRequest_DdlParse + // *AnalyzePlanRequest_SameSemantics_ + // *AnalyzePlanRequest_SemanticHash_ + // *AnalyzePlanRequest_Persist_ + // *AnalyzePlanRequest_Unpersist_ + // *AnalyzePlanRequest_GetStorageLevel_ + Analyze isAnalyzePlanRequest_Analyze `protobuf_oneof:"analyze"` +} + +func (x *AnalyzePlanRequest) Reset() { + *x = AnalyzePlanRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest) ProtoMessage() {} + +func (x *AnalyzePlanRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2} +} + +func (x *AnalyzePlanRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *AnalyzePlanRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *AnalyzePlanRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +func (m *AnalyzePlanRequest) GetAnalyze() isAnalyzePlanRequest_Analyze { + if m != nil { + return m.Analyze + } + return nil +} + +func (x *AnalyzePlanRequest) GetSchema() *AnalyzePlanRequest_Schema { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_Schema_); ok { + return x.Schema + } + return nil +} + +func (x *AnalyzePlanRequest) GetExplain() *AnalyzePlanRequest_Explain { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_Explain_); ok { + return x.Explain + } + return nil +} + +func (x *AnalyzePlanRequest) GetTreeString() *AnalyzePlanRequest_TreeString { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_TreeString_); ok { + return x.TreeString + } + return nil +} + +func (x *AnalyzePlanRequest) GetIsLocal() *AnalyzePlanRequest_IsLocal { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_IsLocal_); ok { + return x.IsLocal + } + return nil +} + +func (x *AnalyzePlanRequest) GetIsStreaming() *AnalyzePlanRequest_IsStreaming { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_IsStreaming_); ok { + return x.IsStreaming + } + return nil +} + +func (x *AnalyzePlanRequest) GetInputFiles() *AnalyzePlanRequest_InputFiles { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_InputFiles_); ok { + return x.InputFiles + } + return nil +} + +func (x *AnalyzePlanRequest) GetSparkVersion() *AnalyzePlanRequest_SparkVersion { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_SparkVersion_); ok { + return x.SparkVersion + } + return nil +} + +func (x *AnalyzePlanRequest) GetDdlParse() *AnalyzePlanRequest_DDLParse { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_DdlParse); ok { + return x.DdlParse + } + return nil +} + +func (x *AnalyzePlanRequest) GetSameSemantics() *AnalyzePlanRequest_SameSemantics { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_SameSemantics_); ok { + return x.SameSemantics + } + return nil +} + +func (x *AnalyzePlanRequest) GetSemanticHash() *AnalyzePlanRequest_SemanticHash { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_SemanticHash_); ok { + return x.SemanticHash + } + return nil +} + +func (x *AnalyzePlanRequest) GetPersist() *AnalyzePlanRequest_Persist { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_Persist_); ok { + return x.Persist + } + return nil +} + +func (x *AnalyzePlanRequest) GetUnpersist() *AnalyzePlanRequest_Unpersist { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_Unpersist_); ok { + return x.Unpersist + } + return nil +} + +func (x *AnalyzePlanRequest) GetGetStorageLevel() *AnalyzePlanRequest_GetStorageLevel { + if x, ok := x.GetAnalyze().(*AnalyzePlanRequest_GetStorageLevel_); ok { + return x.GetStorageLevel + } + return nil +} + +type isAnalyzePlanRequest_Analyze interface { + isAnalyzePlanRequest_Analyze() +} + +type AnalyzePlanRequest_Schema_ struct { + Schema *AnalyzePlanRequest_Schema `protobuf:"bytes,4,opt,name=schema,proto3,oneof"` +} + +type AnalyzePlanRequest_Explain_ struct { + Explain *AnalyzePlanRequest_Explain `protobuf:"bytes,5,opt,name=explain,proto3,oneof"` +} + +type AnalyzePlanRequest_TreeString_ struct { + TreeString *AnalyzePlanRequest_TreeString `protobuf:"bytes,6,opt,name=tree_string,json=treeString,proto3,oneof"` +} + +type AnalyzePlanRequest_IsLocal_ struct { + IsLocal *AnalyzePlanRequest_IsLocal `protobuf:"bytes,7,opt,name=is_local,json=isLocal,proto3,oneof"` +} + +type AnalyzePlanRequest_IsStreaming_ struct { + IsStreaming *AnalyzePlanRequest_IsStreaming `protobuf:"bytes,8,opt,name=is_streaming,json=isStreaming,proto3,oneof"` +} + +type AnalyzePlanRequest_InputFiles_ struct { + InputFiles *AnalyzePlanRequest_InputFiles `protobuf:"bytes,9,opt,name=input_files,json=inputFiles,proto3,oneof"` +} + +type AnalyzePlanRequest_SparkVersion_ struct { + SparkVersion *AnalyzePlanRequest_SparkVersion `protobuf:"bytes,10,opt,name=spark_version,json=sparkVersion,proto3,oneof"` +} + +type AnalyzePlanRequest_DdlParse struct { + DdlParse *AnalyzePlanRequest_DDLParse `protobuf:"bytes,11,opt,name=ddl_parse,json=ddlParse,proto3,oneof"` +} + +type AnalyzePlanRequest_SameSemantics_ struct { + SameSemantics *AnalyzePlanRequest_SameSemantics `protobuf:"bytes,12,opt,name=same_semantics,json=sameSemantics,proto3,oneof"` +} + +type AnalyzePlanRequest_SemanticHash_ struct { + SemanticHash *AnalyzePlanRequest_SemanticHash `protobuf:"bytes,13,opt,name=semantic_hash,json=semanticHash,proto3,oneof"` +} + +type AnalyzePlanRequest_Persist_ struct { + Persist *AnalyzePlanRequest_Persist `protobuf:"bytes,14,opt,name=persist,proto3,oneof"` +} + +type AnalyzePlanRequest_Unpersist_ struct { + Unpersist *AnalyzePlanRequest_Unpersist `protobuf:"bytes,15,opt,name=unpersist,proto3,oneof"` +} + +type AnalyzePlanRequest_GetStorageLevel_ struct { + GetStorageLevel *AnalyzePlanRequest_GetStorageLevel `protobuf:"bytes,16,opt,name=get_storage_level,json=getStorageLevel,proto3,oneof"` +} + +func (*AnalyzePlanRequest_Schema_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_Explain_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_TreeString_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_IsLocal_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_IsStreaming_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_InputFiles_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_SparkVersion_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_DdlParse) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_SameSemantics_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_SemanticHash_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_Persist_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_Unpersist_) isAnalyzePlanRequest_Analyze() {} + +func (*AnalyzePlanRequest_GetStorageLevel_) isAnalyzePlanRequest_Analyze() {} + +// Response to performing analysis of the query. Contains relevant metadata to be able to +// reason about the performance. +type AnalyzePlanResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // Types that are assignable to Result: + // + // *AnalyzePlanResponse_Schema_ + // *AnalyzePlanResponse_Explain_ + // *AnalyzePlanResponse_TreeString_ + // *AnalyzePlanResponse_IsLocal_ + // *AnalyzePlanResponse_IsStreaming_ + // *AnalyzePlanResponse_InputFiles_ + // *AnalyzePlanResponse_SparkVersion_ + // *AnalyzePlanResponse_DdlParse + // *AnalyzePlanResponse_SameSemantics_ + // *AnalyzePlanResponse_SemanticHash_ + // *AnalyzePlanResponse_Persist_ + // *AnalyzePlanResponse_Unpersist_ + // *AnalyzePlanResponse_GetStorageLevel_ + Result isAnalyzePlanResponse_Result `protobuf_oneof:"result"` +} + +func (x *AnalyzePlanResponse) Reset() { + *x = AnalyzePlanResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse) ProtoMessage() {} + +func (x *AnalyzePlanResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanResponse.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3} +} + +func (x *AnalyzePlanResponse) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (m *AnalyzePlanResponse) GetResult() isAnalyzePlanResponse_Result { + if m != nil { + return m.Result + } + return nil +} + +func (x *AnalyzePlanResponse) GetSchema() *AnalyzePlanResponse_Schema { + if x, ok := x.GetResult().(*AnalyzePlanResponse_Schema_); ok { + return x.Schema + } + return nil +} + +func (x *AnalyzePlanResponse) GetExplain() *AnalyzePlanResponse_Explain { + if x, ok := x.GetResult().(*AnalyzePlanResponse_Explain_); ok { + return x.Explain + } + return nil +} + +func (x *AnalyzePlanResponse) GetTreeString() *AnalyzePlanResponse_TreeString { + if x, ok := x.GetResult().(*AnalyzePlanResponse_TreeString_); ok { + return x.TreeString + } + return nil +} + +func (x *AnalyzePlanResponse) GetIsLocal() *AnalyzePlanResponse_IsLocal { + if x, ok := x.GetResult().(*AnalyzePlanResponse_IsLocal_); ok { + return x.IsLocal + } + return nil +} + +func (x *AnalyzePlanResponse) GetIsStreaming() *AnalyzePlanResponse_IsStreaming { + if x, ok := x.GetResult().(*AnalyzePlanResponse_IsStreaming_); ok { + return x.IsStreaming + } + return nil +} + +func (x *AnalyzePlanResponse) GetInputFiles() *AnalyzePlanResponse_InputFiles { + if x, ok := x.GetResult().(*AnalyzePlanResponse_InputFiles_); ok { + return x.InputFiles + } + return nil +} + +func (x *AnalyzePlanResponse) GetSparkVersion() *AnalyzePlanResponse_SparkVersion { + if x, ok := x.GetResult().(*AnalyzePlanResponse_SparkVersion_); ok { + return x.SparkVersion + } + return nil +} + +func (x *AnalyzePlanResponse) GetDdlParse() *AnalyzePlanResponse_DDLParse { + if x, ok := x.GetResult().(*AnalyzePlanResponse_DdlParse); ok { + return x.DdlParse + } + return nil +} + +func (x *AnalyzePlanResponse) GetSameSemantics() *AnalyzePlanResponse_SameSemantics { + if x, ok := x.GetResult().(*AnalyzePlanResponse_SameSemantics_); ok { + return x.SameSemantics + } + return nil +} + +func (x *AnalyzePlanResponse) GetSemanticHash() *AnalyzePlanResponse_SemanticHash { + if x, ok := x.GetResult().(*AnalyzePlanResponse_SemanticHash_); ok { + return x.SemanticHash + } + return nil +} + +func (x *AnalyzePlanResponse) GetPersist() *AnalyzePlanResponse_Persist { + if x, ok := x.GetResult().(*AnalyzePlanResponse_Persist_); ok { + return x.Persist + } + return nil +} + +func (x *AnalyzePlanResponse) GetUnpersist() *AnalyzePlanResponse_Unpersist { + if x, ok := x.GetResult().(*AnalyzePlanResponse_Unpersist_); ok { + return x.Unpersist + } + return nil +} + +func (x *AnalyzePlanResponse) GetGetStorageLevel() *AnalyzePlanResponse_GetStorageLevel { + if x, ok := x.GetResult().(*AnalyzePlanResponse_GetStorageLevel_); ok { + return x.GetStorageLevel + } + return nil +} + +type isAnalyzePlanResponse_Result interface { + isAnalyzePlanResponse_Result() +} + +type AnalyzePlanResponse_Schema_ struct { + Schema *AnalyzePlanResponse_Schema `protobuf:"bytes,2,opt,name=schema,proto3,oneof"` +} + +type AnalyzePlanResponse_Explain_ struct { + Explain *AnalyzePlanResponse_Explain `protobuf:"bytes,3,opt,name=explain,proto3,oneof"` +} + +type AnalyzePlanResponse_TreeString_ struct { + TreeString *AnalyzePlanResponse_TreeString `protobuf:"bytes,4,opt,name=tree_string,json=treeString,proto3,oneof"` +} + +type AnalyzePlanResponse_IsLocal_ struct { + IsLocal *AnalyzePlanResponse_IsLocal `protobuf:"bytes,5,opt,name=is_local,json=isLocal,proto3,oneof"` +} + +type AnalyzePlanResponse_IsStreaming_ struct { + IsStreaming *AnalyzePlanResponse_IsStreaming `protobuf:"bytes,6,opt,name=is_streaming,json=isStreaming,proto3,oneof"` +} + +type AnalyzePlanResponse_InputFiles_ struct { + InputFiles *AnalyzePlanResponse_InputFiles `protobuf:"bytes,7,opt,name=input_files,json=inputFiles,proto3,oneof"` +} + +type AnalyzePlanResponse_SparkVersion_ struct { + SparkVersion *AnalyzePlanResponse_SparkVersion `protobuf:"bytes,8,opt,name=spark_version,json=sparkVersion,proto3,oneof"` +} + +type AnalyzePlanResponse_DdlParse struct { + DdlParse *AnalyzePlanResponse_DDLParse `protobuf:"bytes,9,opt,name=ddl_parse,json=ddlParse,proto3,oneof"` +} + +type AnalyzePlanResponse_SameSemantics_ struct { + SameSemantics *AnalyzePlanResponse_SameSemantics `protobuf:"bytes,10,opt,name=same_semantics,json=sameSemantics,proto3,oneof"` +} + +type AnalyzePlanResponse_SemanticHash_ struct { + SemanticHash *AnalyzePlanResponse_SemanticHash `protobuf:"bytes,11,opt,name=semantic_hash,json=semanticHash,proto3,oneof"` +} + +type AnalyzePlanResponse_Persist_ struct { + Persist *AnalyzePlanResponse_Persist `protobuf:"bytes,12,opt,name=persist,proto3,oneof"` +} + +type AnalyzePlanResponse_Unpersist_ struct { + Unpersist *AnalyzePlanResponse_Unpersist `protobuf:"bytes,13,opt,name=unpersist,proto3,oneof"` +} + +type AnalyzePlanResponse_GetStorageLevel_ struct { + GetStorageLevel *AnalyzePlanResponse_GetStorageLevel `protobuf:"bytes,14,opt,name=get_storage_level,json=getStorageLevel,proto3,oneof"` +} + +func (*AnalyzePlanResponse_Schema_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_Explain_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_TreeString_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_IsLocal_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_IsStreaming_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_InputFiles_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_SparkVersion_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_DdlParse) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_SameSemantics_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_SemanticHash_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_Persist_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_Unpersist_) isAnalyzePlanResponse_Result() {} + +func (*AnalyzePlanResponse_GetStorageLevel_) isAnalyzePlanResponse_Result() {} + +// A request to be executed by the service. +type ExecutePlanRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // (Required) User context + // + // user_context.user_id and session+id both identify a unique remote spark session on the + // server side. + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // (Required) The logical plan to be executed / analyzed. + Plan *Plan `protobuf:"bytes,3,opt,name=plan,proto3" json:"plan,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,4,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` + // Repeated element for options that can be passed to the request. This element is currently + // unused but allows to pass in an extension value used for arbitrary options. + RequestOptions []*ExecutePlanRequest_RequestOption `protobuf:"bytes,5,rep,name=request_options,json=requestOptions,proto3" json:"request_options,omitempty"` +} + +func (x *ExecutePlanRequest) Reset() { + *x = ExecutePlanRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanRequest) ProtoMessage() {} + +func (x *ExecutePlanRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ExecutePlanRequest.ProtoReflect.Descriptor instead. +func (*ExecutePlanRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{4} +} + +func (x *ExecutePlanRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *ExecutePlanRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *ExecutePlanRequest) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +func (x *ExecutePlanRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +func (x *ExecutePlanRequest) GetRequestOptions() []*ExecutePlanRequest_RequestOption { + if x != nil { + return x.RequestOptions + } + return nil +} + +// The response of a query, can be one or more for each request. Responses belonging to the +// same input query, carry the same `session_id`. +type ExecutePlanResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // Union type for the different response messages. + // + // Types that are assignable to ResponseType: + // + // *ExecutePlanResponse_ArrowBatch_ + // *ExecutePlanResponse_SqlCommandResult_ + // *ExecutePlanResponse_WriteStreamOperationStartResult + // *ExecutePlanResponse_StreamingQueryCommandResult + // *ExecutePlanResponse_GetResourcesCommandResult + // *ExecutePlanResponse_StreamingQueryManagerCommandResult + // *ExecutePlanResponse_Extension + ResponseType isExecutePlanResponse_ResponseType `protobuf_oneof:"response_type"` + // Metrics for the query execution. Typically, this field is only present in the last + // batch of results and then represent the overall state of the query execution. + Metrics *ExecutePlanResponse_Metrics `protobuf:"bytes,4,opt,name=metrics,proto3" json:"metrics,omitempty"` + // The metrics observed during the execution of the query plan. + ObservedMetrics []*ExecutePlanResponse_ObservedMetrics `protobuf:"bytes,6,rep,name=observed_metrics,json=observedMetrics,proto3" json:"observed_metrics,omitempty"` + // (Optional) The Spark schema. This field is available when `collect` is called. + Schema *DataType `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"` +} + +func (x *ExecutePlanResponse) Reset() { + *x = ExecutePlanResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse) ProtoMessage() {} + +func (x *ExecutePlanResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ExecutePlanResponse.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5} +} + +func (x *ExecutePlanResponse) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (m *ExecutePlanResponse) GetResponseType() isExecutePlanResponse_ResponseType { + if m != nil { + return m.ResponseType + } + return nil +} + +func (x *ExecutePlanResponse) GetArrowBatch() *ExecutePlanResponse_ArrowBatch { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_ArrowBatch_); ok { + return x.ArrowBatch + } + return nil +} + +func (x *ExecutePlanResponse) GetSqlCommandResult() *ExecutePlanResponse_SqlCommandResult { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_SqlCommandResult_); ok { + return x.SqlCommandResult + } + return nil +} + +func (x *ExecutePlanResponse) GetWriteStreamOperationStartResult() *WriteStreamOperationStartResult { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_WriteStreamOperationStartResult); ok { + return x.WriteStreamOperationStartResult + } + return nil +} + +func (x *ExecutePlanResponse) GetStreamingQueryCommandResult() *StreamingQueryCommandResult { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_StreamingQueryCommandResult); ok { + return x.StreamingQueryCommandResult + } + return nil +} + +func (x *ExecutePlanResponse) GetGetResourcesCommandResult() *GetResourcesCommandResult { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_GetResourcesCommandResult); ok { + return x.GetResourcesCommandResult + } + return nil +} + +func (x *ExecutePlanResponse) GetStreamingQueryManagerCommandResult() *StreamingQueryManagerCommandResult { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_StreamingQueryManagerCommandResult); ok { + return x.StreamingQueryManagerCommandResult + } + return nil +} + +func (x *ExecutePlanResponse) GetExtension() *anypb.Any { + if x, ok := x.GetResponseType().(*ExecutePlanResponse_Extension); ok { + return x.Extension + } + return nil +} + +func (x *ExecutePlanResponse) GetMetrics() *ExecutePlanResponse_Metrics { + if x != nil { + return x.Metrics + } + return nil +} + +func (x *ExecutePlanResponse) GetObservedMetrics() []*ExecutePlanResponse_ObservedMetrics { + if x != nil { + return x.ObservedMetrics + } + return nil +} + +func (x *ExecutePlanResponse) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +type isExecutePlanResponse_ResponseType interface { + isExecutePlanResponse_ResponseType() +} + +type ExecutePlanResponse_ArrowBatch_ struct { + ArrowBatch *ExecutePlanResponse_ArrowBatch `protobuf:"bytes,2,opt,name=arrow_batch,json=arrowBatch,proto3,oneof"` +} + +type ExecutePlanResponse_SqlCommandResult_ struct { + // Special case for executing SQL commands. + SqlCommandResult *ExecutePlanResponse_SqlCommandResult `protobuf:"bytes,5,opt,name=sql_command_result,json=sqlCommandResult,proto3,oneof"` +} + +type ExecutePlanResponse_WriteStreamOperationStartResult struct { + // Response for a streaming query. + WriteStreamOperationStartResult *WriteStreamOperationStartResult `protobuf:"bytes,8,opt,name=write_stream_operation_start_result,json=writeStreamOperationStartResult,proto3,oneof"` +} + +type ExecutePlanResponse_StreamingQueryCommandResult struct { + // Response for commands on a streaming query. + StreamingQueryCommandResult *StreamingQueryCommandResult `protobuf:"bytes,9,opt,name=streaming_query_command_result,json=streamingQueryCommandResult,proto3,oneof"` +} + +type ExecutePlanResponse_GetResourcesCommandResult struct { + // Response for 'SparkContext.resources'. + GetResourcesCommandResult *GetResourcesCommandResult `protobuf:"bytes,10,opt,name=get_resources_command_result,json=getResourcesCommandResult,proto3,oneof"` +} + +type ExecutePlanResponse_StreamingQueryManagerCommandResult struct { + // Response for commands on the streaming query manager. + StreamingQueryManagerCommandResult *StreamingQueryManagerCommandResult `protobuf:"bytes,11,opt,name=streaming_query_manager_command_result,json=streamingQueryManagerCommandResult,proto3,oneof"` +} + +type ExecutePlanResponse_Extension struct { + // Support arbitrary result objects. + Extension *anypb.Any `protobuf:"bytes,999,opt,name=extension,proto3,oneof"` +} + +func (*ExecutePlanResponse_ArrowBatch_) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_SqlCommandResult_) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_WriteStreamOperationStartResult) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_StreamingQueryCommandResult) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_GetResourcesCommandResult) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_StreamingQueryManagerCommandResult) isExecutePlanResponse_ResponseType() {} + +func (*ExecutePlanResponse_Extension) isExecutePlanResponse_ResponseType() {} + +// The key-value pair for the config request and response. +type KeyValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The key. + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // (Optional) The value. + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *KeyValue) Reset() { + *x = KeyValue{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeyValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeyValue) ProtoMessage() {} + +func (x *KeyValue) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 KeyValue.ProtoReflect.Descriptor instead. +func (*KeyValue) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{6} +} + +func (x *KeyValue) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *KeyValue) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// Request to update or fetch the configurations. +type ConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // (Required) User context + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // (Required) The operation for the config. + Operation *ConfigRequest_Operation `protobuf:"bytes,3,opt,name=operation,proto3" json:"operation,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,4,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` +} + +func (x *ConfigRequest) Reset() { + *x = ConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest) ProtoMessage() {} + +func (x *ConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ConfigRequest.ProtoReflect.Descriptor instead. +func (*ConfigRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7} +} + +func (x *ConfigRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *ConfigRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *ConfigRequest) GetOperation() *ConfigRequest_Operation { + if x != nil { + return x.Operation + } + return nil +} + +func (x *ConfigRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +// Response to the config request. +type ConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // (Optional) The result key-value pairs. + // + // Available when the operation is 'Get', 'GetWithDefault', 'GetOption', 'GetAll'. + // Also available for the operation 'IsModifiable' with boolean string "true" and "false". + Pairs []*KeyValue `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"` + // (Optional) + // + // Warning messages for deprecated or unsupported configurations. + Warnings []string `protobuf:"bytes,3,rep,name=warnings,proto3" json:"warnings,omitempty"` +} + +func (x *ConfigResponse) Reset() { + *x = ConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigResponse) ProtoMessage() {} + +func (x *ConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ConfigResponse.ProtoReflect.Descriptor instead. +func (*ConfigResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{8} +} + +func (x *ConfigResponse) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *ConfigResponse) GetPairs() []*KeyValue { + if x != nil { + return x.Pairs + } + return nil +} + +func (x *ConfigResponse) GetWarnings() []string { + if x != nil { + return x.Warnings + } + return nil +} + +// Request to transfer client-local artifacts. +type AddArtifactsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // User context + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,6,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` + // The payload is either a batch of artifacts or a partial chunk of a large artifact. + // + // Types that are assignable to Payload: + // + // *AddArtifactsRequest_Batch_ + // *AddArtifactsRequest_BeginChunk + // *AddArtifactsRequest_Chunk + Payload isAddArtifactsRequest_Payload `protobuf_oneof:"payload"` +} + +func (x *AddArtifactsRequest) Reset() { + *x = AddArtifactsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsRequest) ProtoMessage() {} + +func (x *AddArtifactsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AddArtifactsRequest.ProtoReflect.Descriptor instead. +func (*AddArtifactsRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{9} +} + +func (x *AddArtifactsRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *AddArtifactsRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *AddArtifactsRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +func (m *AddArtifactsRequest) GetPayload() isAddArtifactsRequest_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (x *AddArtifactsRequest) GetBatch() *AddArtifactsRequest_Batch { + if x, ok := x.GetPayload().(*AddArtifactsRequest_Batch_); ok { + return x.Batch + } + return nil +} + +func (x *AddArtifactsRequest) GetBeginChunk() *AddArtifactsRequest_BeginChunkedArtifact { + if x, ok := x.GetPayload().(*AddArtifactsRequest_BeginChunk); ok { + return x.BeginChunk + } + return nil +} + +func (x *AddArtifactsRequest) GetChunk() *AddArtifactsRequest_ArtifactChunk { + if x, ok := x.GetPayload().(*AddArtifactsRequest_Chunk); ok { + return x.Chunk + } + return nil +} + +type isAddArtifactsRequest_Payload interface { + isAddArtifactsRequest_Payload() +} + +type AddArtifactsRequest_Batch_ struct { + Batch *AddArtifactsRequest_Batch `protobuf:"bytes,3,opt,name=batch,proto3,oneof"` +} + +type AddArtifactsRequest_BeginChunk struct { + // The metadata and the initial chunk of a large artifact chunked into multiple requests. + // The server side is notified about the total size of the large artifact as well as the + // number of chunks to expect. + BeginChunk *AddArtifactsRequest_BeginChunkedArtifact `protobuf:"bytes,4,opt,name=begin_chunk,json=beginChunk,proto3,oneof"` +} + +type AddArtifactsRequest_Chunk struct { + // A chunk of an artifact excluding metadata. This can be any chunk of a large artifact + // excluding the first chunk (which is included in `BeginChunkedArtifact`). + Chunk *AddArtifactsRequest_ArtifactChunk `protobuf:"bytes,5,opt,name=chunk,proto3,oneof"` +} + +func (*AddArtifactsRequest_Batch_) isAddArtifactsRequest_Payload() {} + +func (*AddArtifactsRequest_BeginChunk) isAddArtifactsRequest_Payload() {} + +func (*AddArtifactsRequest_Chunk) isAddArtifactsRequest_Payload() {} + +// Response to adding an artifact. Contains relevant metadata to verify successful transfer of +// artifact(s). +type AddArtifactsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of artifact(s) seen by the server. + Artifacts []*AddArtifactsResponse_ArtifactSummary `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` +} + +func (x *AddArtifactsResponse) Reset() { + *x = AddArtifactsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsResponse) ProtoMessage() {} + +func (x *AddArtifactsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AddArtifactsResponse.ProtoReflect.Descriptor instead. +func (*AddArtifactsResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{10} +} + +func (x *AddArtifactsResponse) GetArtifacts() []*AddArtifactsResponse_ArtifactSummary { + if x != nil { + return x.Artifacts + } + return nil +} + +// Request to get current statuses of artifacts at the server side. +type ArtifactStatusesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // User context + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,3,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` + // The name of the artifact is expected in the form of a "Relative Path" that is made up of a + // sequence of directories and the final file element. + // Examples of "Relative Path"s: "jars/test.jar", "classes/xyz.class", "abc.xyz", "a/b/X.jar". + // The server is expected to maintain the hierarchy of files as defined by their name. (i.e + // The relative path of the file on the server's filesystem will be the same as the name of + // the provided artifact) + Names []string `protobuf:"bytes,4,rep,name=names,proto3" json:"names,omitempty"` +} + +func (x *ArtifactStatusesRequest) Reset() { + *x = ArtifactStatusesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtifactStatusesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtifactStatusesRequest) ProtoMessage() {} + +func (x *ArtifactStatusesRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ArtifactStatusesRequest.ProtoReflect.Descriptor instead. +func (*ArtifactStatusesRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{11} +} + +func (x *ArtifactStatusesRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *ArtifactStatusesRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *ArtifactStatusesRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +func (x *ArtifactStatusesRequest) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +// Response to checking artifact statuses. +type ArtifactStatusesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A map of artifact names to their statuses. + Statuses map[string]*ArtifactStatusesResponse_ArtifactStatus `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ArtifactStatusesResponse) Reset() { + *x = ArtifactStatusesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtifactStatusesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtifactStatusesResponse) ProtoMessage() {} + +func (x *ArtifactStatusesResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 ArtifactStatusesResponse.ProtoReflect.Descriptor instead. +func (*ArtifactStatusesResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{12} +} + +func (x *ArtifactStatusesResponse) GetStatuses() map[string]*ArtifactStatusesResponse_ArtifactStatus { + if x != nil { + return x.Statuses + } + return nil +} + +type InterruptRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + // + // The session_id specifies a spark session for a user id (which is specified + // by user_context.user_id). The session_id is set by the client to be able to + // collate streaming responses from different queries within the dedicated session. + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // (Required) User context + UserContext *UserContext `protobuf:"bytes,2,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"` + // Provides optional information about the client sending the request. This field + // can be used for language or version specific information and is only intended for + // logging purposes and will not be interpreted by the server. + ClientType *string `protobuf:"bytes,3,opt,name=client_type,json=clientType,proto3,oneof" json:"client_type,omitempty"` + // (Required) The type of interrupt to execute. + InterruptType InterruptRequest_InterruptType `protobuf:"varint,4,opt,name=interrupt_type,json=interruptType,proto3,enum=spark.connect.InterruptRequest_InterruptType" json:"interrupt_type,omitempty"` +} + +func (x *InterruptRequest) Reset() { + *x = InterruptRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterruptRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterruptRequest) ProtoMessage() {} + +func (x *InterruptRequest) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 InterruptRequest.ProtoReflect.Descriptor instead. +func (*InterruptRequest) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{13} +} + +func (x *InterruptRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *InterruptRequest) GetUserContext() *UserContext { + if x != nil { + return x.UserContext + } + return nil +} + +func (x *InterruptRequest) GetClientType() string { + if x != nil && x.ClientType != nil { + return *x.ClientType + } + return "" +} + +func (x *InterruptRequest) GetInterruptType() InterruptRequest_InterruptType { + if x != nil { + return x.InterruptType + } + return InterruptRequest_INTERRUPT_TYPE_UNSPECIFIED +} + +type InterruptResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` +} + +func (x *InterruptResponse) Reset() { + *x = InterruptResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterruptResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterruptResponse) ProtoMessage() {} + +func (x *InterruptResponse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 InterruptResponse.ProtoReflect.Descriptor instead. +func (*InterruptResponse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{14} +} + +func (x *InterruptResponse) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +type AnalyzePlanRequest_Schema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (x *AnalyzePlanRequest_Schema) Reset() { + *x = AnalyzePlanRequest_Schema{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_Schema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_Schema) ProtoMessage() {} + +func (x *AnalyzePlanRequest_Schema) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_Schema.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_Schema) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *AnalyzePlanRequest_Schema) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +// Explains the input plan based on a configurable mode. +type AnalyzePlanRequest_Explain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + // (Required) For analyzePlan rpc calls, configure the mode to explain plan in strings. + ExplainMode AnalyzePlanRequest_Explain_ExplainMode `protobuf:"varint,2,opt,name=explain_mode,json=explainMode,proto3,enum=spark.connect.AnalyzePlanRequest_Explain_ExplainMode" json:"explain_mode,omitempty"` +} + +func (x *AnalyzePlanRequest_Explain) Reset() { + *x = AnalyzePlanRequest_Explain{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_Explain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_Explain) ProtoMessage() {} + +func (x *AnalyzePlanRequest_Explain) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_Explain.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_Explain) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 1} +} + +func (x *AnalyzePlanRequest_Explain) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +func (x *AnalyzePlanRequest_Explain) GetExplainMode() AnalyzePlanRequest_Explain_ExplainMode { + if x != nil { + return x.ExplainMode + } + return AnalyzePlanRequest_Explain_EXPLAIN_MODE_UNSPECIFIED +} + +type AnalyzePlanRequest_TreeString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + // (Optional) Max level of the schema. + Level *int32 `protobuf:"varint,2,opt,name=level,proto3,oneof" json:"level,omitempty"` +} + +func (x *AnalyzePlanRequest_TreeString) Reset() { + *x = AnalyzePlanRequest_TreeString{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_TreeString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_TreeString) ProtoMessage() {} + +func (x *AnalyzePlanRequest_TreeString) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_TreeString.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_TreeString) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 2} +} + +func (x *AnalyzePlanRequest_TreeString) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +func (x *AnalyzePlanRequest_TreeString) GetLevel() int32 { + if x != nil && x.Level != nil { + return *x.Level + } + return 0 +} + +type AnalyzePlanRequest_IsLocal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (x *AnalyzePlanRequest_IsLocal) Reset() { + *x = AnalyzePlanRequest_IsLocal{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_IsLocal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_IsLocal) ProtoMessage() {} + +func (x *AnalyzePlanRequest_IsLocal) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_IsLocal.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_IsLocal) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 3} +} + +func (x *AnalyzePlanRequest_IsLocal) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +type AnalyzePlanRequest_IsStreaming struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (x *AnalyzePlanRequest_IsStreaming) Reset() { + *x = AnalyzePlanRequest_IsStreaming{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_IsStreaming) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_IsStreaming) ProtoMessage() {} + +func (x *AnalyzePlanRequest_IsStreaming) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_IsStreaming.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_IsStreaming) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 4} +} + +func (x *AnalyzePlanRequest_IsStreaming) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +type AnalyzePlanRequest_InputFiles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to be analyzed. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (x *AnalyzePlanRequest_InputFiles) Reset() { + *x = AnalyzePlanRequest_InputFiles{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_InputFiles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_InputFiles) ProtoMessage() {} + +func (x *AnalyzePlanRequest_InputFiles) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_InputFiles.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_InputFiles) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 5} +} + +func (x *AnalyzePlanRequest_InputFiles) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +type AnalyzePlanRequest_SparkVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AnalyzePlanRequest_SparkVersion) Reset() { + *x = AnalyzePlanRequest_SparkVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_SparkVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_SparkVersion) ProtoMessage() {} + +func (x *AnalyzePlanRequest_SparkVersion) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_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 AnalyzePlanRequest_SparkVersion.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_SparkVersion) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 6} +} + +type AnalyzePlanRequest_DDLParse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The DDL formatted string to be parsed. + DdlString string `protobuf:"bytes,1,opt,name=ddl_string,json=ddlString,proto3" json:"ddl_string,omitempty"` +} + +func (x *AnalyzePlanRequest_DDLParse) Reset() { + *x = AnalyzePlanRequest_DDLParse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_DDLParse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_DDLParse) ProtoMessage() {} + +func (x *AnalyzePlanRequest_DDLParse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[22] + 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 AnalyzePlanRequest_DDLParse.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_DDLParse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 7} +} + +func (x *AnalyzePlanRequest_DDLParse) GetDdlString() string { + if x != nil { + return x.DdlString + } + return "" +} + +// Returns `true` when the logical query plans are equal and therefore return same results. +type AnalyzePlanRequest_SameSemantics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The plan to be compared. + TargetPlan *Plan `protobuf:"bytes,1,opt,name=target_plan,json=targetPlan,proto3" json:"target_plan,omitempty"` + // (Required) The other plan to be compared. + OtherPlan *Plan `protobuf:"bytes,2,opt,name=other_plan,json=otherPlan,proto3" json:"other_plan,omitempty"` +} + +func (x *AnalyzePlanRequest_SameSemantics) Reset() { + *x = AnalyzePlanRequest_SameSemantics{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_SameSemantics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_SameSemantics) ProtoMessage() {} + +func (x *AnalyzePlanRequest_SameSemantics) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[23] + 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 AnalyzePlanRequest_SameSemantics.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_SameSemantics) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 8} +} + +func (x *AnalyzePlanRequest_SameSemantics) GetTargetPlan() *Plan { + if x != nil { + return x.TargetPlan + } + return nil +} + +func (x *AnalyzePlanRequest_SameSemantics) GetOtherPlan() *Plan { + if x != nil { + return x.OtherPlan + } + return nil +} + +type AnalyzePlanRequest_SemanticHash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to get a hashCode. + Plan *Plan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` +} + +func (x *AnalyzePlanRequest_SemanticHash) Reset() { + *x = AnalyzePlanRequest_SemanticHash{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_SemanticHash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_SemanticHash) ProtoMessage() {} + +func (x *AnalyzePlanRequest_SemanticHash) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[24] + 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 AnalyzePlanRequest_SemanticHash.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_SemanticHash) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 9} +} + +func (x *AnalyzePlanRequest_SemanticHash) GetPlan() *Plan { + if x != nil { + return x.Plan + } + return nil +} + +type AnalyzePlanRequest_Persist struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to persist. + Relation *Relation `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` + // (Optional) The storage level. + StorageLevel *StorageLevel `protobuf:"bytes,2,opt,name=storage_level,json=storageLevel,proto3,oneof" json:"storage_level,omitempty"` +} + +func (x *AnalyzePlanRequest_Persist) Reset() { + *x = AnalyzePlanRequest_Persist{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_Persist) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_Persist) ProtoMessage() {} + +func (x *AnalyzePlanRequest_Persist) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[25] + 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 AnalyzePlanRequest_Persist.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_Persist) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 10} +} + +func (x *AnalyzePlanRequest_Persist) GetRelation() *Relation { + if x != nil { + return x.Relation + } + return nil +} + +func (x *AnalyzePlanRequest_Persist) GetStorageLevel() *StorageLevel { + if x != nil { + return x.StorageLevel + } + return nil +} + +type AnalyzePlanRequest_Unpersist struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to unpersist. + Relation *Relation `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` + // (Optional) Whether to block until all blocks are deleted. + Blocking *bool `protobuf:"varint,2,opt,name=blocking,proto3,oneof" json:"blocking,omitempty"` +} + +func (x *AnalyzePlanRequest_Unpersist) Reset() { + *x = AnalyzePlanRequest_Unpersist{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_Unpersist) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_Unpersist) ProtoMessage() {} + +func (x *AnalyzePlanRequest_Unpersist) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[26] + 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 AnalyzePlanRequest_Unpersist.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_Unpersist) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 11} +} + +func (x *AnalyzePlanRequest_Unpersist) GetRelation() *Relation { + if x != nil { + return x.Relation + } + return nil +} + +func (x *AnalyzePlanRequest_Unpersist) GetBlocking() bool { + if x != nil && x.Blocking != nil { + return *x.Blocking + } + return false +} + +type AnalyzePlanRequest_GetStorageLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The logical plan to get the storage level. + Relation *Relation `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` +} + +func (x *AnalyzePlanRequest_GetStorageLevel) Reset() { + *x = AnalyzePlanRequest_GetStorageLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanRequest_GetStorageLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanRequest_GetStorageLevel) ProtoMessage() {} + +func (x *AnalyzePlanRequest_GetStorageLevel) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[27] + 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 AnalyzePlanRequest_GetStorageLevel.ProtoReflect.Descriptor instead. +func (*AnalyzePlanRequest_GetStorageLevel) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{2, 12} +} + +func (x *AnalyzePlanRequest_GetStorageLevel) GetRelation() *Relation { + if x != nil { + return x.Relation + } + return nil +} + +type AnalyzePlanResponse_Schema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Schema *DataType `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` +} + +func (x *AnalyzePlanResponse_Schema) Reset() { + *x = AnalyzePlanResponse_Schema{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_Schema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_Schema) ProtoMessage() {} + +func (x *AnalyzePlanResponse_Schema) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[28] + 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 AnalyzePlanResponse_Schema.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_Schema) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *AnalyzePlanResponse_Schema) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +type AnalyzePlanResponse_Explain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExplainString string `protobuf:"bytes,1,opt,name=explain_string,json=explainString,proto3" json:"explain_string,omitempty"` +} + +func (x *AnalyzePlanResponse_Explain) Reset() { + *x = AnalyzePlanResponse_Explain{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_Explain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_Explain) ProtoMessage() {} + +func (x *AnalyzePlanResponse_Explain) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[29] + 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 AnalyzePlanResponse_Explain.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_Explain) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *AnalyzePlanResponse_Explain) GetExplainString() string { + if x != nil { + return x.ExplainString + } + return "" +} + +type AnalyzePlanResponse_TreeString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TreeString string `protobuf:"bytes,1,opt,name=tree_string,json=treeString,proto3" json:"tree_string,omitempty"` +} + +func (x *AnalyzePlanResponse_TreeString) Reset() { + *x = AnalyzePlanResponse_TreeString{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_TreeString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_TreeString) ProtoMessage() {} + +func (x *AnalyzePlanResponse_TreeString) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[30] + 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 AnalyzePlanResponse_TreeString.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_TreeString) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *AnalyzePlanResponse_TreeString) GetTreeString() string { + if x != nil { + return x.TreeString + } + return "" +} + +type AnalyzePlanResponse_IsLocal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsLocal bool `protobuf:"varint,1,opt,name=is_local,json=isLocal,proto3" json:"is_local,omitempty"` +} + +func (x *AnalyzePlanResponse_IsLocal) Reset() { + *x = AnalyzePlanResponse_IsLocal{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_IsLocal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_IsLocal) ProtoMessage() {} + +func (x *AnalyzePlanResponse_IsLocal) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[31] + 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 AnalyzePlanResponse_IsLocal.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_IsLocal) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 3} +} + +func (x *AnalyzePlanResponse_IsLocal) GetIsLocal() bool { + if x != nil { + return x.IsLocal + } + return false +} + +type AnalyzePlanResponse_IsStreaming struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsStreaming bool `protobuf:"varint,1,opt,name=is_streaming,json=isStreaming,proto3" json:"is_streaming,omitempty"` +} + +func (x *AnalyzePlanResponse_IsStreaming) Reset() { + *x = AnalyzePlanResponse_IsStreaming{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_IsStreaming) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_IsStreaming) ProtoMessage() {} + +func (x *AnalyzePlanResponse_IsStreaming) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[32] + 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 AnalyzePlanResponse_IsStreaming.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_IsStreaming) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 4} +} + +func (x *AnalyzePlanResponse_IsStreaming) GetIsStreaming() bool { + if x != nil { + return x.IsStreaming + } + return false +} + +type AnalyzePlanResponse_InputFiles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A best-effort snapshot of the files that compose this Dataset + Files []string `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` +} + +func (x *AnalyzePlanResponse_InputFiles) Reset() { + *x = AnalyzePlanResponse_InputFiles{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_InputFiles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_InputFiles) ProtoMessage() {} + +func (x *AnalyzePlanResponse_InputFiles) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[33] + 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 AnalyzePlanResponse_InputFiles.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_InputFiles) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 5} +} + +func (x *AnalyzePlanResponse_InputFiles) GetFiles() []string { + if x != nil { + return x.Files + } + return nil +} + +type AnalyzePlanResponse_SparkVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *AnalyzePlanResponse_SparkVersion) Reset() { + *x = AnalyzePlanResponse_SparkVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_SparkVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_SparkVersion) ProtoMessage() {} + +func (x *AnalyzePlanResponse_SparkVersion) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[34] + 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 AnalyzePlanResponse_SparkVersion.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_SparkVersion) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 6} +} + +func (x *AnalyzePlanResponse_SparkVersion) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type AnalyzePlanResponse_DDLParse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Parsed *DataType `protobuf:"bytes,1,opt,name=parsed,proto3" json:"parsed,omitempty"` +} + +func (x *AnalyzePlanResponse_DDLParse) Reset() { + *x = AnalyzePlanResponse_DDLParse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_DDLParse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_DDLParse) ProtoMessage() {} + +func (x *AnalyzePlanResponse_DDLParse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[35] + 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 AnalyzePlanResponse_DDLParse.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_DDLParse) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 7} +} + +func (x *AnalyzePlanResponse_DDLParse) GetParsed() *DataType { + if x != nil { + return x.Parsed + } + return nil +} + +type AnalyzePlanResponse_SameSemantics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *AnalyzePlanResponse_SameSemantics) Reset() { + *x = AnalyzePlanResponse_SameSemantics{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_SameSemantics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_SameSemantics) ProtoMessage() {} + +func (x *AnalyzePlanResponse_SameSemantics) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[36] + 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 AnalyzePlanResponse_SameSemantics.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_SameSemantics) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 8} +} + +func (x *AnalyzePlanResponse_SameSemantics) GetResult() bool { + if x != nil { + return x.Result + } + return false +} + +type AnalyzePlanResponse_SemanticHash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result int32 `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *AnalyzePlanResponse_SemanticHash) Reset() { + *x = AnalyzePlanResponse_SemanticHash{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_SemanticHash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_SemanticHash) ProtoMessage() {} + +func (x *AnalyzePlanResponse_SemanticHash) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[37] + 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 AnalyzePlanResponse_SemanticHash.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_SemanticHash) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 9} +} + +func (x *AnalyzePlanResponse_SemanticHash) GetResult() int32 { + if x != nil { + return x.Result + } + return 0 +} + +type AnalyzePlanResponse_Persist struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AnalyzePlanResponse_Persist) Reset() { + *x = AnalyzePlanResponse_Persist{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_Persist) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_Persist) ProtoMessage() {} + +func (x *AnalyzePlanResponse_Persist) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[38] + 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 AnalyzePlanResponse_Persist.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_Persist) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 10} +} + +type AnalyzePlanResponse_Unpersist struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AnalyzePlanResponse_Unpersist) Reset() { + *x = AnalyzePlanResponse_Unpersist{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_Unpersist) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_Unpersist) ProtoMessage() {} + +func (x *AnalyzePlanResponse_Unpersist) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[39] + 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 AnalyzePlanResponse_Unpersist.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_Unpersist) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 11} +} + +type AnalyzePlanResponse_GetStorageLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The StorageLevel as a result of get_storage_level request. + StorageLevel *StorageLevel `protobuf:"bytes,1,opt,name=storage_level,json=storageLevel,proto3" json:"storage_level,omitempty"` +} + +func (x *AnalyzePlanResponse_GetStorageLevel) Reset() { + *x = AnalyzePlanResponse_GetStorageLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzePlanResponse_GetStorageLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzePlanResponse_GetStorageLevel) ProtoMessage() {} + +func (x *AnalyzePlanResponse_GetStorageLevel) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[40] + 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 AnalyzePlanResponse_GetStorageLevel.ProtoReflect.Descriptor instead. +func (*AnalyzePlanResponse_GetStorageLevel) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{3, 12} +} + +func (x *AnalyzePlanResponse_GetStorageLevel) GetStorageLevel() *StorageLevel { + if x != nil { + return x.StorageLevel + } + return nil +} + +type ExecutePlanRequest_RequestOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to RequestOption: + // + // *ExecutePlanRequest_RequestOption_Extension + RequestOption isExecutePlanRequest_RequestOption_RequestOption `protobuf_oneof:"request_option"` +} + +func (x *ExecutePlanRequest_RequestOption) Reset() { + *x = ExecutePlanRequest_RequestOption{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanRequest_RequestOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanRequest_RequestOption) ProtoMessage() {} + +func (x *ExecutePlanRequest_RequestOption) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[41] + 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 ExecutePlanRequest_RequestOption.ProtoReflect.Descriptor instead. +func (*ExecutePlanRequest_RequestOption) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{4, 0} +} + +func (m *ExecutePlanRequest_RequestOption) GetRequestOption() isExecutePlanRequest_RequestOption_RequestOption { + if m != nil { + return m.RequestOption + } + return nil +} + +func (x *ExecutePlanRequest_RequestOption) GetExtension() *anypb.Any { + if x, ok := x.GetRequestOption().(*ExecutePlanRequest_RequestOption_Extension); ok { + return x.Extension + } + return nil +} + +type isExecutePlanRequest_RequestOption_RequestOption interface { + isExecutePlanRequest_RequestOption_RequestOption() +} + +type ExecutePlanRequest_RequestOption_Extension struct { + // Extension type for request options + Extension *anypb.Any `protobuf:"bytes,999,opt,name=extension,proto3,oneof"` +} + +func (*ExecutePlanRequest_RequestOption_Extension) isExecutePlanRequest_RequestOption_RequestOption() { +} + +// A SQL command returns an opaque Relation that can be directly used as input for the next +// call. +type ExecutePlanResponse_SqlCommandResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Relation *Relation `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` +} + +func (x *ExecutePlanResponse_SqlCommandResult) Reset() { + *x = ExecutePlanResponse_SqlCommandResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_SqlCommandResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_SqlCommandResult) ProtoMessage() {} + +func (x *ExecutePlanResponse_SqlCommandResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[42] + 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 ExecutePlanResponse_SqlCommandResult.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_SqlCommandResult) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *ExecutePlanResponse_SqlCommandResult) GetRelation() *Relation { + if x != nil { + return x.Relation + } + return nil +} + +// Batch results of metrics. +type ExecutePlanResponse_ArrowBatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RowCount int64 `protobuf:"varint,1,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *ExecutePlanResponse_ArrowBatch) Reset() { + *x = ExecutePlanResponse_ArrowBatch{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_ArrowBatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_ArrowBatch) ProtoMessage() {} + +func (x *ExecutePlanResponse_ArrowBatch) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[43] + 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 ExecutePlanResponse_ArrowBatch.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_ArrowBatch) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *ExecutePlanResponse_ArrowBatch) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +func (x *ExecutePlanResponse_ArrowBatch) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type ExecutePlanResponse_Metrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metrics []*ExecutePlanResponse_Metrics_MetricObject `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"` +} + +func (x *ExecutePlanResponse_Metrics) Reset() { + *x = ExecutePlanResponse_Metrics{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_Metrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_Metrics) ProtoMessage() {} + +func (x *ExecutePlanResponse_Metrics) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[44] + 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 ExecutePlanResponse_Metrics.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_Metrics) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 2} +} + +func (x *ExecutePlanResponse_Metrics) GetMetrics() []*ExecutePlanResponse_Metrics_MetricObject { + if x != nil { + return x.Metrics + } + return nil +} + +type ExecutePlanResponse_ObservedMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Values []*Expression_Literal `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *ExecutePlanResponse_ObservedMetrics) Reset() { + *x = ExecutePlanResponse_ObservedMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_ObservedMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_ObservedMetrics) ProtoMessage() {} + +func (x *ExecutePlanResponse_ObservedMetrics) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[45] + 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 ExecutePlanResponse_ObservedMetrics.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_ObservedMetrics) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 3} +} + +func (x *ExecutePlanResponse_ObservedMetrics) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ExecutePlanResponse_ObservedMetrics) GetValues() []*Expression_Literal { + if x != nil { + return x.Values + } + return nil +} + +type ExecutePlanResponse_Metrics_MetricObject struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + PlanId int64 `protobuf:"varint,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` + Parent int64 `protobuf:"varint,3,opt,name=parent,proto3" json:"parent,omitempty"` + ExecutionMetrics map[string]*ExecutePlanResponse_Metrics_MetricValue `protobuf:"bytes,4,rep,name=execution_metrics,json=executionMetrics,proto3" json:"execution_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) Reset() { + *x = ExecutePlanResponse_Metrics_MetricObject{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_Metrics_MetricObject) ProtoMessage() {} + +func (x *ExecutePlanResponse_Metrics_MetricObject) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[46] + 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 ExecutePlanResponse_Metrics_MetricObject.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_Metrics_MetricObject) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 2, 0} +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) GetPlanId() int64 { + if x != nil { + return x.PlanId + } + return 0 +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) GetParent() int64 { + if x != nil { + return x.Parent + } + return 0 +} + +func (x *ExecutePlanResponse_Metrics_MetricObject) GetExecutionMetrics() map[string]*ExecutePlanResponse_Metrics_MetricValue { + if x != nil { + return x.ExecutionMetrics + } + return nil +} + +type ExecutePlanResponse_Metrics_MetricValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` + MetricType string `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"` +} + +func (x *ExecutePlanResponse_Metrics_MetricValue) Reset() { + *x = ExecutePlanResponse_Metrics_MetricValue{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutePlanResponse_Metrics_MetricValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutePlanResponse_Metrics_MetricValue) ProtoMessage() {} + +func (x *ExecutePlanResponse_Metrics_MetricValue) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[47] + 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 ExecutePlanResponse_Metrics_MetricValue.ProtoReflect.Descriptor instead. +func (*ExecutePlanResponse_Metrics_MetricValue) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{5, 2, 1} +} + +func (x *ExecutePlanResponse_Metrics_MetricValue) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ExecutePlanResponse_Metrics_MetricValue) GetValue() int64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *ExecutePlanResponse_Metrics_MetricValue) GetMetricType() string { + if x != nil { + return x.MetricType + } + return "" +} + +type ConfigRequest_Operation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to OpType: + // + // *ConfigRequest_Operation_Set + // *ConfigRequest_Operation_Get + // *ConfigRequest_Operation_GetWithDefault + // *ConfigRequest_Operation_GetOption + // *ConfigRequest_Operation_GetAll + // *ConfigRequest_Operation_Unset + // *ConfigRequest_Operation_IsModifiable + OpType isConfigRequest_Operation_OpType `protobuf_oneof:"op_type"` +} + +func (x *ConfigRequest_Operation) Reset() { + *x = ConfigRequest_Operation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_Operation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_Operation) ProtoMessage() {} + +func (x *ConfigRequest_Operation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[49] + 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 ConfigRequest_Operation.ProtoReflect.Descriptor instead. +func (*ConfigRequest_Operation) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 0} +} + +func (m *ConfigRequest_Operation) GetOpType() isConfigRequest_Operation_OpType { + if m != nil { + return m.OpType + } + return nil +} + +func (x *ConfigRequest_Operation) GetSet() *ConfigRequest_Set { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_Set); ok { + return x.Set + } + return nil +} + +func (x *ConfigRequest_Operation) GetGet() *ConfigRequest_Get { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_Get); ok { + return x.Get + } + return nil +} + +func (x *ConfigRequest_Operation) GetGetWithDefault() *ConfigRequest_GetWithDefault { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_GetWithDefault); ok { + return x.GetWithDefault + } + return nil +} + +func (x *ConfigRequest_Operation) GetGetOption() *ConfigRequest_GetOption { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_GetOption); ok { + return x.GetOption + } + return nil +} + +func (x *ConfigRequest_Operation) GetGetAll() *ConfigRequest_GetAll { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_GetAll); ok { + return x.GetAll + } + return nil +} + +func (x *ConfigRequest_Operation) GetUnset() *ConfigRequest_Unset { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_Unset); ok { + return x.Unset + } + return nil +} + +func (x *ConfigRequest_Operation) GetIsModifiable() *ConfigRequest_IsModifiable { + if x, ok := x.GetOpType().(*ConfigRequest_Operation_IsModifiable); ok { + return x.IsModifiable + } + return nil +} + +type isConfigRequest_Operation_OpType interface { + isConfigRequest_Operation_OpType() +} + +type ConfigRequest_Operation_Set struct { + Set *ConfigRequest_Set `protobuf:"bytes,1,opt,name=set,proto3,oneof"` +} + +type ConfigRequest_Operation_Get struct { + Get *ConfigRequest_Get `protobuf:"bytes,2,opt,name=get,proto3,oneof"` +} + +type ConfigRequest_Operation_GetWithDefault struct { + GetWithDefault *ConfigRequest_GetWithDefault `protobuf:"bytes,3,opt,name=get_with_default,json=getWithDefault,proto3,oneof"` +} + +type ConfigRequest_Operation_GetOption struct { + GetOption *ConfigRequest_GetOption `protobuf:"bytes,4,opt,name=get_option,json=getOption,proto3,oneof"` +} + +type ConfigRequest_Operation_GetAll struct { + GetAll *ConfigRequest_GetAll `protobuf:"bytes,5,opt,name=get_all,json=getAll,proto3,oneof"` +} + +type ConfigRequest_Operation_Unset struct { + Unset *ConfigRequest_Unset `protobuf:"bytes,6,opt,name=unset,proto3,oneof"` +} + +type ConfigRequest_Operation_IsModifiable struct { + IsModifiable *ConfigRequest_IsModifiable `protobuf:"bytes,7,opt,name=is_modifiable,json=isModifiable,proto3,oneof"` +} + +func (*ConfigRequest_Operation_Set) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_Get) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_GetWithDefault) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_GetOption) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_GetAll) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_Unset) isConfigRequest_Operation_OpType() {} + +func (*ConfigRequest_Operation_IsModifiable) isConfigRequest_Operation_OpType() {} + +type ConfigRequest_Set struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config key-value pairs to set. + Pairs []*KeyValue `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"` +} + +func (x *ConfigRequest_Set) Reset() { + *x = ConfigRequest_Set{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_Set) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_Set) ProtoMessage() {} + +func (x *ConfigRequest_Set) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[50] + 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 ConfigRequest_Set.ProtoReflect.Descriptor instead. +func (*ConfigRequest_Set) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *ConfigRequest_Set) GetPairs() []*KeyValue { + if x != nil { + return x.Pairs + } + return nil +} + +type ConfigRequest_Get struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config keys to get. + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` +} + +func (x *ConfigRequest_Get) Reset() { + *x = ConfigRequest_Get{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_Get) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_Get) ProtoMessage() {} + +func (x *ConfigRequest_Get) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[51] + 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 ConfigRequest_Get.ProtoReflect.Descriptor instead. +func (*ConfigRequest_Get) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 2} +} + +func (x *ConfigRequest_Get) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type ConfigRequest_GetWithDefault struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config key-value paris to get. The value will be used as the default value. + Pairs []*KeyValue `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"` +} + +func (x *ConfigRequest_GetWithDefault) Reset() { + *x = ConfigRequest_GetWithDefault{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_GetWithDefault) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_GetWithDefault) ProtoMessage() {} + +func (x *ConfigRequest_GetWithDefault) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[52] + 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 ConfigRequest_GetWithDefault.ProtoReflect.Descriptor instead. +func (*ConfigRequest_GetWithDefault) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 3} +} + +func (x *ConfigRequest_GetWithDefault) GetPairs() []*KeyValue { + if x != nil { + return x.Pairs + } + return nil +} + +type ConfigRequest_GetOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config keys to get optionally. + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` +} + +func (x *ConfigRequest_GetOption) Reset() { + *x = ConfigRequest_GetOption{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_GetOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_GetOption) ProtoMessage() {} + +func (x *ConfigRequest_GetOption) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[53] + 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 ConfigRequest_GetOption.ProtoReflect.Descriptor instead. +func (*ConfigRequest_GetOption) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 4} +} + +func (x *ConfigRequest_GetOption) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type ConfigRequest_GetAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) The prefix of the config key to get. + Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` +} + +func (x *ConfigRequest_GetAll) Reset() { + *x = ConfigRequest_GetAll{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_GetAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_GetAll) ProtoMessage() {} + +func (x *ConfigRequest_GetAll) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[54] + 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 ConfigRequest_GetAll.ProtoReflect.Descriptor instead. +func (*ConfigRequest_GetAll) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 5} +} + +func (x *ConfigRequest_GetAll) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return "" +} + +type ConfigRequest_Unset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config keys to unset. + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` +} + +func (x *ConfigRequest_Unset) Reset() { + *x = ConfigRequest_Unset{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_Unset) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_Unset) ProtoMessage() {} + +func (x *ConfigRequest_Unset) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[55] + 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 ConfigRequest_Unset.ProtoReflect.Descriptor instead. +func (*ConfigRequest_Unset) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 6} +} + +func (x *ConfigRequest_Unset) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type ConfigRequest_IsModifiable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The config keys to check the config is modifiable. + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` +} + +func (x *ConfigRequest_IsModifiable) Reset() { + *x = ConfigRequest_IsModifiable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_IsModifiable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_IsModifiable) ProtoMessage() {} + +func (x *ConfigRequest_IsModifiable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[56] + 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 ConfigRequest_IsModifiable.ProtoReflect.Descriptor instead. +func (*ConfigRequest_IsModifiable) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{7, 7} +} + +func (x *ConfigRequest_IsModifiable) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +// A chunk of an Artifact. +type AddArtifactsRequest_ArtifactChunk struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Data chunk. + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + // CRC to allow server to verify integrity of the chunk. + Crc int64 `protobuf:"varint,2,opt,name=crc,proto3" json:"crc,omitempty"` +} + +func (x *AddArtifactsRequest_ArtifactChunk) Reset() { + *x = AddArtifactsRequest_ArtifactChunk{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsRequest_ArtifactChunk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsRequest_ArtifactChunk) ProtoMessage() {} + +func (x *AddArtifactsRequest_ArtifactChunk) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[57] + 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 AddArtifactsRequest_ArtifactChunk.ProtoReflect.Descriptor instead. +func (*AddArtifactsRequest_ArtifactChunk) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *AddArtifactsRequest_ArtifactChunk) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *AddArtifactsRequest_ArtifactChunk) GetCrc() int64 { + if x != nil { + return x.Crc + } + return 0 +} + +// An artifact that is contained in a single `ArtifactChunk`. +// Generally, this message represents tiny artifacts such as REPL-generated class files. +type AddArtifactsRequest_SingleChunkArtifact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the artifact is expected in the form of a "Relative Path" that is made up of a + // sequence of directories and the final file element. + // Examples of "Relative Path"s: "jars/test.jar", "classes/xyz.class", "abc.xyz", "a/b/X.jar". + // The server is expected to maintain the hierarchy of files as defined by their name. (i.e + // The relative path of the file on the server's filesystem will be the same as the name of + // the provided artifact) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A single data chunk. + Data *AddArtifactsRequest_ArtifactChunk `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *AddArtifactsRequest_SingleChunkArtifact) Reset() { + *x = AddArtifactsRequest_SingleChunkArtifact{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsRequest_SingleChunkArtifact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsRequest_SingleChunkArtifact) ProtoMessage() {} + +func (x *AddArtifactsRequest_SingleChunkArtifact) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[58] + 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 AddArtifactsRequest_SingleChunkArtifact.ProtoReflect.Descriptor instead. +func (*AddArtifactsRequest_SingleChunkArtifact) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{9, 1} +} + +func (x *AddArtifactsRequest_SingleChunkArtifact) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AddArtifactsRequest_SingleChunkArtifact) GetData() *AddArtifactsRequest_ArtifactChunk { + if x != nil { + return x.Data + } + return nil +} + +// A number of `SingleChunkArtifact` batched into a single RPC. +type AddArtifactsRequest_Batch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Artifacts []*AddArtifactsRequest_SingleChunkArtifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` +} + +func (x *AddArtifactsRequest_Batch) Reset() { + *x = AddArtifactsRequest_Batch{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsRequest_Batch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsRequest_Batch) ProtoMessage() {} + +func (x *AddArtifactsRequest_Batch) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[59] + 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 AddArtifactsRequest_Batch.ProtoReflect.Descriptor instead. +func (*AddArtifactsRequest_Batch) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{9, 2} +} + +func (x *AddArtifactsRequest_Batch) GetArtifacts() []*AddArtifactsRequest_SingleChunkArtifact { + if x != nil { + return x.Artifacts + } + return nil +} + +// Signals the beginning/start of a chunked artifact. +// A large artifact is transferred through a payload of `BeginChunkedArtifact` followed by a +// sequence of `ArtifactChunk`s. +type AddArtifactsRequest_BeginChunkedArtifact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the artifact undergoing chunking. Follows the same conventions as the `name` in + // the `Artifact` message. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Total size of the artifact in bytes. + TotalBytes int64 `protobuf:"varint,2,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` + // Number of chunks the artifact is split into. + // This includes the `initial_chunk`. + NumChunks int64 `protobuf:"varint,3,opt,name=num_chunks,json=numChunks,proto3" json:"num_chunks,omitempty"` + // The first/initial chunk. + InitialChunk *AddArtifactsRequest_ArtifactChunk `protobuf:"bytes,4,opt,name=initial_chunk,json=initialChunk,proto3" json:"initial_chunk,omitempty"` +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) Reset() { + *x = AddArtifactsRequest_BeginChunkedArtifact{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsRequest_BeginChunkedArtifact) ProtoMessage() {} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[60] + 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 AddArtifactsRequest_BeginChunkedArtifact.ProtoReflect.Descriptor instead. +func (*AddArtifactsRequest_BeginChunkedArtifact) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{9, 3} +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) GetTotalBytes() int64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) GetNumChunks() int64 { + if x != nil { + return x.NumChunks + } + return 0 +} + +func (x *AddArtifactsRequest_BeginChunkedArtifact) GetInitialChunk() *AddArtifactsRequest_ArtifactChunk { + if x != nil { + return x.InitialChunk + } + return nil +} + +// Metadata of an artifact. +type AddArtifactsResponse_ArtifactSummary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Whether the CRC (Cyclic Redundancy Check) is successful on server verification. + // The server discards any artifact that fails the CRC. + // If false, the client may choose to resend the artifact specified by `name`. + IsCrcSuccessful bool `protobuf:"varint,2,opt,name=is_crc_successful,json=isCrcSuccessful,proto3" json:"is_crc_successful,omitempty"` +} + +func (x *AddArtifactsResponse_ArtifactSummary) Reset() { + *x = AddArtifactsResponse_ArtifactSummary{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddArtifactsResponse_ArtifactSummary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddArtifactsResponse_ArtifactSummary) ProtoMessage() {} + +func (x *AddArtifactsResponse_ArtifactSummary) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[61] + 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 AddArtifactsResponse_ArtifactSummary.ProtoReflect.Descriptor instead. +func (*AddArtifactsResponse_ArtifactSummary) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{10, 0} +} + +func (x *AddArtifactsResponse_ArtifactSummary) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AddArtifactsResponse_ArtifactSummary) GetIsCrcSuccessful() bool { + if x != nil { + return x.IsCrcSuccessful + } + return false +} + +type ArtifactStatusesResponse_ArtifactStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Exists or not particular artifact at the server. + Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` +} + +func (x *ArtifactStatusesResponse_ArtifactStatus) Reset() { + *x = ArtifactStatusesResponse_ArtifactStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_base_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtifactStatusesResponse_ArtifactStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtifactStatusesResponse_ArtifactStatus) ProtoMessage() {} + +func (x *ArtifactStatusesResponse_ArtifactStatus) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_base_proto_msgTypes[62] + 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 ArtifactStatusesResponse_ArtifactStatus.ProtoReflect.Descriptor instead. +func (*ArtifactStatusesResponse_ArtifactStatus) Descriptor() ([]byte, []int) { + return file_spark_connect_base_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *ArtifactStatusesResponse_ArtifactStatus) GetExists() bool { + if x != nil { + return x.Exists + } + return false +} + +var File_spark_connect_base_proto protoreflect.FileDescriptor + +var file_spark_connect_base_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x04, 0x50, 0x6c, 0x61, + 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, + 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x7a, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf5, 0x12, 0x0a, 0x12, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x45, 0x0a, 0x07, 0x65, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, + 0x6e, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x65, 0x65, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x48, + 0x00, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x52, 0x0a, 0x0c, 0x69, 0x73, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x49, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x4f, + 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x55, 0x0a, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x64, 0x6c, 0x5f, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x44, 0x4c, + 0x50, 0x61, 0x72, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x64, 0x6c, 0x50, 0x61, 0x72, 0x73, + 0x65, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, + 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x73, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, + 0x73, 0x68, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x45, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x75, 0x6e, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x55, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x31, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x1a, 0xbb, 0x02, 0x0a, 0x07, 0x45, + 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, + 0x58, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, + 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x65, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x0b, 0x45, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, + 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x58, 0x50, 0x4c, 0x41, + 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, + 0x12, 0x19, 0x0a, 0x15, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x45, + 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x47, 0x45, 0x4e, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, + 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x4f, 0x52, + 0x4d, 0x41, 0x54, 0x54, 0x45, 0x44, 0x10, 0x05, 0x1a, 0x5a, 0x0a, 0x0a, 0x54, 0x72, 0x65, 0x65, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, + 0x19, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x32, 0x0a, 0x07, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, + 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x1a, 0x36, 0x0a, 0x0b, 0x49, 0x73, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, + 0x1a, 0x35, 0x0a, 0x0a, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x27, + 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x1a, 0x0e, 0x0a, 0x0c, 0x53, 0x70, 0x61, 0x72, 0x6b, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x29, 0x0a, 0x08, 0x44, 0x44, 0x4c, 0x50, 0x61, + 0x72, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x64, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x64, 0x6c, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x1a, 0x79, 0x0a, 0x0d, 0x53, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, + 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x0a, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x09, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x1a, 0x37, 0x0a, + 0x0c, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x0a, + 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x1a, 0x97, 0x01, 0x0a, 0x07, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x1a, 0x6e, 0x0a, 0x09, 0x55, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, + 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x1a, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x99, 0x0d, 0x0a, 0x13, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x46, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x07, + 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x72, 0x65, 0x65, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x74, + 0x72, 0x65, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x08, 0x69, 0x73, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x12, 0x53, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x73, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0d, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x64, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x44, 0x4c, 0x50, 0x61, 0x72, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x64, 0x6c, 0x50, 0x61, 0x72, 0x73, 0x65, 0x12, 0x59, 0x0a, + 0x0e, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x61, 0x6d, 0x65, 0x53, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x12, 0x56, 0x0a, 0x0d, 0x73, 0x65, 0x6d, 0x61, + 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, + 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x46, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x07, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x09, 0x75, 0x6e, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x55, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x39, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x1a, 0x30, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x65, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x65, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x24, 0x0a, 0x07, 0x49, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x12, + 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x30, 0x0a, 0x0b, 0x49, 0x73, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0x22, 0x0a, 0x0a, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x1a, 0x28, 0x0a, 0x0c, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x3b, 0x0a, 0x08, 0x44, 0x44, + 0x4c, 0x50, 0x61, 0x72, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x1a, 0x27, 0x0a, 0x0d, 0x53, 0x61, 0x6d, 0x65, 0x53, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x1a, 0x26, 0x0a, 0x0c, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x09, 0x0a, 0x07, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x1a, 0x0b, 0x0a, 0x09, 0x55, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x1a, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x85, 0x03, 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x24, 0x0a, + 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x58, 0x0a, + 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, + 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe5, 0x0d, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x50, + 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x63, 0x0a, 0x12, 0x73, 0x71, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x48, 0x00, 0x52, 0x10, 0x73, 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x7e, 0x0a, 0x23, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x71, 0x0a, 0x1e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6b, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x19, 0x67, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x87, 0x01, 0x0a, 0x26, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x22, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x35, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x10, + 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x47, 0x0a, 0x10, + 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0a, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x85, 0x04, 0x0a, 0x07, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x51, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x1a, 0xcc, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x11, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x7b, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 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, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, + 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, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x60, 0x0a, 0x0f, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x41, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x84, 0x08, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xf2, + 0x03, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x03, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, + 0x65, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x57, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x09, 0x67, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x67, 0x65, + 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x05, 0x75, 0x6e, + 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, + 0x05, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x73, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x73, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x1a, 0x34, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x1a, 0x19, 0x0a, 0x03, 0x47, 0x65, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x1a, 0x3f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x1a, 0x1f, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x1a, 0x30, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x1b, 0x0a, 0x05, 0x55, 0x6e, 0x73, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x1a, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xe7, 0x06, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0b, + 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x05, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x5a, 0x0a, 0x0b, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x65, 0x67, + 0x69, 0x6e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, + 0x48, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, + 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, + 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x35, 0x0a, 0x0d, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x63, 0x72, 0x63, + 0x1a, 0x6f, 0x0a, 0x13, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x5d, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x54, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x1a, 0xc1, 0x01, 0x0a, 0x14, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x65, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x55, 0x0a, + 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, + 0x68, 0x75, 0x6e, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xbc, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0x51, 0x0a, 0x0f, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x63, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, + 0x73, 0x43, 0x72, 0x63, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x22, 0xc3, + 0x01, 0x0a, 0x17, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, + 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x65, 0x73, 0x1a, 0x28, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x1a, 0x73, + 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 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, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xc5, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x11, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x32, + 0xa4, 0x04, 0x0a, 0x13, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, + 0x12, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x06, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x73, 0x12, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, + 0x63, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, + 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x36, 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, + 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_base_proto_rawDescOnce sync.Once + file_spark_connect_base_proto_rawDescData = file_spark_connect_base_proto_rawDesc +) + +func file_spark_connect_base_proto_rawDescGZIP() []byte { + file_spark_connect_base_proto_rawDescOnce.Do(func() { + file_spark_connect_base_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_base_proto_rawDescData) + }) + return file_spark_connect_base_proto_rawDescData +} + +var file_spark_connect_base_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_spark_connect_base_proto_msgTypes = make([]protoimpl.MessageInfo, 64) +var file_spark_connect_base_proto_goTypes = []interface{}{ + (AnalyzePlanRequest_Explain_ExplainMode)(0), // 0: spark.connect.AnalyzePlanRequest.Explain.ExplainMode + (InterruptRequest_InterruptType)(0), // 1: spark.connect.InterruptRequest.InterruptType + (*Plan)(nil), // 2: spark.connect.Plan + (*UserContext)(nil), // 3: spark.connect.UserContext + (*AnalyzePlanRequest)(nil), // 4: spark.connect.AnalyzePlanRequest + (*AnalyzePlanResponse)(nil), // 5: spark.connect.AnalyzePlanResponse + (*ExecutePlanRequest)(nil), // 6: spark.connect.ExecutePlanRequest + (*ExecutePlanResponse)(nil), // 7: spark.connect.ExecutePlanResponse + (*KeyValue)(nil), // 8: spark.connect.KeyValue + (*ConfigRequest)(nil), // 9: spark.connect.ConfigRequest + (*ConfigResponse)(nil), // 10: spark.connect.ConfigResponse + (*AddArtifactsRequest)(nil), // 11: spark.connect.AddArtifactsRequest + (*AddArtifactsResponse)(nil), // 12: spark.connect.AddArtifactsResponse + (*ArtifactStatusesRequest)(nil), // 13: spark.connect.ArtifactStatusesRequest + (*ArtifactStatusesResponse)(nil), // 14: spark.connect.ArtifactStatusesResponse + (*InterruptRequest)(nil), // 15: spark.connect.InterruptRequest + (*InterruptResponse)(nil), // 16: spark.connect.InterruptResponse + (*AnalyzePlanRequest_Schema)(nil), // 17: spark.connect.AnalyzePlanRequest.Schema + (*AnalyzePlanRequest_Explain)(nil), // 18: spark.connect.AnalyzePlanRequest.Explain + (*AnalyzePlanRequest_TreeString)(nil), // 19: spark.connect.AnalyzePlanRequest.TreeString + (*AnalyzePlanRequest_IsLocal)(nil), // 20: spark.connect.AnalyzePlanRequest.IsLocal + (*AnalyzePlanRequest_IsStreaming)(nil), // 21: spark.connect.AnalyzePlanRequest.IsStreaming + (*AnalyzePlanRequest_InputFiles)(nil), // 22: spark.connect.AnalyzePlanRequest.InputFiles + (*AnalyzePlanRequest_SparkVersion)(nil), // 23: spark.connect.AnalyzePlanRequest.SparkVersion + (*AnalyzePlanRequest_DDLParse)(nil), // 24: spark.connect.AnalyzePlanRequest.DDLParse + (*AnalyzePlanRequest_SameSemantics)(nil), // 25: spark.connect.AnalyzePlanRequest.SameSemantics + (*AnalyzePlanRequest_SemanticHash)(nil), // 26: spark.connect.AnalyzePlanRequest.SemanticHash + (*AnalyzePlanRequest_Persist)(nil), // 27: spark.connect.AnalyzePlanRequest.Persist + (*AnalyzePlanRequest_Unpersist)(nil), // 28: spark.connect.AnalyzePlanRequest.Unpersist + (*AnalyzePlanRequest_GetStorageLevel)(nil), // 29: spark.connect.AnalyzePlanRequest.GetStorageLevel + (*AnalyzePlanResponse_Schema)(nil), // 30: spark.connect.AnalyzePlanResponse.Schema + (*AnalyzePlanResponse_Explain)(nil), // 31: spark.connect.AnalyzePlanResponse.Explain + (*AnalyzePlanResponse_TreeString)(nil), // 32: spark.connect.AnalyzePlanResponse.TreeString + (*AnalyzePlanResponse_IsLocal)(nil), // 33: spark.connect.AnalyzePlanResponse.IsLocal + (*AnalyzePlanResponse_IsStreaming)(nil), // 34: spark.connect.AnalyzePlanResponse.IsStreaming + (*AnalyzePlanResponse_InputFiles)(nil), // 35: spark.connect.AnalyzePlanResponse.InputFiles + (*AnalyzePlanResponse_SparkVersion)(nil), // 36: spark.connect.AnalyzePlanResponse.SparkVersion + (*AnalyzePlanResponse_DDLParse)(nil), // 37: spark.connect.AnalyzePlanResponse.DDLParse + (*AnalyzePlanResponse_SameSemantics)(nil), // 38: spark.connect.AnalyzePlanResponse.SameSemantics + (*AnalyzePlanResponse_SemanticHash)(nil), // 39: spark.connect.AnalyzePlanResponse.SemanticHash + (*AnalyzePlanResponse_Persist)(nil), // 40: spark.connect.AnalyzePlanResponse.Persist + (*AnalyzePlanResponse_Unpersist)(nil), // 41: spark.connect.AnalyzePlanResponse.Unpersist + (*AnalyzePlanResponse_GetStorageLevel)(nil), // 42: spark.connect.AnalyzePlanResponse.GetStorageLevel + (*ExecutePlanRequest_RequestOption)(nil), // 43: spark.connect.ExecutePlanRequest.RequestOption + (*ExecutePlanResponse_SqlCommandResult)(nil), // 44: spark.connect.ExecutePlanResponse.SqlCommandResult + (*ExecutePlanResponse_ArrowBatch)(nil), // 45: spark.connect.ExecutePlanResponse.ArrowBatch + (*ExecutePlanResponse_Metrics)(nil), // 46: spark.connect.ExecutePlanResponse.Metrics + (*ExecutePlanResponse_ObservedMetrics)(nil), // 47: spark.connect.ExecutePlanResponse.ObservedMetrics + (*ExecutePlanResponse_Metrics_MetricObject)(nil), // 48: spark.connect.ExecutePlanResponse.Metrics.MetricObject + (*ExecutePlanResponse_Metrics_MetricValue)(nil), // 49: spark.connect.ExecutePlanResponse.Metrics.MetricValue + nil, // 50: spark.connect.ExecutePlanResponse.Metrics.MetricObject.ExecutionMetricsEntry + (*ConfigRequest_Operation)(nil), // 51: spark.connect.ConfigRequest.Operation + (*ConfigRequest_Set)(nil), // 52: spark.connect.ConfigRequest.Set + (*ConfigRequest_Get)(nil), // 53: spark.connect.ConfigRequest.Get + (*ConfigRequest_GetWithDefault)(nil), // 54: spark.connect.ConfigRequest.GetWithDefault + (*ConfigRequest_GetOption)(nil), // 55: spark.connect.ConfigRequest.GetOption + (*ConfigRequest_GetAll)(nil), // 56: spark.connect.ConfigRequest.GetAll + (*ConfigRequest_Unset)(nil), // 57: spark.connect.ConfigRequest.Unset + (*ConfigRequest_IsModifiable)(nil), // 58: spark.connect.ConfigRequest.IsModifiable + (*AddArtifactsRequest_ArtifactChunk)(nil), // 59: spark.connect.AddArtifactsRequest.ArtifactChunk + (*AddArtifactsRequest_SingleChunkArtifact)(nil), // 60: spark.connect.AddArtifactsRequest.SingleChunkArtifact + (*AddArtifactsRequest_Batch)(nil), // 61: spark.connect.AddArtifactsRequest.Batch + (*AddArtifactsRequest_BeginChunkedArtifact)(nil), // 62: spark.connect.AddArtifactsRequest.BeginChunkedArtifact + (*AddArtifactsResponse_ArtifactSummary)(nil), // 63: spark.connect.AddArtifactsResponse.ArtifactSummary + (*ArtifactStatusesResponse_ArtifactStatus)(nil), // 64: spark.connect.ArtifactStatusesResponse.ArtifactStatus + nil, // 65: spark.connect.ArtifactStatusesResponse.StatusesEntry + (*Relation)(nil), // 66: spark.connect.Relation + (*Command)(nil), // 67: spark.connect.Command + (*anypb.Any)(nil), // 68: google.protobuf.Any + (*WriteStreamOperationStartResult)(nil), // 69: spark.connect.WriteStreamOperationStartResult + (*StreamingQueryCommandResult)(nil), // 70: spark.connect.StreamingQueryCommandResult + (*GetResourcesCommandResult)(nil), // 71: spark.connect.GetResourcesCommandResult + (*StreamingQueryManagerCommandResult)(nil), // 72: spark.connect.StreamingQueryManagerCommandResult + (*DataType)(nil), // 73: spark.connect.DataType + (*StorageLevel)(nil), // 74: spark.connect.StorageLevel + (*Expression_Literal)(nil), // 75: spark.connect.Expression.Literal +} +var file_spark_connect_base_proto_depIdxs = []int32{ + 66, // 0: spark.connect.Plan.root:type_name -> spark.connect.Relation + 67, // 1: spark.connect.Plan.command:type_name -> spark.connect.Command + 68, // 2: spark.connect.UserContext.extensions:type_name -> google.protobuf.Any + 3, // 3: spark.connect.AnalyzePlanRequest.user_context:type_name -> spark.connect.UserContext + 17, // 4: spark.connect.AnalyzePlanRequest.schema:type_name -> spark.connect.AnalyzePlanRequest.Schema + 18, // 5: spark.connect.AnalyzePlanRequest.explain:type_name -> spark.connect.AnalyzePlanRequest.Explain + 19, // 6: spark.connect.AnalyzePlanRequest.tree_string:type_name -> spark.connect.AnalyzePlanRequest.TreeString + 20, // 7: spark.connect.AnalyzePlanRequest.is_local:type_name -> spark.connect.AnalyzePlanRequest.IsLocal + 21, // 8: spark.connect.AnalyzePlanRequest.is_streaming:type_name -> spark.connect.AnalyzePlanRequest.IsStreaming + 22, // 9: spark.connect.AnalyzePlanRequest.input_files:type_name -> spark.connect.AnalyzePlanRequest.InputFiles + 23, // 10: spark.connect.AnalyzePlanRequest.spark_version:type_name -> spark.connect.AnalyzePlanRequest.SparkVersion + 24, // 11: spark.connect.AnalyzePlanRequest.ddl_parse:type_name -> spark.connect.AnalyzePlanRequest.DDLParse + 25, // 12: spark.connect.AnalyzePlanRequest.same_semantics:type_name -> spark.connect.AnalyzePlanRequest.SameSemantics + 26, // 13: spark.connect.AnalyzePlanRequest.semantic_hash:type_name -> spark.connect.AnalyzePlanRequest.SemanticHash + 27, // 14: spark.connect.AnalyzePlanRequest.persist:type_name -> spark.connect.AnalyzePlanRequest.Persist + 28, // 15: spark.connect.AnalyzePlanRequest.unpersist:type_name -> spark.connect.AnalyzePlanRequest.Unpersist + 29, // 16: spark.connect.AnalyzePlanRequest.get_storage_level:type_name -> spark.connect.AnalyzePlanRequest.GetStorageLevel + 30, // 17: spark.connect.AnalyzePlanResponse.schema:type_name -> spark.connect.AnalyzePlanResponse.Schema + 31, // 18: spark.connect.AnalyzePlanResponse.explain:type_name -> spark.connect.AnalyzePlanResponse.Explain + 32, // 19: spark.connect.AnalyzePlanResponse.tree_string:type_name -> spark.connect.AnalyzePlanResponse.TreeString + 33, // 20: spark.connect.AnalyzePlanResponse.is_local:type_name -> spark.connect.AnalyzePlanResponse.IsLocal + 34, // 21: spark.connect.AnalyzePlanResponse.is_streaming:type_name -> spark.connect.AnalyzePlanResponse.IsStreaming + 35, // 22: spark.connect.AnalyzePlanResponse.input_files:type_name -> spark.connect.AnalyzePlanResponse.InputFiles + 36, // 23: spark.connect.AnalyzePlanResponse.spark_version:type_name -> spark.connect.AnalyzePlanResponse.SparkVersion + 37, // 24: spark.connect.AnalyzePlanResponse.ddl_parse:type_name -> spark.connect.AnalyzePlanResponse.DDLParse + 38, // 25: spark.connect.AnalyzePlanResponse.same_semantics:type_name -> spark.connect.AnalyzePlanResponse.SameSemantics + 39, // 26: spark.connect.AnalyzePlanResponse.semantic_hash:type_name -> spark.connect.AnalyzePlanResponse.SemanticHash + 40, // 27: spark.connect.AnalyzePlanResponse.persist:type_name -> spark.connect.AnalyzePlanResponse.Persist + 41, // 28: spark.connect.AnalyzePlanResponse.unpersist:type_name -> spark.connect.AnalyzePlanResponse.Unpersist + 42, // 29: spark.connect.AnalyzePlanResponse.get_storage_level:type_name -> spark.connect.AnalyzePlanResponse.GetStorageLevel + 3, // 30: spark.connect.ExecutePlanRequest.user_context:type_name -> spark.connect.UserContext + 2, // 31: spark.connect.ExecutePlanRequest.plan:type_name -> spark.connect.Plan + 43, // 32: spark.connect.ExecutePlanRequest.request_options:type_name -> spark.connect.ExecutePlanRequest.RequestOption + 45, // 33: spark.connect.ExecutePlanResponse.arrow_batch:type_name -> spark.connect.ExecutePlanResponse.ArrowBatch + 44, // 34: spark.connect.ExecutePlanResponse.sql_command_result:type_name -> spark.connect.ExecutePlanResponse.SqlCommandResult + 69, // 35: spark.connect.ExecutePlanResponse.write_stream_operation_start_result:type_name -> spark.connect.WriteStreamOperationStartResult + 70, // 36: spark.connect.ExecutePlanResponse.streaming_query_command_result:type_name -> spark.connect.StreamingQueryCommandResult + 71, // 37: spark.connect.ExecutePlanResponse.get_resources_command_result:type_name -> spark.connect.GetResourcesCommandResult + 72, // 38: spark.connect.ExecutePlanResponse.streaming_query_manager_command_result:type_name -> spark.connect.StreamingQueryManagerCommandResult + 68, // 39: spark.connect.ExecutePlanResponse.extension:type_name -> google.protobuf.Any + 46, // 40: spark.connect.ExecutePlanResponse.metrics:type_name -> spark.connect.ExecutePlanResponse.Metrics + 47, // 41: spark.connect.ExecutePlanResponse.observed_metrics:type_name -> spark.connect.ExecutePlanResponse.ObservedMetrics + 73, // 42: spark.connect.ExecutePlanResponse.schema:type_name -> spark.connect.DataType + 3, // 43: spark.connect.ConfigRequest.user_context:type_name -> spark.connect.UserContext + 51, // 44: spark.connect.ConfigRequest.operation:type_name -> spark.connect.ConfigRequest.Operation + 8, // 45: spark.connect.ConfigResponse.pairs:type_name -> spark.connect.KeyValue + 3, // 46: spark.connect.AddArtifactsRequest.user_context:type_name -> spark.connect.UserContext + 61, // 47: spark.connect.AddArtifactsRequest.batch:type_name -> spark.connect.AddArtifactsRequest.Batch + 62, // 48: spark.connect.AddArtifactsRequest.begin_chunk:type_name -> spark.connect.AddArtifactsRequest.BeginChunkedArtifact + 59, // 49: spark.connect.AddArtifactsRequest.chunk:type_name -> spark.connect.AddArtifactsRequest.ArtifactChunk + 63, // 50: spark.connect.AddArtifactsResponse.artifacts:type_name -> spark.connect.AddArtifactsResponse.ArtifactSummary + 3, // 51: spark.connect.ArtifactStatusesRequest.user_context:type_name -> spark.connect.UserContext + 65, // 52: spark.connect.ArtifactStatusesResponse.statuses:type_name -> spark.connect.ArtifactStatusesResponse.StatusesEntry + 3, // 53: spark.connect.InterruptRequest.user_context:type_name -> spark.connect.UserContext + 1, // 54: spark.connect.InterruptRequest.interrupt_type:type_name -> spark.connect.InterruptRequest.InterruptType + 2, // 55: spark.connect.AnalyzePlanRequest.Schema.plan:type_name -> spark.connect.Plan + 2, // 56: spark.connect.AnalyzePlanRequest.Explain.plan:type_name -> spark.connect.Plan + 0, // 57: spark.connect.AnalyzePlanRequest.Explain.explain_mode:type_name -> spark.connect.AnalyzePlanRequest.Explain.ExplainMode + 2, // 58: spark.connect.AnalyzePlanRequest.TreeString.plan:type_name -> spark.connect.Plan + 2, // 59: spark.connect.AnalyzePlanRequest.IsLocal.plan:type_name -> spark.connect.Plan + 2, // 60: spark.connect.AnalyzePlanRequest.IsStreaming.plan:type_name -> spark.connect.Plan + 2, // 61: spark.connect.AnalyzePlanRequest.InputFiles.plan:type_name -> spark.connect.Plan + 2, // 62: spark.connect.AnalyzePlanRequest.SameSemantics.target_plan:type_name -> spark.connect.Plan + 2, // 63: spark.connect.AnalyzePlanRequest.SameSemantics.other_plan:type_name -> spark.connect.Plan + 2, // 64: spark.connect.AnalyzePlanRequest.SemanticHash.plan:type_name -> spark.connect.Plan + 66, // 65: spark.connect.AnalyzePlanRequest.Persist.relation:type_name -> spark.connect.Relation + 74, // 66: spark.connect.AnalyzePlanRequest.Persist.storage_level:type_name -> spark.connect.StorageLevel + 66, // 67: spark.connect.AnalyzePlanRequest.Unpersist.relation:type_name -> spark.connect.Relation + 66, // 68: spark.connect.AnalyzePlanRequest.GetStorageLevel.relation:type_name -> spark.connect.Relation + 73, // 69: spark.connect.AnalyzePlanResponse.Schema.schema:type_name -> spark.connect.DataType + 73, // 70: spark.connect.AnalyzePlanResponse.DDLParse.parsed:type_name -> spark.connect.DataType + 74, // 71: spark.connect.AnalyzePlanResponse.GetStorageLevel.storage_level:type_name -> spark.connect.StorageLevel + 68, // 72: spark.connect.ExecutePlanRequest.RequestOption.extension:type_name -> google.protobuf.Any + 66, // 73: spark.connect.ExecutePlanResponse.SqlCommandResult.relation:type_name -> spark.connect.Relation + 48, // 74: spark.connect.ExecutePlanResponse.Metrics.metrics:type_name -> spark.connect.ExecutePlanResponse.Metrics.MetricObject + 75, // 75: spark.connect.ExecutePlanResponse.ObservedMetrics.values:type_name -> spark.connect.Expression.Literal + 50, // 76: spark.connect.ExecutePlanResponse.Metrics.MetricObject.execution_metrics:type_name -> spark.connect.ExecutePlanResponse.Metrics.MetricObject.ExecutionMetricsEntry + 49, // 77: spark.connect.ExecutePlanResponse.Metrics.MetricObject.ExecutionMetricsEntry.value:type_name -> spark.connect.ExecutePlanResponse.Metrics.MetricValue + 52, // 78: spark.connect.ConfigRequest.Operation.set:type_name -> spark.connect.ConfigRequest.Set + 53, // 79: spark.connect.ConfigRequest.Operation.get:type_name -> spark.connect.ConfigRequest.Get + 54, // 80: spark.connect.ConfigRequest.Operation.get_with_default:type_name -> spark.connect.ConfigRequest.GetWithDefault + 55, // 81: spark.connect.ConfigRequest.Operation.get_option:type_name -> spark.connect.ConfigRequest.GetOption + 56, // 82: spark.connect.ConfigRequest.Operation.get_all:type_name -> spark.connect.ConfigRequest.GetAll + 57, // 83: spark.connect.ConfigRequest.Operation.unset:type_name -> spark.connect.ConfigRequest.Unset + 58, // 84: spark.connect.ConfigRequest.Operation.is_modifiable:type_name -> spark.connect.ConfigRequest.IsModifiable + 8, // 85: spark.connect.ConfigRequest.Set.pairs:type_name -> spark.connect.KeyValue + 8, // 86: spark.connect.ConfigRequest.GetWithDefault.pairs:type_name -> spark.connect.KeyValue + 59, // 87: spark.connect.AddArtifactsRequest.SingleChunkArtifact.data:type_name -> spark.connect.AddArtifactsRequest.ArtifactChunk + 60, // 88: spark.connect.AddArtifactsRequest.Batch.artifacts:type_name -> spark.connect.AddArtifactsRequest.SingleChunkArtifact + 59, // 89: spark.connect.AddArtifactsRequest.BeginChunkedArtifact.initial_chunk:type_name -> spark.connect.AddArtifactsRequest.ArtifactChunk + 64, // 90: spark.connect.ArtifactStatusesResponse.StatusesEntry.value:type_name -> spark.connect.ArtifactStatusesResponse.ArtifactStatus + 6, // 91: spark.connect.SparkConnectService.ExecutePlan:input_type -> spark.connect.ExecutePlanRequest + 4, // 92: spark.connect.SparkConnectService.AnalyzePlan:input_type -> spark.connect.AnalyzePlanRequest + 9, // 93: spark.connect.SparkConnectService.Config:input_type -> spark.connect.ConfigRequest + 11, // 94: spark.connect.SparkConnectService.AddArtifacts:input_type -> spark.connect.AddArtifactsRequest + 13, // 95: spark.connect.SparkConnectService.ArtifactStatus:input_type -> spark.connect.ArtifactStatusesRequest + 15, // 96: spark.connect.SparkConnectService.Interrupt:input_type -> spark.connect.InterruptRequest + 7, // 97: spark.connect.SparkConnectService.ExecutePlan:output_type -> spark.connect.ExecutePlanResponse + 5, // 98: spark.connect.SparkConnectService.AnalyzePlan:output_type -> spark.connect.AnalyzePlanResponse + 10, // 99: spark.connect.SparkConnectService.Config:output_type -> spark.connect.ConfigResponse + 12, // 100: spark.connect.SparkConnectService.AddArtifacts:output_type -> spark.connect.AddArtifactsResponse + 14, // 101: spark.connect.SparkConnectService.ArtifactStatus:output_type -> spark.connect.ArtifactStatusesResponse + 16, // 102: spark.connect.SparkConnectService.Interrupt:output_type -> spark.connect.InterruptResponse + 97, // [97:103] is the sub-list for method output_type + 91, // [91:97] is the sub-list for method input_type + 91, // [91:91] is the sub-list for extension type_name + 91, // [91:91] is the sub-list for extension extendee + 0, // [0:91] is the sub-list for field type_name +} + +func init() { file_spark_connect_base_proto_init() } +func file_spark_connect_base_proto_init() { + if File_spark_connect_base_proto != nil { + return + } + file_spark_connect_commands_proto_init() + file_spark_connect_common_proto_init() + file_spark_connect_expressions_proto_init() + file_spark_connect_relations_proto_init() + file_spark_connect_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_base_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Plan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KeyValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactStatusesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactStatusesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterruptRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterruptResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_Schema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_Explain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_TreeString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_IsLocal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_IsStreaming); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_InputFiles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_SparkVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_DDLParse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_SameSemantics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_SemanticHash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_Persist); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_Unpersist); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanRequest_GetStorageLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_Schema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_Explain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_TreeString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_IsLocal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_IsStreaming); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_InputFiles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_SparkVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_DDLParse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_SameSemantics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_SemanticHash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_Persist); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_Unpersist); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzePlanResponse_GetStorageLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanRequest_RequestOption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_SqlCommandResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_ArrowBatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_Metrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_ObservedMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_Metrics_MetricObject); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePlanResponse_Metrics_MetricValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_Operation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_Set); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_Get); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_GetWithDefault); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_GetOption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_GetAll); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_Unset); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_IsModifiable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsRequest_ArtifactChunk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsRequest_SingleChunkArtifact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsRequest_Batch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsRequest_BeginChunkedArtifact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArtifactsResponse_ArtifactSummary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_base_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactStatusesResponse_ArtifactStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_base_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Plan_Root)(nil), + (*Plan_Command)(nil), + } + file_spark_connect_base_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*AnalyzePlanRequest_Schema_)(nil), + (*AnalyzePlanRequest_Explain_)(nil), + (*AnalyzePlanRequest_TreeString_)(nil), + (*AnalyzePlanRequest_IsLocal_)(nil), + (*AnalyzePlanRequest_IsStreaming_)(nil), + (*AnalyzePlanRequest_InputFiles_)(nil), + (*AnalyzePlanRequest_SparkVersion_)(nil), + (*AnalyzePlanRequest_DdlParse)(nil), + (*AnalyzePlanRequest_SameSemantics_)(nil), + (*AnalyzePlanRequest_SemanticHash_)(nil), + (*AnalyzePlanRequest_Persist_)(nil), + (*AnalyzePlanRequest_Unpersist_)(nil), + (*AnalyzePlanRequest_GetStorageLevel_)(nil), + } + file_spark_connect_base_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*AnalyzePlanResponse_Schema_)(nil), + (*AnalyzePlanResponse_Explain_)(nil), + (*AnalyzePlanResponse_TreeString_)(nil), + (*AnalyzePlanResponse_IsLocal_)(nil), + (*AnalyzePlanResponse_IsStreaming_)(nil), + (*AnalyzePlanResponse_InputFiles_)(nil), + (*AnalyzePlanResponse_SparkVersion_)(nil), + (*AnalyzePlanResponse_DdlParse)(nil), + (*AnalyzePlanResponse_SameSemantics_)(nil), + (*AnalyzePlanResponse_SemanticHash_)(nil), + (*AnalyzePlanResponse_Persist_)(nil), + (*AnalyzePlanResponse_Unpersist_)(nil), + (*AnalyzePlanResponse_GetStorageLevel_)(nil), + } + file_spark_connect_base_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*ExecutePlanResponse_ArrowBatch_)(nil), + (*ExecutePlanResponse_SqlCommandResult_)(nil), + (*ExecutePlanResponse_WriteStreamOperationStartResult)(nil), + (*ExecutePlanResponse_StreamingQueryCommandResult)(nil), + (*ExecutePlanResponse_GetResourcesCommandResult)(nil), + (*ExecutePlanResponse_StreamingQueryManagerCommandResult)(nil), + (*ExecutePlanResponse_Extension)(nil), + } + file_spark_connect_base_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*AddArtifactsRequest_Batch_)(nil), + (*AddArtifactsRequest_BeginChunk)(nil), + (*AddArtifactsRequest_Chunk)(nil), + } + file_spark_connect_base_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_spark_connect_base_proto_msgTypes[41].OneofWrappers = []interface{}{ + (*ExecutePlanRequest_RequestOption_Extension)(nil), + } + file_spark_connect_base_proto_msgTypes[49].OneofWrappers = []interface{}{ + (*ConfigRequest_Operation_Set)(nil), + (*ConfigRequest_Operation_Get)(nil), + (*ConfigRequest_Operation_GetWithDefault)(nil), + (*ConfigRequest_Operation_GetOption)(nil), + (*ConfigRequest_Operation_GetAll)(nil), + (*ConfigRequest_Operation_Unset)(nil), + (*ConfigRequest_Operation_IsModifiable)(nil), + } + file_spark_connect_base_proto_msgTypes[54].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_base_proto_rawDesc, + NumEnums: 2, + NumMessages: 64, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_spark_connect_base_proto_goTypes, + DependencyIndexes: file_spark_connect_base_proto_depIdxs, + EnumInfos: file_spark_connect_base_proto_enumTypes, + MessageInfos: file_spark_connect_base_proto_msgTypes, + }.Build() + File_spark_connect_base_proto = out.File + file_spark_connect_base_proto_rawDesc = nil + file_spark_connect_base_proto_goTypes = nil + file_spark_connect_base_proto_depIdxs = nil +} diff --git a/internal/generated/base_grpc.pb.go b/internal/generated/base_grpc.pb.go new file mode 100644 index 0000000..28abf35 --- /dev/null +++ b/internal/generated/base_grpc.pb.go @@ -0,0 +1,390 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: spark/connect/base.proto + +package generated + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + SparkConnectService_ExecutePlan_FullMethodName = "/spark.connect.SparkConnectService/ExecutePlan" + SparkConnectService_AnalyzePlan_FullMethodName = "/spark.connect.SparkConnectService/AnalyzePlan" + SparkConnectService_Config_FullMethodName = "/spark.connect.SparkConnectService/Config" + SparkConnectService_AddArtifacts_FullMethodName = "/spark.connect.SparkConnectService/AddArtifacts" + SparkConnectService_ArtifactStatus_FullMethodName = "/spark.connect.SparkConnectService/ArtifactStatus" + SparkConnectService_Interrupt_FullMethodName = "/spark.connect.SparkConnectService/Interrupt" +) + +// SparkConnectServiceClient is the client API for SparkConnectService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type SparkConnectServiceClient interface { + // Executes a request that contains the query and returns a stream of [[Response]]. + // + // It is guaranteed that there is at least one ARROW batch returned even if the result set is empty. + ExecutePlan(ctx context.Context, in *ExecutePlanRequest, opts ...grpc.CallOption) (SparkConnectService_ExecutePlanClient, error) + // Analyzes a query and returns a [[AnalyzeResponse]] containing metadata about the query. + AnalyzePlan(ctx context.Context, in *AnalyzePlanRequest, opts ...grpc.CallOption) (*AnalyzePlanResponse, error) + // Update or fetch the configurations and returns a [[ConfigResponse]] containing the result. + Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigResponse, error) + // Add artifacts to the session and returns a [[AddArtifactsResponse]] containing metadata about + // the added artifacts. + AddArtifacts(ctx context.Context, opts ...grpc.CallOption) (SparkConnectService_AddArtifactsClient, error) + // Check statuses of artifacts in the session and returns them in a [[ArtifactStatusesResponse]] + ArtifactStatus(ctx context.Context, in *ArtifactStatusesRequest, opts ...grpc.CallOption) (*ArtifactStatusesResponse, error) + // Interrupts running executions + Interrupt(ctx context.Context, in *InterruptRequest, opts ...grpc.CallOption) (*InterruptResponse, error) +} + +type sparkConnectServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewSparkConnectServiceClient(cc grpc.ClientConnInterface) SparkConnectServiceClient { + return &sparkConnectServiceClient{cc} +} + +func (c *sparkConnectServiceClient) ExecutePlan(ctx context.Context, in *ExecutePlanRequest, opts ...grpc.CallOption) (SparkConnectService_ExecutePlanClient, error) { + stream, err := c.cc.NewStream(ctx, &SparkConnectService_ServiceDesc.Streams[0], SparkConnectService_ExecutePlan_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &sparkConnectServiceExecutePlanClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type SparkConnectService_ExecutePlanClient interface { + Recv() (*ExecutePlanResponse, error) + grpc.ClientStream +} + +type sparkConnectServiceExecutePlanClient struct { + grpc.ClientStream +} + +func (x *sparkConnectServiceExecutePlanClient) Recv() (*ExecutePlanResponse, error) { + m := new(ExecutePlanResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sparkConnectServiceClient) AnalyzePlan(ctx context.Context, in *AnalyzePlanRequest, opts ...grpc.CallOption) (*AnalyzePlanResponse, error) { + out := new(AnalyzePlanResponse) + err := c.cc.Invoke(ctx, SparkConnectService_AnalyzePlan_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sparkConnectServiceClient) Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigResponse, error) { + out := new(ConfigResponse) + err := c.cc.Invoke(ctx, SparkConnectService_Config_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sparkConnectServiceClient) AddArtifacts(ctx context.Context, opts ...grpc.CallOption) (SparkConnectService_AddArtifactsClient, error) { + stream, err := c.cc.NewStream(ctx, &SparkConnectService_ServiceDesc.Streams[1], SparkConnectService_AddArtifacts_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &sparkConnectServiceAddArtifactsClient{stream} + return x, nil +} + +type SparkConnectService_AddArtifactsClient interface { + Send(*AddArtifactsRequest) error + CloseAndRecv() (*AddArtifactsResponse, error) + grpc.ClientStream +} + +type sparkConnectServiceAddArtifactsClient struct { + grpc.ClientStream +} + +func (x *sparkConnectServiceAddArtifactsClient) Send(m *AddArtifactsRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *sparkConnectServiceAddArtifactsClient) CloseAndRecv() (*AddArtifactsResponse, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(AddArtifactsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sparkConnectServiceClient) ArtifactStatus(ctx context.Context, in *ArtifactStatusesRequest, opts ...grpc.CallOption) (*ArtifactStatusesResponse, error) { + out := new(ArtifactStatusesResponse) + err := c.cc.Invoke(ctx, SparkConnectService_ArtifactStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sparkConnectServiceClient) Interrupt(ctx context.Context, in *InterruptRequest, opts ...grpc.CallOption) (*InterruptResponse, error) { + out := new(InterruptResponse) + err := c.cc.Invoke(ctx, SparkConnectService_Interrupt_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SparkConnectServiceServer is the server API for SparkConnectService service. +// All implementations must embed UnimplementedSparkConnectServiceServer +// for forward compatibility +type SparkConnectServiceServer interface { + // Executes a request that contains the query and returns a stream of [[Response]]. + // + // It is guaranteed that there is at least one ARROW batch returned even if the result set is empty. + ExecutePlan(*ExecutePlanRequest, SparkConnectService_ExecutePlanServer) error + // Analyzes a query and returns a [[AnalyzeResponse]] containing metadata about the query. + AnalyzePlan(context.Context, *AnalyzePlanRequest) (*AnalyzePlanResponse, error) + // Update or fetch the configurations and returns a [[ConfigResponse]] containing the result. + Config(context.Context, *ConfigRequest) (*ConfigResponse, error) + // Add artifacts to the session and returns a [[AddArtifactsResponse]] containing metadata about + // the added artifacts. + AddArtifacts(SparkConnectService_AddArtifactsServer) error + // Check statuses of artifacts in the session and returns them in a [[ArtifactStatusesResponse]] + ArtifactStatus(context.Context, *ArtifactStatusesRequest) (*ArtifactStatusesResponse, error) + // Interrupts running executions + Interrupt(context.Context, *InterruptRequest) (*InterruptResponse, error) + mustEmbedUnimplementedSparkConnectServiceServer() +} + +// UnimplementedSparkConnectServiceServer must be embedded to have forward compatible implementations. +type UnimplementedSparkConnectServiceServer struct { +} + +func (UnimplementedSparkConnectServiceServer) ExecutePlan(*ExecutePlanRequest, SparkConnectService_ExecutePlanServer) error { + return status.Errorf(codes.Unimplemented, "method ExecutePlan not implemented") +} +func (UnimplementedSparkConnectServiceServer) AnalyzePlan(context.Context, *AnalyzePlanRequest) (*AnalyzePlanResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AnalyzePlan not implemented") +} +func (UnimplementedSparkConnectServiceServer) Config(context.Context, *ConfigRequest) (*ConfigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Config not implemented") +} +func (UnimplementedSparkConnectServiceServer) AddArtifacts(SparkConnectService_AddArtifactsServer) error { + return status.Errorf(codes.Unimplemented, "method AddArtifacts not implemented") +} +func (UnimplementedSparkConnectServiceServer) ArtifactStatus(context.Context, *ArtifactStatusesRequest) (*ArtifactStatusesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArtifactStatus not implemented") +} +func (UnimplementedSparkConnectServiceServer) Interrupt(context.Context, *InterruptRequest) (*InterruptResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Interrupt not implemented") +} +func (UnimplementedSparkConnectServiceServer) mustEmbedUnimplementedSparkConnectServiceServer() {} + +// UnsafeSparkConnectServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SparkConnectServiceServer will +// result in compilation errors. +type UnsafeSparkConnectServiceServer interface { + mustEmbedUnimplementedSparkConnectServiceServer() +} + +func RegisterSparkConnectServiceServer(s grpc.ServiceRegistrar, srv SparkConnectServiceServer) { + s.RegisterService(&SparkConnectService_ServiceDesc, srv) +} + +func _SparkConnectService_ExecutePlan_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ExecutePlanRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(SparkConnectServiceServer).ExecutePlan(m, &sparkConnectServiceExecutePlanServer{stream}) +} + +type SparkConnectService_ExecutePlanServer interface { + Send(*ExecutePlanResponse) error + grpc.ServerStream +} + +type sparkConnectServiceExecutePlanServer struct { + grpc.ServerStream +} + +func (x *sparkConnectServiceExecutePlanServer) Send(m *ExecutePlanResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _SparkConnectService_AnalyzePlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnalyzePlanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SparkConnectServiceServer).AnalyzePlan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SparkConnectService_AnalyzePlan_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SparkConnectServiceServer).AnalyzePlan(ctx, req.(*AnalyzePlanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SparkConnectService_Config_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SparkConnectServiceServer).Config(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SparkConnectService_Config_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SparkConnectServiceServer).Config(ctx, req.(*ConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SparkConnectService_AddArtifacts_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(SparkConnectServiceServer).AddArtifacts(&sparkConnectServiceAddArtifactsServer{stream}) +} + +type SparkConnectService_AddArtifactsServer interface { + SendAndClose(*AddArtifactsResponse) error + Recv() (*AddArtifactsRequest, error) + grpc.ServerStream +} + +type sparkConnectServiceAddArtifactsServer struct { + grpc.ServerStream +} + +func (x *sparkConnectServiceAddArtifactsServer) SendAndClose(m *AddArtifactsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *sparkConnectServiceAddArtifactsServer) Recv() (*AddArtifactsRequest, error) { + m := new(AddArtifactsRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _SparkConnectService_ArtifactStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtifactStatusesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SparkConnectServiceServer).ArtifactStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SparkConnectService_ArtifactStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SparkConnectServiceServer).ArtifactStatus(ctx, req.(*ArtifactStatusesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SparkConnectService_Interrupt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InterruptRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SparkConnectServiceServer).Interrupt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SparkConnectService_Interrupt_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SparkConnectServiceServer).Interrupt(ctx, req.(*InterruptRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// SparkConnectService_ServiceDesc is the grpc.ServiceDesc for SparkConnectService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var SparkConnectService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "spark.connect.SparkConnectService", + HandlerType: (*SparkConnectServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AnalyzePlan", + Handler: _SparkConnectService_AnalyzePlan_Handler, + }, + { + MethodName: "Config", + Handler: _SparkConnectService_Config_Handler, + }, + { + MethodName: "ArtifactStatus", + Handler: _SparkConnectService_ArtifactStatus_Handler, + }, + { + MethodName: "Interrupt", + Handler: _SparkConnectService_Interrupt_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "ExecutePlan", + Handler: _SparkConnectService_ExecutePlan_Handler, + ServerStreams: true, + }, + { + StreamName: "AddArtifacts", + Handler: _SparkConnectService_AddArtifacts_Handler, + ClientStreams: true, + }, + }, + Metadata: "spark/connect/base.proto", +} diff --git a/internal/generated/catalog.pb.go b/internal/generated/catalog.pb.go new file mode 100644 index 0000000..3f3ea4c --- /dev/null +++ b/internal/generated/catalog.pb.go @@ -0,0 +1,2562 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/catalog.proto + +package generated + +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) +) + +// Catalog messages are marked as unstable. +type Catalog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to CatType: + // + // *Catalog_CurrentDatabase + // *Catalog_SetCurrentDatabase + // *Catalog_ListDatabases + // *Catalog_ListTables + // *Catalog_ListFunctions + // *Catalog_ListColumns + // *Catalog_GetDatabase + // *Catalog_GetTable + // *Catalog_GetFunction + // *Catalog_DatabaseExists + // *Catalog_TableExists + // *Catalog_FunctionExists + // *Catalog_CreateExternalTable + // *Catalog_CreateTable + // *Catalog_DropTempView + // *Catalog_DropGlobalTempView + // *Catalog_RecoverPartitions + // *Catalog_IsCached + // *Catalog_CacheTable + // *Catalog_UncacheTable + // *Catalog_ClearCache + // *Catalog_RefreshTable + // *Catalog_RefreshByPath + // *Catalog_CurrentCatalog + // *Catalog_SetCurrentCatalog + // *Catalog_ListCatalogs + CatType isCatalog_CatType `protobuf_oneof:"cat_type"` +} + +func (x *Catalog) Reset() { + *x = Catalog{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Catalog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Catalog) ProtoMessage() {} + +func (x *Catalog) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 Catalog.ProtoReflect.Descriptor instead. +func (*Catalog) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{0} +} + +func (m *Catalog) GetCatType() isCatalog_CatType { + if m != nil { + return m.CatType + } + return nil +} + +func (x *Catalog) GetCurrentDatabase() *CurrentDatabase { + if x, ok := x.GetCatType().(*Catalog_CurrentDatabase); ok { + return x.CurrentDatabase + } + return nil +} + +func (x *Catalog) GetSetCurrentDatabase() *SetCurrentDatabase { + if x, ok := x.GetCatType().(*Catalog_SetCurrentDatabase); ok { + return x.SetCurrentDatabase + } + return nil +} + +func (x *Catalog) GetListDatabases() *ListDatabases { + if x, ok := x.GetCatType().(*Catalog_ListDatabases); ok { + return x.ListDatabases + } + return nil +} + +func (x *Catalog) GetListTables() *ListTables { + if x, ok := x.GetCatType().(*Catalog_ListTables); ok { + return x.ListTables + } + return nil +} + +func (x *Catalog) GetListFunctions() *ListFunctions { + if x, ok := x.GetCatType().(*Catalog_ListFunctions); ok { + return x.ListFunctions + } + return nil +} + +func (x *Catalog) GetListColumns() *ListColumns { + if x, ok := x.GetCatType().(*Catalog_ListColumns); ok { + return x.ListColumns + } + return nil +} + +func (x *Catalog) GetGetDatabase() *GetDatabase { + if x, ok := x.GetCatType().(*Catalog_GetDatabase); ok { + return x.GetDatabase + } + return nil +} + +func (x *Catalog) GetGetTable() *GetTable { + if x, ok := x.GetCatType().(*Catalog_GetTable); ok { + return x.GetTable + } + return nil +} + +func (x *Catalog) GetGetFunction() *GetFunction { + if x, ok := x.GetCatType().(*Catalog_GetFunction); ok { + return x.GetFunction + } + return nil +} + +func (x *Catalog) GetDatabaseExists() *DatabaseExists { + if x, ok := x.GetCatType().(*Catalog_DatabaseExists); ok { + return x.DatabaseExists + } + return nil +} + +func (x *Catalog) GetTableExists() *TableExists { + if x, ok := x.GetCatType().(*Catalog_TableExists); ok { + return x.TableExists + } + return nil +} + +func (x *Catalog) GetFunctionExists() *FunctionExists { + if x, ok := x.GetCatType().(*Catalog_FunctionExists); ok { + return x.FunctionExists + } + return nil +} + +func (x *Catalog) GetCreateExternalTable() *CreateExternalTable { + if x, ok := x.GetCatType().(*Catalog_CreateExternalTable); ok { + return x.CreateExternalTable + } + return nil +} + +func (x *Catalog) GetCreateTable() *CreateTable { + if x, ok := x.GetCatType().(*Catalog_CreateTable); ok { + return x.CreateTable + } + return nil +} + +func (x *Catalog) GetDropTempView() *DropTempView { + if x, ok := x.GetCatType().(*Catalog_DropTempView); ok { + return x.DropTempView + } + return nil +} + +func (x *Catalog) GetDropGlobalTempView() *DropGlobalTempView { + if x, ok := x.GetCatType().(*Catalog_DropGlobalTempView); ok { + return x.DropGlobalTempView + } + return nil +} + +func (x *Catalog) GetRecoverPartitions() *RecoverPartitions { + if x, ok := x.GetCatType().(*Catalog_RecoverPartitions); ok { + return x.RecoverPartitions + } + return nil +} + +func (x *Catalog) GetIsCached() *IsCached { + if x, ok := x.GetCatType().(*Catalog_IsCached); ok { + return x.IsCached + } + return nil +} + +func (x *Catalog) GetCacheTable() *CacheTable { + if x, ok := x.GetCatType().(*Catalog_CacheTable); ok { + return x.CacheTable + } + return nil +} + +func (x *Catalog) GetUncacheTable() *UncacheTable { + if x, ok := x.GetCatType().(*Catalog_UncacheTable); ok { + return x.UncacheTable + } + return nil +} + +func (x *Catalog) GetClearCache() *ClearCache { + if x, ok := x.GetCatType().(*Catalog_ClearCache); ok { + return x.ClearCache + } + return nil +} + +func (x *Catalog) GetRefreshTable() *RefreshTable { + if x, ok := x.GetCatType().(*Catalog_RefreshTable); ok { + return x.RefreshTable + } + return nil +} + +func (x *Catalog) GetRefreshByPath() *RefreshByPath { + if x, ok := x.GetCatType().(*Catalog_RefreshByPath); ok { + return x.RefreshByPath + } + return nil +} + +func (x *Catalog) GetCurrentCatalog() *CurrentCatalog { + if x, ok := x.GetCatType().(*Catalog_CurrentCatalog); ok { + return x.CurrentCatalog + } + return nil +} + +func (x *Catalog) GetSetCurrentCatalog() *SetCurrentCatalog { + if x, ok := x.GetCatType().(*Catalog_SetCurrentCatalog); ok { + return x.SetCurrentCatalog + } + return nil +} + +func (x *Catalog) GetListCatalogs() *ListCatalogs { + if x, ok := x.GetCatType().(*Catalog_ListCatalogs); ok { + return x.ListCatalogs + } + return nil +} + +type isCatalog_CatType interface { + isCatalog_CatType() +} + +type Catalog_CurrentDatabase struct { + CurrentDatabase *CurrentDatabase `protobuf:"bytes,1,opt,name=current_database,json=currentDatabase,proto3,oneof"` +} + +type Catalog_SetCurrentDatabase struct { + SetCurrentDatabase *SetCurrentDatabase `protobuf:"bytes,2,opt,name=set_current_database,json=setCurrentDatabase,proto3,oneof"` +} + +type Catalog_ListDatabases struct { + ListDatabases *ListDatabases `protobuf:"bytes,3,opt,name=list_databases,json=listDatabases,proto3,oneof"` +} + +type Catalog_ListTables struct { + ListTables *ListTables `protobuf:"bytes,4,opt,name=list_tables,json=listTables,proto3,oneof"` +} + +type Catalog_ListFunctions struct { + ListFunctions *ListFunctions `protobuf:"bytes,5,opt,name=list_functions,json=listFunctions,proto3,oneof"` +} + +type Catalog_ListColumns struct { + ListColumns *ListColumns `protobuf:"bytes,6,opt,name=list_columns,json=listColumns,proto3,oneof"` +} + +type Catalog_GetDatabase struct { + GetDatabase *GetDatabase `protobuf:"bytes,7,opt,name=get_database,json=getDatabase,proto3,oneof"` +} + +type Catalog_GetTable struct { + GetTable *GetTable `protobuf:"bytes,8,opt,name=get_table,json=getTable,proto3,oneof"` +} + +type Catalog_GetFunction struct { + GetFunction *GetFunction `protobuf:"bytes,9,opt,name=get_function,json=getFunction,proto3,oneof"` +} + +type Catalog_DatabaseExists struct { + DatabaseExists *DatabaseExists `protobuf:"bytes,10,opt,name=database_exists,json=databaseExists,proto3,oneof"` +} + +type Catalog_TableExists struct { + TableExists *TableExists `protobuf:"bytes,11,opt,name=table_exists,json=tableExists,proto3,oneof"` +} + +type Catalog_FunctionExists struct { + FunctionExists *FunctionExists `protobuf:"bytes,12,opt,name=function_exists,json=functionExists,proto3,oneof"` +} + +type Catalog_CreateExternalTable struct { + CreateExternalTable *CreateExternalTable `protobuf:"bytes,13,opt,name=create_external_table,json=createExternalTable,proto3,oneof"` +} + +type Catalog_CreateTable struct { + CreateTable *CreateTable `protobuf:"bytes,14,opt,name=create_table,json=createTable,proto3,oneof"` +} + +type Catalog_DropTempView struct { + DropTempView *DropTempView `protobuf:"bytes,15,opt,name=drop_temp_view,json=dropTempView,proto3,oneof"` +} + +type Catalog_DropGlobalTempView struct { + DropGlobalTempView *DropGlobalTempView `protobuf:"bytes,16,opt,name=drop_global_temp_view,json=dropGlobalTempView,proto3,oneof"` +} + +type Catalog_RecoverPartitions struct { + RecoverPartitions *RecoverPartitions `protobuf:"bytes,17,opt,name=recover_partitions,json=recoverPartitions,proto3,oneof"` +} + +type Catalog_IsCached struct { + IsCached *IsCached `protobuf:"bytes,18,opt,name=is_cached,json=isCached,proto3,oneof"` +} + +type Catalog_CacheTable struct { + CacheTable *CacheTable `protobuf:"bytes,19,opt,name=cache_table,json=cacheTable,proto3,oneof"` +} + +type Catalog_UncacheTable struct { + UncacheTable *UncacheTable `protobuf:"bytes,20,opt,name=uncache_table,json=uncacheTable,proto3,oneof"` +} + +type Catalog_ClearCache struct { + ClearCache *ClearCache `protobuf:"bytes,21,opt,name=clear_cache,json=clearCache,proto3,oneof"` +} + +type Catalog_RefreshTable struct { + RefreshTable *RefreshTable `protobuf:"bytes,22,opt,name=refresh_table,json=refreshTable,proto3,oneof"` +} + +type Catalog_RefreshByPath struct { + RefreshByPath *RefreshByPath `protobuf:"bytes,23,opt,name=refresh_by_path,json=refreshByPath,proto3,oneof"` +} + +type Catalog_CurrentCatalog struct { + CurrentCatalog *CurrentCatalog `protobuf:"bytes,24,opt,name=current_catalog,json=currentCatalog,proto3,oneof"` +} + +type Catalog_SetCurrentCatalog struct { + SetCurrentCatalog *SetCurrentCatalog `protobuf:"bytes,25,opt,name=set_current_catalog,json=setCurrentCatalog,proto3,oneof"` +} + +type Catalog_ListCatalogs struct { + ListCatalogs *ListCatalogs `protobuf:"bytes,26,opt,name=list_catalogs,json=listCatalogs,proto3,oneof"` +} + +func (*Catalog_CurrentDatabase) isCatalog_CatType() {} + +func (*Catalog_SetCurrentDatabase) isCatalog_CatType() {} + +func (*Catalog_ListDatabases) isCatalog_CatType() {} + +func (*Catalog_ListTables) isCatalog_CatType() {} + +func (*Catalog_ListFunctions) isCatalog_CatType() {} + +func (*Catalog_ListColumns) isCatalog_CatType() {} + +func (*Catalog_GetDatabase) isCatalog_CatType() {} + +func (*Catalog_GetTable) isCatalog_CatType() {} + +func (*Catalog_GetFunction) isCatalog_CatType() {} + +func (*Catalog_DatabaseExists) isCatalog_CatType() {} + +func (*Catalog_TableExists) isCatalog_CatType() {} + +func (*Catalog_FunctionExists) isCatalog_CatType() {} + +func (*Catalog_CreateExternalTable) isCatalog_CatType() {} + +func (*Catalog_CreateTable) isCatalog_CatType() {} + +func (*Catalog_DropTempView) isCatalog_CatType() {} + +func (*Catalog_DropGlobalTempView) isCatalog_CatType() {} + +func (*Catalog_RecoverPartitions) isCatalog_CatType() {} + +func (*Catalog_IsCached) isCatalog_CatType() {} + +func (*Catalog_CacheTable) isCatalog_CatType() {} + +func (*Catalog_UncacheTable) isCatalog_CatType() {} + +func (*Catalog_ClearCache) isCatalog_CatType() {} + +func (*Catalog_RefreshTable) isCatalog_CatType() {} + +func (*Catalog_RefreshByPath) isCatalog_CatType() {} + +func (*Catalog_CurrentCatalog) isCatalog_CatType() {} + +func (*Catalog_SetCurrentCatalog) isCatalog_CatType() {} + +func (*Catalog_ListCatalogs) isCatalog_CatType() {} + +// See `spark.catalog.currentDatabase` +type CurrentDatabase struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CurrentDatabase) Reset() { + *x = CurrentDatabase{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CurrentDatabase) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CurrentDatabase) ProtoMessage() {} + +func (x *CurrentDatabase) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 CurrentDatabase.ProtoReflect.Descriptor instead. +func (*CurrentDatabase) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{1} +} + +// See `spark.catalog.setCurrentDatabase` +type SetCurrentDatabase struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` +} + +func (x *SetCurrentDatabase) Reset() { + *x = SetCurrentDatabase{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetCurrentDatabase) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetCurrentDatabase) ProtoMessage() {} + +func (x *SetCurrentDatabase) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 SetCurrentDatabase.ProtoReflect.Descriptor instead. +func (*SetCurrentDatabase) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{2} +} + +func (x *SetCurrentDatabase) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +// See `spark.catalog.listDatabases` +type ListDatabases struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListDatabases) Reset() { + *x = ListDatabases{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDatabases) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDatabases) ProtoMessage() {} + +func (x *ListDatabases) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 ListDatabases.ProtoReflect.Descriptor instead. +func (*ListDatabases) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{3} +} + +// See `spark.catalog.listTables` +type ListTables struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) + DbName *string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *ListTables) Reset() { + *x = ListTables{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTables) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTables) ProtoMessage() {} + +func (x *ListTables) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 ListTables.ProtoReflect.Descriptor instead. +func (*ListTables) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{4} +} + +func (x *ListTables) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.listFunctions` +type ListFunctions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) + DbName *string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *ListFunctions) Reset() { + *x = ListFunctions{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFunctions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFunctions) ProtoMessage() {} + +func (x *ListFunctions) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 ListFunctions.ProtoReflect.Descriptor instead. +func (*ListFunctions) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{5} +} + +func (x *ListFunctions) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.listColumns` +type ListColumns struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + DbName *string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *ListColumns) Reset() { + *x = ListColumns{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListColumns) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListColumns) ProtoMessage() {} + +func (x *ListColumns) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 ListColumns.ProtoReflect.Descriptor instead. +func (*ListColumns) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{6} +} + +func (x *ListColumns) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *ListColumns) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.getDatabase` +type GetDatabase struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` +} + +func (x *GetDatabase) Reset() { + *x = GetDatabase{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDatabase) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDatabase) ProtoMessage() {} + +func (x *GetDatabase) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 GetDatabase.ProtoReflect.Descriptor instead. +func (*GetDatabase) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{7} +} + +func (x *GetDatabase) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +// See `spark.catalog.getTable` +type GetTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + DbName *string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *GetTable) Reset() { + *x = GetTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTable) ProtoMessage() {} + +func (x *GetTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 GetTable.ProtoReflect.Descriptor instead. +func (*GetTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{8} +} + +func (x *GetTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *GetTable) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.getFunction` +type GetFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + // (Optional) + DbName *string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *GetFunction) Reset() { + *x = GetFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFunction) ProtoMessage() {} + +func (x *GetFunction) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 GetFunction.ProtoReflect.Descriptor instead. +func (*GetFunction) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{9} +} + +func (x *GetFunction) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *GetFunction) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.databaseExists` +type DatabaseExists struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` +} + +func (x *DatabaseExists) Reset() { + *x = DatabaseExists{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatabaseExists) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatabaseExists) ProtoMessage() {} + +func (x *DatabaseExists) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 DatabaseExists.ProtoReflect.Descriptor instead. +func (*DatabaseExists) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{10} +} + +func (x *DatabaseExists) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +// See `spark.catalog.tableExists` +type TableExists struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + DbName *string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *TableExists) Reset() { + *x = TableExists{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableExists) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableExists) ProtoMessage() {} + +func (x *TableExists) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 TableExists.ProtoReflect.Descriptor instead. +func (*TableExists) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{11} +} + +func (x *TableExists) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *TableExists) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.functionExists` +type FunctionExists struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + // (Optional) + DbName *string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3,oneof" json:"db_name,omitempty"` +} + +func (x *FunctionExists) Reset() { + *x = FunctionExists{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FunctionExists) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FunctionExists) ProtoMessage() {} + +func (x *FunctionExists) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 FunctionExists.ProtoReflect.Descriptor instead. +func (*FunctionExists) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{12} +} + +func (x *FunctionExists) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *FunctionExists) GetDbName() string { + if x != nil && x.DbName != nil { + return *x.DbName + } + return "" +} + +// See `spark.catalog.createExternalTable` +type CreateExternalTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + Path *string `protobuf:"bytes,2,opt,name=path,proto3,oneof" json:"path,omitempty"` + // (Optional) + Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` + // (Optional) + Schema *DataType `protobuf:"bytes,4,opt,name=schema,proto3,oneof" json:"schema,omitempty"` + // Options could be empty for valid data source format. + // The map key is case insensitive. + Options map[string]string `protobuf:"bytes,5,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *CreateExternalTable) Reset() { + *x = CreateExternalTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateExternalTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateExternalTable) ProtoMessage() {} + +func (x *CreateExternalTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 CreateExternalTable.ProtoReflect.Descriptor instead. +func (*CreateExternalTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{13} +} + +func (x *CreateExternalTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *CreateExternalTable) GetPath() string { + if x != nil && x.Path != nil { + return *x.Path + } + return "" +} + +func (x *CreateExternalTable) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +func (x *CreateExternalTable) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +func (x *CreateExternalTable) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +// See `spark.catalog.createTable` +type CreateTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + Path *string `protobuf:"bytes,2,opt,name=path,proto3,oneof" json:"path,omitempty"` + // (Optional) + Source *string `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` + // (Optional) + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + // (Optional) + Schema *DataType `protobuf:"bytes,5,opt,name=schema,proto3,oneof" json:"schema,omitempty"` + // Options could be empty for valid data source format. + // The map key is case insensitive. + Options map[string]string `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *CreateTable) Reset() { + *x = CreateTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTable) ProtoMessage() {} + +func (x *CreateTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 CreateTable.ProtoReflect.Descriptor instead. +func (*CreateTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{14} +} + +func (x *CreateTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *CreateTable) GetPath() string { + if x != nil && x.Path != nil { + return *x.Path + } + return "" +} + +func (x *CreateTable) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +func (x *CreateTable) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *CreateTable) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +func (x *CreateTable) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +// See `spark.catalog.dropTempView` +type DropTempView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + ViewName string `protobuf:"bytes,1,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` +} + +func (x *DropTempView) Reset() { + *x = DropTempView{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DropTempView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DropTempView) ProtoMessage() {} + +func (x *DropTempView) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 DropTempView.ProtoReflect.Descriptor instead. +func (*DropTempView) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{15} +} + +func (x *DropTempView) GetViewName() string { + if x != nil { + return x.ViewName + } + return "" +} + +// See `spark.catalog.dropGlobalTempView` +type DropGlobalTempView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + ViewName string `protobuf:"bytes,1,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` +} + +func (x *DropGlobalTempView) Reset() { + *x = DropGlobalTempView{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DropGlobalTempView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DropGlobalTempView) ProtoMessage() {} + +func (x *DropGlobalTempView) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 DropGlobalTempView.ProtoReflect.Descriptor instead. +func (*DropGlobalTempView) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{16} +} + +func (x *DropGlobalTempView) GetViewName() string { + if x != nil { + return x.ViewName + } + return "" +} + +// See `spark.catalog.recoverPartitions` +type RecoverPartitions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` +} + +func (x *RecoverPartitions) Reset() { + *x = RecoverPartitions{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecoverPartitions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecoverPartitions) ProtoMessage() {} + +func (x *RecoverPartitions) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 RecoverPartitions.ProtoReflect.Descriptor instead. +func (*RecoverPartitions) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{17} +} + +func (x *RecoverPartitions) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +// See `spark.catalog.isCached` +type IsCached struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` +} + +func (x *IsCached) Reset() { + *x = IsCached{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsCached) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsCached) ProtoMessage() {} + +func (x *IsCached) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 IsCached.ProtoReflect.Descriptor instead. +func (*IsCached) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{18} +} + +func (x *IsCached) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +// See `spark.catalog.cacheTable` +type CacheTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) + StorageLevel *StorageLevel `protobuf:"bytes,2,opt,name=storage_level,json=storageLevel,proto3,oneof" json:"storage_level,omitempty"` +} + +func (x *CacheTable) Reset() { + *x = CacheTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CacheTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CacheTable) ProtoMessage() {} + +func (x *CacheTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 CacheTable.ProtoReflect.Descriptor instead. +func (*CacheTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{19} +} + +func (x *CacheTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *CacheTable) GetStorageLevel() *StorageLevel { + if x != nil { + return x.StorageLevel + } + return nil +} + +// See `spark.catalog.uncacheTable` +type UncacheTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` +} + +func (x *UncacheTable) Reset() { + *x = UncacheTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UncacheTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UncacheTable) ProtoMessage() {} + +func (x *UncacheTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 UncacheTable.ProtoReflect.Descriptor instead. +func (*UncacheTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{20} +} + +func (x *UncacheTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +// See `spark.catalog.clearCache` +type ClearCache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ClearCache) Reset() { + *x = ClearCache{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearCache) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearCache) ProtoMessage() {} + +func (x *ClearCache) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_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 ClearCache.ProtoReflect.Descriptor instead. +func (*ClearCache) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{21} +} + +// See `spark.catalog.refreshTable` +type RefreshTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` +} + +func (x *RefreshTable) Reset() { + *x = RefreshTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshTable) ProtoMessage() {} + +func (x *RefreshTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_proto_msgTypes[22] + 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 RefreshTable.ProtoReflect.Descriptor instead. +func (*RefreshTable) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{22} +} + +func (x *RefreshTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +// See `spark.catalog.refreshByPath` +type RefreshByPath struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *RefreshByPath) Reset() { + *x = RefreshByPath{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshByPath) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshByPath) ProtoMessage() {} + +func (x *RefreshByPath) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_proto_msgTypes[23] + 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 RefreshByPath.ProtoReflect.Descriptor instead. +func (*RefreshByPath) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{23} +} + +func (x *RefreshByPath) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +// See `spark.catalog.currentCatalog` +type CurrentCatalog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CurrentCatalog) Reset() { + *x = CurrentCatalog{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CurrentCatalog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CurrentCatalog) ProtoMessage() {} + +func (x *CurrentCatalog) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_proto_msgTypes[24] + 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 CurrentCatalog.ProtoReflect.Descriptor instead. +func (*CurrentCatalog) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{24} +} + +// See `spark.catalog.setCurrentCatalog` +type SetCurrentCatalog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) + CatalogName string `protobuf:"bytes,1,opt,name=catalog_name,json=catalogName,proto3" json:"catalog_name,omitempty"` +} + +func (x *SetCurrentCatalog) Reset() { + *x = SetCurrentCatalog{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetCurrentCatalog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetCurrentCatalog) ProtoMessage() {} + +func (x *SetCurrentCatalog) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_proto_msgTypes[25] + 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 SetCurrentCatalog.ProtoReflect.Descriptor instead. +func (*SetCurrentCatalog) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{25} +} + +func (x *SetCurrentCatalog) GetCatalogName() string { + if x != nil { + return x.CatalogName + } + return "" +} + +// See `spark.catalog.listCatalogs` +type ListCatalogs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) The pattern that the catalog name needs to match + Pattern *string `protobuf:"bytes,1,opt,name=pattern,proto3,oneof" json:"pattern,omitempty"` +} + +func (x *ListCatalogs) Reset() { + *x = ListCatalogs{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_catalog_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCatalogs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCatalogs) ProtoMessage() {} + +func (x *ListCatalogs) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_catalog_proto_msgTypes[26] + 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 ListCatalogs.ProtoReflect.Descriptor instead. +func (*ListCatalogs) Descriptor() ([]byte, []int) { + return file_spark_connect_catalog_proto_rawDescGZIP(), []int{26} +} + +func (x *ListCatalogs) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +var File_spark_connect_catalog_proto protoreflect.FileDescriptor + +var file_spark_connect_catalog_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x1a, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x0e, 0x0a, 0x07, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, + 0x4b, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x14, + 0x73, 0x65, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x12, 0x73, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, + 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x69, 0x73, 0x74, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, + 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3f, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x3f, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x36, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, + 0x08, 0x67, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x67, 0x65, 0x74, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x67, + 0x65, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48, 0x00, 0x52, + 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x58, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x48, 0x00, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x56, 0x69, 0x65, 0x77, 0x48, + 0x00, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x56, 0x0a, 0x15, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x74, + 0x65, 0x6d, 0x70, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, + 0x72, 0x6f, 0x70, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x56, 0x69, 0x65, + 0x77, 0x48, 0x00, 0x52, 0x12, 0x64, 0x72, 0x6f, 0x70, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, + 0x65, 0x6d, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x51, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x69, 0x73, + 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x73, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x69, 0x73, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x42, 0x0a, 0x0d, 0x75, 0x6e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x6e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x42, 0x79, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, + 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x42, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x48, + 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x52, 0x0a, 0x13, 0x73, 0x65, 0x74, 0x5f, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x11, 0x73, 0x65, 0x74, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x42, 0x0a, 0x0d, + 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, + 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x11, 0x0a, 0x0f, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x22, + 0x2d, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0f, + 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x22, + 0x36, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x64, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x62, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x56, 0x0a, 0x0b, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x02, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x02, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 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, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x22, 0xed, 0x02, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 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, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x22, 0x2b, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x54, 0x65, 0x6d, 0x70, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x31, 0x0a, 0x12, 0x44, 0x72, 0x6f, 0x70, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, 0x65, 0x6d, + 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x84, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x45, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2d, 0x0a, 0x0c, 0x55, 0x6e, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 0x2d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x42, + 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x36, 0x0a, 0x11, 0x53, + 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x36, + 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_catalog_proto_rawDescOnce sync.Once + file_spark_connect_catalog_proto_rawDescData = file_spark_connect_catalog_proto_rawDesc +) + +func file_spark_connect_catalog_proto_rawDescGZIP() []byte { + file_spark_connect_catalog_proto_rawDescOnce.Do(func() { + file_spark_connect_catalog_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_catalog_proto_rawDescData) + }) + return file_spark_connect_catalog_proto_rawDescData +} + +var file_spark_connect_catalog_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_spark_connect_catalog_proto_goTypes = []interface{}{ + (*Catalog)(nil), // 0: spark.connect.Catalog + (*CurrentDatabase)(nil), // 1: spark.connect.CurrentDatabase + (*SetCurrentDatabase)(nil), // 2: spark.connect.SetCurrentDatabase + (*ListDatabases)(nil), // 3: spark.connect.ListDatabases + (*ListTables)(nil), // 4: spark.connect.ListTables + (*ListFunctions)(nil), // 5: spark.connect.ListFunctions + (*ListColumns)(nil), // 6: spark.connect.ListColumns + (*GetDatabase)(nil), // 7: spark.connect.GetDatabase + (*GetTable)(nil), // 8: spark.connect.GetTable + (*GetFunction)(nil), // 9: spark.connect.GetFunction + (*DatabaseExists)(nil), // 10: spark.connect.DatabaseExists + (*TableExists)(nil), // 11: spark.connect.TableExists + (*FunctionExists)(nil), // 12: spark.connect.FunctionExists + (*CreateExternalTable)(nil), // 13: spark.connect.CreateExternalTable + (*CreateTable)(nil), // 14: spark.connect.CreateTable + (*DropTempView)(nil), // 15: spark.connect.DropTempView + (*DropGlobalTempView)(nil), // 16: spark.connect.DropGlobalTempView + (*RecoverPartitions)(nil), // 17: spark.connect.RecoverPartitions + (*IsCached)(nil), // 18: spark.connect.IsCached + (*CacheTable)(nil), // 19: spark.connect.CacheTable + (*UncacheTable)(nil), // 20: spark.connect.UncacheTable + (*ClearCache)(nil), // 21: spark.connect.ClearCache + (*RefreshTable)(nil), // 22: spark.connect.RefreshTable + (*RefreshByPath)(nil), // 23: spark.connect.RefreshByPath + (*CurrentCatalog)(nil), // 24: spark.connect.CurrentCatalog + (*SetCurrentCatalog)(nil), // 25: spark.connect.SetCurrentCatalog + (*ListCatalogs)(nil), // 26: spark.connect.ListCatalogs + nil, // 27: spark.connect.CreateExternalTable.OptionsEntry + nil, // 28: spark.connect.CreateTable.OptionsEntry + (*DataType)(nil), // 29: spark.connect.DataType + (*StorageLevel)(nil), // 30: spark.connect.StorageLevel +} +var file_spark_connect_catalog_proto_depIdxs = []int32{ + 1, // 0: spark.connect.Catalog.current_database:type_name -> spark.connect.CurrentDatabase + 2, // 1: spark.connect.Catalog.set_current_database:type_name -> spark.connect.SetCurrentDatabase + 3, // 2: spark.connect.Catalog.list_databases:type_name -> spark.connect.ListDatabases + 4, // 3: spark.connect.Catalog.list_tables:type_name -> spark.connect.ListTables + 5, // 4: spark.connect.Catalog.list_functions:type_name -> spark.connect.ListFunctions + 6, // 5: spark.connect.Catalog.list_columns:type_name -> spark.connect.ListColumns + 7, // 6: spark.connect.Catalog.get_database:type_name -> spark.connect.GetDatabase + 8, // 7: spark.connect.Catalog.get_table:type_name -> spark.connect.GetTable + 9, // 8: spark.connect.Catalog.get_function:type_name -> spark.connect.GetFunction + 10, // 9: spark.connect.Catalog.database_exists:type_name -> spark.connect.DatabaseExists + 11, // 10: spark.connect.Catalog.table_exists:type_name -> spark.connect.TableExists + 12, // 11: spark.connect.Catalog.function_exists:type_name -> spark.connect.FunctionExists + 13, // 12: spark.connect.Catalog.create_external_table:type_name -> spark.connect.CreateExternalTable + 14, // 13: spark.connect.Catalog.create_table:type_name -> spark.connect.CreateTable + 15, // 14: spark.connect.Catalog.drop_temp_view:type_name -> spark.connect.DropTempView + 16, // 15: spark.connect.Catalog.drop_global_temp_view:type_name -> spark.connect.DropGlobalTempView + 17, // 16: spark.connect.Catalog.recover_partitions:type_name -> spark.connect.RecoverPartitions + 18, // 17: spark.connect.Catalog.is_cached:type_name -> spark.connect.IsCached + 19, // 18: spark.connect.Catalog.cache_table:type_name -> spark.connect.CacheTable + 20, // 19: spark.connect.Catalog.uncache_table:type_name -> spark.connect.UncacheTable + 21, // 20: spark.connect.Catalog.clear_cache:type_name -> spark.connect.ClearCache + 22, // 21: spark.connect.Catalog.refresh_table:type_name -> spark.connect.RefreshTable + 23, // 22: spark.connect.Catalog.refresh_by_path:type_name -> spark.connect.RefreshByPath + 24, // 23: spark.connect.Catalog.current_catalog:type_name -> spark.connect.CurrentCatalog + 25, // 24: spark.connect.Catalog.set_current_catalog:type_name -> spark.connect.SetCurrentCatalog + 26, // 25: spark.connect.Catalog.list_catalogs:type_name -> spark.connect.ListCatalogs + 29, // 26: spark.connect.CreateExternalTable.schema:type_name -> spark.connect.DataType + 27, // 27: spark.connect.CreateExternalTable.options:type_name -> spark.connect.CreateExternalTable.OptionsEntry + 29, // 28: spark.connect.CreateTable.schema:type_name -> spark.connect.DataType + 28, // 29: spark.connect.CreateTable.options:type_name -> spark.connect.CreateTable.OptionsEntry + 30, // 30: spark.connect.CacheTable.storage_level:type_name -> spark.connect.StorageLevel + 31, // [31:31] is the sub-list for method output_type + 31, // [31:31] is the sub-list for method input_type + 31, // [31:31] is the sub-list for extension type_name + 31, // [31:31] is the sub-list for extension extendee + 0, // [0:31] is the sub-list for field type_name +} + +func init() { file_spark_connect_catalog_proto_init() } +func file_spark_connect_catalog_proto_init() { + if File_spark_connect_catalog_proto != nil { + return + } + file_spark_connect_common_proto_init() + file_spark_connect_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_catalog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Catalog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CurrentDatabase); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetCurrentDatabase); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDatabases); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTables); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFunctions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListColumns); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDatabase); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatabaseExists); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TableExists); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FunctionExists); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateExternalTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DropTempView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DropGlobalTempView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecoverPartitions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsCached); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CacheTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UncacheTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearCache); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshByPath); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CurrentCatalog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetCurrentCatalog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_catalog_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCatalogs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_catalog_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Catalog_CurrentDatabase)(nil), + (*Catalog_SetCurrentDatabase)(nil), + (*Catalog_ListDatabases)(nil), + (*Catalog_ListTables)(nil), + (*Catalog_ListFunctions)(nil), + (*Catalog_ListColumns)(nil), + (*Catalog_GetDatabase)(nil), + (*Catalog_GetTable)(nil), + (*Catalog_GetFunction)(nil), + (*Catalog_DatabaseExists)(nil), + (*Catalog_TableExists)(nil), + (*Catalog_FunctionExists)(nil), + (*Catalog_CreateExternalTable)(nil), + (*Catalog_CreateTable)(nil), + (*Catalog_DropTempView)(nil), + (*Catalog_DropGlobalTempView)(nil), + (*Catalog_RecoverPartitions)(nil), + (*Catalog_IsCached)(nil), + (*Catalog_CacheTable)(nil), + (*Catalog_UncacheTable)(nil), + (*Catalog_ClearCache)(nil), + (*Catalog_RefreshTable)(nil), + (*Catalog_RefreshByPath)(nil), + (*Catalog_CurrentCatalog)(nil), + (*Catalog_SetCurrentCatalog)(nil), + (*Catalog_ListCatalogs)(nil), + } + file_spark_connect_catalog_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_spark_connect_catalog_proto_msgTypes[26].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_catalog_proto_rawDesc, + NumEnums: 0, + NumMessages: 29, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_catalog_proto_goTypes, + DependencyIndexes: file_spark_connect_catalog_proto_depIdxs, + MessageInfos: file_spark_connect_catalog_proto_msgTypes, + }.Build() + File_spark_connect_catalog_proto = out.File + file_spark_connect_catalog_proto_rawDesc = nil + file_spark_connect_catalog_proto_goTypes = nil + file_spark_connect_catalog_proto_depIdxs = nil +} diff --git a/internal/generated/commands.pb.go b/internal/generated/commands.pb.go new file mode 100644 index 0000000..4f162b3 --- /dev/null +++ b/internal/generated/commands.pb.go @@ -0,0 +1,3546 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/commands.proto + +package generated + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + 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 WriteOperation_SaveMode int32 + +const ( + WriteOperation_SAVE_MODE_UNSPECIFIED WriteOperation_SaveMode = 0 + WriteOperation_SAVE_MODE_APPEND WriteOperation_SaveMode = 1 + WriteOperation_SAVE_MODE_OVERWRITE WriteOperation_SaveMode = 2 + WriteOperation_SAVE_MODE_ERROR_IF_EXISTS WriteOperation_SaveMode = 3 + WriteOperation_SAVE_MODE_IGNORE WriteOperation_SaveMode = 4 +) + +// Enum value maps for WriteOperation_SaveMode. +var ( + WriteOperation_SaveMode_name = map[int32]string{ + 0: "SAVE_MODE_UNSPECIFIED", + 1: "SAVE_MODE_APPEND", + 2: "SAVE_MODE_OVERWRITE", + 3: "SAVE_MODE_ERROR_IF_EXISTS", + 4: "SAVE_MODE_IGNORE", + } + WriteOperation_SaveMode_value = map[string]int32{ + "SAVE_MODE_UNSPECIFIED": 0, + "SAVE_MODE_APPEND": 1, + "SAVE_MODE_OVERWRITE": 2, + "SAVE_MODE_ERROR_IF_EXISTS": 3, + "SAVE_MODE_IGNORE": 4, + } +) + +func (x WriteOperation_SaveMode) Enum() *WriteOperation_SaveMode { + p := new(WriteOperation_SaveMode) + *p = x + return p +} + +func (x WriteOperation_SaveMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteOperation_SaveMode) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_commands_proto_enumTypes[0].Descriptor() +} + +func (WriteOperation_SaveMode) Type() protoreflect.EnumType { + return &file_spark_connect_commands_proto_enumTypes[0] +} + +func (x WriteOperation_SaveMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteOperation_SaveMode.Descriptor instead. +func (WriteOperation_SaveMode) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{3, 0} +} + +type WriteOperation_SaveTable_TableSaveMethod int32 + +const ( + WriteOperation_SaveTable_TABLE_SAVE_METHOD_UNSPECIFIED WriteOperation_SaveTable_TableSaveMethod = 0 + WriteOperation_SaveTable_TABLE_SAVE_METHOD_SAVE_AS_TABLE WriteOperation_SaveTable_TableSaveMethod = 1 + WriteOperation_SaveTable_TABLE_SAVE_METHOD_INSERT_INTO WriteOperation_SaveTable_TableSaveMethod = 2 +) + +// Enum value maps for WriteOperation_SaveTable_TableSaveMethod. +var ( + WriteOperation_SaveTable_TableSaveMethod_name = map[int32]string{ + 0: "TABLE_SAVE_METHOD_UNSPECIFIED", + 1: "TABLE_SAVE_METHOD_SAVE_AS_TABLE", + 2: "TABLE_SAVE_METHOD_INSERT_INTO", + } + WriteOperation_SaveTable_TableSaveMethod_value = map[string]int32{ + "TABLE_SAVE_METHOD_UNSPECIFIED": 0, + "TABLE_SAVE_METHOD_SAVE_AS_TABLE": 1, + "TABLE_SAVE_METHOD_INSERT_INTO": 2, + } +) + +func (x WriteOperation_SaveTable_TableSaveMethod) Enum() *WriteOperation_SaveTable_TableSaveMethod { + p := new(WriteOperation_SaveTable_TableSaveMethod) + *p = x + return p +} + +func (x WriteOperation_SaveTable_TableSaveMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteOperation_SaveTable_TableSaveMethod) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_commands_proto_enumTypes[1].Descriptor() +} + +func (WriteOperation_SaveTable_TableSaveMethod) Type() protoreflect.EnumType { + return &file_spark_connect_commands_proto_enumTypes[1] +} + +func (x WriteOperation_SaveTable_TableSaveMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteOperation_SaveTable_TableSaveMethod.Descriptor instead. +func (WriteOperation_SaveTable_TableSaveMethod) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{3, 1, 0} +} + +type WriteOperationV2_Mode int32 + +const ( + WriteOperationV2_MODE_UNSPECIFIED WriteOperationV2_Mode = 0 + WriteOperationV2_MODE_CREATE WriteOperationV2_Mode = 1 + WriteOperationV2_MODE_OVERWRITE WriteOperationV2_Mode = 2 + WriteOperationV2_MODE_OVERWRITE_PARTITIONS WriteOperationV2_Mode = 3 + WriteOperationV2_MODE_APPEND WriteOperationV2_Mode = 4 + WriteOperationV2_MODE_REPLACE WriteOperationV2_Mode = 5 + WriteOperationV2_MODE_CREATE_OR_REPLACE WriteOperationV2_Mode = 6 +) + +// Enum value maps for WriteOperationV2_Mode. +var ( + WriteOperationV2_Mode_name = map[int32]string{ + 0: "MODE_UNSPECIFIED", + 1: "MODE_CREATE", + 2: "MODE_OVERWRITE", + 3: "MODE_OVERWRITE_PARTITIONS", + 4: "MODE_APPEND", + 5: "MODE_REPLACE", + 6: "MODE_CREATE_OR_REPLACE", + } + WriteOperationV2_Mode_value = map[string]int32{ + "MODE_UNSPECIFIED": 0, + "MODE_CREATE": 1, + "MODE_OVERWRITE": 2, + "MODE_OVERWRITE_PARTITIONS": 3, + "MODE_APPEND": 4, + "MODE_REPLACE": 5, + "MODE_CREATE_OR_REPLACE": 6, + } +) + +func (x WriteOperationV2_Mode) Enum() *WriteOperationV2_Mode { + p := new(WriteOperationV2_Mode) + *p = x + return p +} + +func (x WriteOperationV2_Mode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteOperationV2_Mode) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_commands_proto_enumTypes[2].Descriptor() +} + +func (WriteOperationV2_Mode) Type() protoreflect.EnumType { + return &file_spark_connect_commands_proto_enumTypes[2] +} + +func (x WriteOperationV2_Mode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteOperationV2_Mode.Descriptor instead. +func (WriteOperationV2_Mode) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{4, 0} +} + +// A [[Command]] is an operation that is executed by the server that does not directly consume or +// produce a relational result. +type Command struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to CommandType: + // + // *Command_RegisterFunction + // *Command_WriteOperation + // *Command_CreateDataframeView + // *Command_WriteOperationV2 + // *Command_SqlCommand + // *Command_WriteStreamOperationStart + // *Command_StreamingQueryCommand + // *Command_GetResourcesCommand + // *Command_StreamingQueryManagerCommand + // *Command_Extension + CommandType isCommand_CommandType `protobuf_oneof:"command_type"` +} + +func (x *Command) Reset() { + *x = Command{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Command) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Command) ProtoMessage() {} + +func (x *Command) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 Command.ProtoReflect.Descriptor instead. +func (*Command) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{0} +} + +func (m *Command) GetCommandType() isCommand_CommandType { + if m != nil { + return m.CommandType + } + return nil +} + +func (x *Command) GetRegisterFunction() *CommonInlineUserDefinedFunction { + if x, ok := x.GetCommandType().(*Command_RegisterFunction); ok { + return x.RegisterFunction + } + return nil +} + +func (x *Command) GetWriteOperation() *WriteOperation { + if x, ok := x.GetCommandType().(*Command_WriteOperation); ok { + return x.WriteOperation + } + return nil +} + +func (x *Command) GetCreateDataframeView() *CreateDataFrameViewCommand { + if x, ok := x.GetCommandType().(*Command_CreateDataframeView); ok { + return x.CreateDataframeView + } + return nil +} + +func (x *Command) GetWriteOperationV2() *WriteOperationV2 { + if x, ok := x.GetCommandType().(*Command_WriteOperationV2); ok { + return x.WriteOperationV2 + } + return nil +} + +func (x *Command) GetSqlCommand() *SqlCommand { + if x, ok := x.GetCommandType().(*Command_SqlCommand); ok { + return x.SqlCommand + } + return nil +} + +func (x *Command) GetWriteStreamOperationStart() *WriteStreamOperationStart { + if x, ok := x.GetCommandType().(*Command_WriteStreamOperationStart); ok { + return x.WriteStreamOperationStart + } + return nil +} + +func (x *Command) GetStreamingQueryCommand() *StreamingQueryCommand { + if x, ok := x.GetCommandType().(*Command_StreamingQueryCommand); ok { + return x.StreamingQueryCommand + } + return nil +} + +func (x *Command) GetGetResourcesCommand() *GetResourcesCommand { + if x, ok := x.GetCommandType().(*Command_GetResourcesCommand); ok { + return x.GetResourcesCommand + } + return nil +} + +func (x *Command) GetStreamingQueryManagerCommand() *StreamingQueryManagerCommand { + if x, ok := x.GetCommandType().(*Command_StreamingQueryManagerCommand); ok { + return x.StreamingQueryManagerCommand + } + return nil +} + +func (x *Command) GetExtension() *anypb.Any { + if x, ok := x.GetCommandType().(*Command_Extension); ok { + return x.Extension + } + return nil +} + +type isCommand_CommandType interface { + isCommand_CommandType() +} + +type Command_RegisterFunction struct { + RegisterFunction *CommonInlineUserDefinedFunction `protobuf:"bytes,1,opt,name=register_function,json=registerFunction,proto3,oneof"` +} + +type Command_WriteOperation struct { + WriteOperation *WriteOperation `protobuf:"bytes,2,opt,name=write_operation,json=writeOperation,proto3,oneof"` +} + +type Command_CreateDataframeView struct { + CreateDataframeView *CreateDataFrameViewCommand `protobuf:"bytes,3,opt,name=create_dataframe_view,json=createDataframeView,proto3,oneof"` +} + +type Command_WriteOperationV2 struct { + WriteOperationV2 *WriteOperationV2 `protobuf:"bytes,4,opt,name=write_operation_v2,json=writeOperationV2,proto3,oneof"` +} + +type Command_SqlCommand struct { + SqlCommand *SqlCommand `protobuf:"bytes,5,opt,name=sql_command,json=sqlCommand,proto3,oneof"` +} + +type Command_WriteStreamOperationStart struct { + WriteStreamOperationStart *WriteStreamOperationStart `protobuf:"bytes,6,opt,name=write_stream_operation_start,json=writeStreamOperationStart,proto3,oneof"` +} + +type Command_StreamingQueryCommand struct { + StreamingQueryCommand *StreamingQueryCommand `protobuf:"bytes,7,opt,name=streaming_query_command,json=streamingQueryCommand,proto3,oneof"` +} + +type Command_GetResourcesCommand struct { + GetResourcesCommand *GetResourcesCommand `protobuf:"bytes,8,opt,name=get_resources_command,json=getResourcesCommand,proto3,oneof"` +} + +type Command_StreamingQueryManagerCommand struct { + StreamingQueryManagerCommand *StreamingQueryManagerCommand `protobuf:"bytes,9,opt,name=streaming_query_manager_command,json=streamingQueryManagerCommand,proto3,oneof"` +} + +type Command_Extension struct { + // This field is used to mark extensions to the protocol. When plugins generate arbitrary + // Commands they can add them here. During the planning the correct resolution is done. + Extension *anypb.Any `protobuf:"bytes,999,opt,name=extension,proto3,oneof"` +} + +func (*Command_RegisterFunction) isCommand_CommandType() {} + +func (*Command_WriteOperation) isCommand_CommandType() {} + +func (*Command_CreateDataframeView) isCommand_CommandType() {} + +func (*Command_WriteOperationV2) isCommand_CommandType() {} + +func (*Command_SqlCommand) isCommand_CommandType() {} + +func (*Command_WriteStreamOperationStart) isCommand_CommandType() {} + +func (*Command_StreamingQueryCommand) isCommand_CommandType() {} + +func (*Command_GetResourcesCommand) isCommand_CommandType() {} + +func (*Command_StreamingQueryManagerCommand) isCommand_CommandType() {} + +func (*Command_Extension) isCommand_CommandType() {} + +// A SQL Command is used to trigger the eager evaluation of SQL commands in Spark. +// +// When the SQL provide as part of the message is a command it will be immediately evaluated +// and the result will be collected and returned as part of a LocalRelation. If the result is +// not a command, the operation will simply return a SQL Relation. This allows the client to be +// almost oblivious to the server-side behavior. +type SqlCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) SQL Query. + Sql string `protobuf:"bytes,1,opt,name=sql,proto3" json:"sql,omitempty"` + // (Optional) A map of parameter names to literal expressions. + Args map[string]*Expression_Literal `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *SqlCommand) Reset() { + *x = SqlCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SqlCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SqlCommand) ProtoMessage() {} + +func (x *SqlCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 SqlCommand.ProtoReflect.Descriptor instead. +func (*SqlCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{1} +} + +func (x *SqlCommand) GetSql() string { + if x != nil { + return x.Sql + } + return "" +} + +func (x *SqlCommand) GetArgs() map[string]*Expression_Literal { + if x != nil { + return x.Args + } + return nil +} + +// A command that can create DataFrame global temp view or local temp view. +type CreateDataFrameViewCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The relation that this view will be built on. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) View name. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // (Required) Whether this is global temp view or local temp view. + IsGlobal bool `protobuf:"varint,3,opt,name=is_global,json=isGlobal,proto3" json:"is_global,omitempty"` + // (Required) + // + // If true, and if the view already exists, updates it; if false, and if the view + // already exists, throws exception. + Replace bool `protobuf:"varint,4,opt,name=replace,proto3" json:"replace,omitempty"` +} + +func (x *CreateDataFrameViewCommand) Reset() { + *x = CreateDataFrameViewCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDataFrameViewCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDataFrameViewCommand) ProtoMessage() {} + +func (x *CreateDataFrameViewCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 CreateDataFrameViewCommand.ProtoReflect.Descriptor instead. +func (*CreateDataFrameViewCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateDataFrameViewCommand) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *CreateDataFrameViewCommand) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateDataFrameViewCommand) GetIsGlobal() bool { + if x != nil { + return x.IsGlobal + } + return false +} + +func (x *CreateDataFrameViewCommand) GetReplace() bool { + if x != nil { + return x.Replace + } + return false +} + +// As writes are not directly handled during analysis and planning, they are modeled as commands. +type WriteOperation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The output of the `input` relation will be persisted according to the options. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Format value according to the Spark documentation. Examples are: text, parquet, delta. + Source *string `protobuf:"bytes,2,opt,name=source,proto3,oneof" json:"source,omitempty"` + // (Optional) + // + // The destination of the write operation can be either a path or a table. + // If the destination is neither a path nor a table, such as jdbc and noop, + // the `save_type` should not be set. + // + // Types that are assignable to SaveType: + // + // *WriteOperation_Path + // *WriteOperation_Table + SaveType isWriteOperation_SaveType `protobuf_oneof:"save_type"` + // (Required) the save mode. + Mode WriteOperation_SaveMode `protobuf:"varint,5,opt,name=mode,proto3,enum=spark.connect.WriteOperation_SaveMode" json:"mode,omitempty"` + // (Optional) List of columns to sort the output by. + SortColumnNames []string `protobuf:"bytes,6,rep,name=sort_column_names,json=sortColumnNames,proto3" json:"sort_column_names,omitempty"` + // (Optional) List of columns for partitioning. + PartitioningColumns []string `protobuf:"bytes,7,rep,name=partitioning_columns,json=partitioningColumns,proto3" json:"partitioning_columns,omitempty"` + // (Optional) Bucketing specification. Bucketing must set the number of buckets and the columns + // to bucket by. + BucketBy *WriteOperation_BucketBy `protobuf:"bytes,8,opt,name=bucket_by,json=bucketBy,proto3" json:"bucket_by,omitempty"` + // (Optional) A list of configuration options. + Options map[string]string `protobuf:"bytes,9,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *WriteOperation) Reset() { + *x = WriteOperation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteOperation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteOperation) ProtoMessage() {} + +func (x *WriteOperation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteOperation.ProtoReflect.Descriptor instead. +func (*WriteOperation) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{3} +} + +func (x *WriteOperation) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WriteOperation) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +func (m *WriteOperation) GetSaveType() isWriteOperation_SaveType { + if m != nil { + return m.SaveType + } + return nil +} + +func (x *WriteOperation) GetPath() string { + if x, ok := x.GetSaveType().(*WriteOperation_Path); ok { + return x.Path + } + return "" +} + +func (x *WriteOperation) GetTable() *WriteOperation_SaveTable { + if x, ok := x.GetSaveType().(*WriteOperation_Table); ok { + return x.Table + } + return nil +} + +func (x *WriteOperation) GetMode() WriteOperation_SaveMode { + if x != nil { + return x.Mode + } + return WriteOperation_SAVE_MODE_UNSPECIFIED +} + +func (x *WriteOperation) GetSortColumnNames() []string { + if x != nil { + return x.SortColumnNames + } + return nil +} + +func (x *WriteOperation) GetPartitioningColumns() []string { + if x != nil { + return x.PartitioningColumns + } + return nil +} + +func (x *WriteOperation) GetBucketBy() *WriteOperation_BucketBy { + if x != nil { + return x.BucketBy + } + return nil +} + +func (x *WriteOperation) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +type isWriteOperation_SaveType interface { + isWriteOperation_SaveType() +} + +type WriteOperation_Path struct { + Path string `protobuf:"bytes,3,opt,name=path,proto3,oneof"` +} + +type WriteOperation_Table struct { + Table *WriteOperation_SaveTable `protobuf:"bytes,4,opt,name=table,proto3,oneof"` +} + +func (*WriteOperation_Path) isWriteOperation_SaveType() {} + +func (*WriteOperation_Table) isWriteOperation_SaveType() {} + +// As writes are not directly handled during analysis and planning, they are modeled as commands. +type WriteOperationV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The output of the `input` relation will be persisted according to the options. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The destination of the write operation must be either a path or a table. + TableName string `protobuf:"bytes,2,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Optional) A provider for the underlying output data source. Spark's default catalog supports + // "parquet", "json", etc. + Provider *string `protobuf:"bytes,3,opt,name=provider,proto3,oneof" json:"provider,omitempty"` + // (Optional) List of columns for partitioning for output table created by `create`, + // `createOrReplace`, or `replace` + PartitioningColumns []*Expression `protobuf:"bytes,4,rep,name=partitioning_columns,json=partitioningColumns,proto3" json:"partitioning_columns,omitempty"` + // (Optional) A list of configuration options. + Options map[string]string `protobuf:"bytes,5,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // (Optional) A list of table properties. + TableProperties map[string]string `protobuf:"bytes,6,rep,name=table_properties,json=tableProperties,proto3" json:"table_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // (Required) Write mode. + Mode WriteOperationV2_Mode `protobuf:"varint,7,opt,name=mode,proto3,enum=spark.connect.WriteOperationV2_Mode" json:"mode,omitempty"` + // (Optional) A condition for overwrite saving mode + OverwriteCondition *Expression `protobuf:"bytes,8,opt,name=overwrite_condition,json=overwriteCondition,proto3" json:"overwrite_condition,omitempty"` +} + +func (x *WriteOperationV2) Reset() { + *x = WriteOperationV2{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteOperationV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteOperationV2) ProtoMessage() {} + +func (x *WriteOperationV2) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteOperationV2.ProtoReflect.Descriptor instead. +func (*WriteOperationV2) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{4} +} + +func (x *WriteOperationV2) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WriteOperationV2) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *WriteOperationV2) GetProvider() string { + if x != nil && x.Provider != nil { + return *x.Provider + } + return "" +} + +func (x *WriteOperationV2) GetPartitioningColumns() []*Expression { + if x != nil { + return x.PartitioningColumns + } + return nil +} + +func (x *WriteOperationV2) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +func (x *WriteOperationV2) GetTableProperties() map[string]string { + if x != nil { + return x.TableProperties + } + return nil +} + +func (x *WriteOperationV2) GetMode() WriteOperationV2_Mode { + if x != nil { + return x.Mode + } + return WriteOperationV2_MODE_UNSPECIFIED +} + +func (x *WriteOperationV2) GetOverwriteCondition() *Expression { + if x != nil { + return x.OverwriteCondition + } + return nil +} + +// Starts write stream operation as streaming query. Query ID and Run ID of the streaming +// query are returned. +type WriteStreamOperationStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The output of the `input` streaming relation will be written. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + Format string `protobuf:"bytes,2,opt,name=format,proto3" json:"format,omitempty"` + Options map[string]string `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + PartitioningColumnNames []string `protobuf:"bytes,4,rep,name=partitioning_column_names,json=partitioningColumnNames,proto3" json:"partitioning_column_names,omitempty"` + // Types that are assignable to Trigger: + // + // *WriteStreamOperationStart_ProcessingTimeInterval + // *WriteStreamOperationStart_AvailableNow + // *WriteStreamOperationStart_Once + // *WriteStreamOperationStart_ContinuousCheckpointInterval + Trigger isWriteStreamOperationStart_Trigger `protobuf_oneof:"trigger"` + OutputMode string `protobuf:"bytes,9,opt,name=output_mode,json=outputMode,proto3" json:"output_mode,omitempty"` + QueryName string `protobuf:"bytes,10,opt,name=query_name,json=queryName,proto3" json:"query_name,omitempty"` + // The destination is optional. When set, it can be a path or a table name. + // + // Types that are assignable to SinkDestination: + // + // *WriteStreamOperationStart_Path + // *WriteStreamOperationStart_TableName + SinkDestination isWriteStreamOperationStart_SinkDestination `protobuf_oneof:"sink_destination"` + ForeachWriter *StreamingForeachWriter `protobuf:"bytes,13,opt,name=foreach_writer,json=foreachWriter,proto3" json:"foreach_writer,omitempty"` +} + +func (x *WriteStreamOperationStart) Reset() { + *x = WriteStreamOperationStart{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteStreamOperationStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteStreamOperationStart) ProtoMessage() {} + +func (x *WriteStreamOperationStart) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteStreamOperationStart.ProtoReflect.Descriptor instead. +func (*WriteStreamOperationStart) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{5} +} + +func (x *WriteStreamOperationStart) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WriteStreamOperationStart) GetFormat() string { + if x != nil { + return x.Format + } + return "" +} + +func (x *WriteStreamOperationStart) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +func (x *WriteStreamOperationStart) GetPartitioningColumnNames() []string { + if x != nil { + return x.PartitioningColumnNames + } + return nil +} + +func (m *WriteStreamOperationStart) GetTrigger() isWriteStreamOperationStart_Trigger { + if m != nil { + return m.Trigger + } + return nil +} + +func (x *WriteStreamOperationStart) GetProcessingTimeInterval() string { + if x, ok := x.GetTrigger().(*WriteStreamOperationStart_ProcessingTimeInterval); ok { + return x.ProcessingTimeInterval + } + return "" +} + +func (x *WriteStreamOperationStart) GetAvailableNow() bool { + if x, ok := x.GetTrigger().(*WriteStreamOperationStart_AvailableNow); ok { + return x.AvailableNow + } + return false +} + +func (x *WriteStreamOperationStart) GetOnce() bool { + if x, ok := x.GetTrigger().(*WriteStreamOperationStart_Once); ok { + return x.Once + } + return false +} + +func (x *WriteStreamOperationStart) GetContinuousCheckpointInterval() string { + if x, ok := x.GetTrigger().(*WriteStreamOperationStart_ContinuousCheckpointInterval); ok { + return x.ContinuousCheckpointInterval + } + return "" +} + +func (x *WriteStreamOperationStart) GetOutputMode() string { + if x != nil { + return x.OutputMode + } + return "" +} + +func (x *WriteStreamOperationStart) GetQueryName() string { + if x != nil { + return x.QueryName + } + return "" +} + +func (m *WriteStreamOperationStart) GetSinkDestination() isWriteStreamOperationStart_SinkDestination { + if m != nil { + return m.SinkDestination + } + return nil +} + +func (x *WriteStreamOperationStart) GetPath() string { + if x, ok := x.GetSinkDestination().(*WriteStreamOperationStart_Path); ok { + return x.Path + } + return "" +} + +func (x *WriteStreamOperationStart) GetTableName() string { + if x, ok := x.GetSinkDestination().(*WriteStreamOperationStart_TableName); ok { + return x.TableName + } + return "" +} + +func (x *WriteStreamOperationStart) GetForeachWriter() *StreamingForeachWriter { + if x != nil { + return x.ForeachWriter + } + return nil +} + +type isWriteStreamOperationStart_Trigger interface { + isWriteStreamOperationStart_Trigger() +} + +type WriteStreamOperationStart_ProcessingTimeInterval struct { + ProcessingTimeInterval string `protobuf:"bytes,5,opt,name=processing_time_interval,json=processingTimeInterval,proto3,oneof"` +} + +type WriteStreamOperationStart_AvailableNow struct { + AvailableNow bool `protobuf:"varint,6,opt,name=available_now,json=availableNow,proto3,oneof"` +} + +type WriteStreamOperationStart_Once struct { + Once bool `protobuf:"varint,7,opt,name=once,proto3,oneof"` +} + +type WriteStreamOperationStart_ContinuousCheckpointInterval struct { + ContinuousCheckpointInterval string `protobuf:"bytes,8,opt,name=continuous_checkpoint_interval,json=continuousCheckpointInterval,proto3,oneof"` +} + +func (*WriteStreamOperationStart_ProcessingTimeInterval) isWriteStreamOperationStart_Trigger() {} + +func (*WriteStreamOperationStart_AvailableNow) isWriteStreamOperationStart_Trigger() {} + +func (*WriteStreamOperationStart_Once) isWriteStreamOperationStart_Trigger() {} + +func (*WriteStreamOperationStart_ContinuousCheckpointInterval) isWriteStreamOperationStart_Trigger() { +} + +type isWriteStreamOperationStart_SinkDestination interface { + isWriteStreamOperationStart_SinkDestination() +} + +type WriteStreamOperationStart_Path struct { + Path string `protobuf:"bytes,11,opt,name=path,proto3,oneof"` +} + +type WriteStreamOperationStart_TableName struct { + TableName string `protobuf:"bytes,12,opt,name=table_name,json=tableName,proto3,oneof"` +} + +func (*WriteStreamOperationStart_Path) isWriteStreamOperationStart_SinkDestination() {} + +func (*WriteStreamOperationStart_TableName) isWriteStreamOperationStart_SinkDestination() {} + +type StreamingForeachWriter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Writer: + // + // *StreamingForeachWriter_PythonWriter + Writer isStreamingForeachWriter_Writer `protobuf_oneof:"writer"` +} + +func (x *StreamingForeachWriter) Reset() { + *x = StreamingForeachWriter{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingForeachWriter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingForeachWriter) ProtoMessage() {} + +func (x *StreamingForeachWriter) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingForeachWriter.ProtoReflect.Descriptor instead. +func (*StreamingForeachWriter) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{6} +} + +func (m *StreamingForeachWriter) GetWriter() isStreamingForeachWriter_Writer { + if m != nil { + return m.Writer + } + return nil +} + +func (x *StreamingForeachWriter) GetPythonWriter() *PythonUDF { + if x, ok := x.GetWriter().(*StreamingForeachWriter_PythonWriter); ok { + return x.PythonWriter + } + return nil +} + +type isStreamingForeachWriter_Writer interface { + isStreamingForeachWriter_Writer() +} + +type StreamingForeachWriter_PythonWriter struct { + PythonWriter *PythonUDF `protobuf:"bytes,1,opt,name=python_writer,json=pythonWriter,proto3,oneof"` +} + +func (*StreamingForeachWriter_PythonWriter) isStreamingForeachWriter_Writer() {} + +type WriteStreamOperationStartResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Query instance. See `StreamingQueryInstanceId`. + QueryId *StreamingQueryInstanceId `protobuf:"bytes,1,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` + // An optional query name. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *WriteStreamOperationStartResult) Reset() { + *x = WriteStreamOperationStartResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteStreamOperationStartResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteStreamOperationStartResult) ProtoMessage() {} + +func (x *WriteStreamOperationStartResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteStreamOperationStartResult.ProtoReflect.Descriptor instead. +func (*WriteStreamOperationStartResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{7} +} + +func (x *WriteStreamOperationStartResult) GetQueryId() *StreamingQueryInstanceId { + if x != nil { + return x.QueryId + } + return nil +} + +func (x *WriteStreamOperationStartResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// A tuple that uniquely identifies an instance of streaming query run. It consists of `id` that +// persists across the streaming runs and `run_id` that changes between each run of the +// streaming query that resumes from the checkpoint. +type StreamingQueryInstanceId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The unique id of this query that persists across restarts from checkpoint data. + // That is, this id is generated when a query is started for the first time, and + // will be the same every time it is restarted from checkpoint data. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // (Required) The unique id of this run of the query. That is, every start/restart of a query + // will generate a unique run_id. Therefore, every time a query is restarted from + // checkpoint, it will have the same `id` but different `run_id`s. + RunId string `protobuf:"bytes,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` +} + +func (x *StreamingQueryInstanceId) Reset() { + *x = StreamingQueryInstanceId{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryInstanceId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryInstanceId) ProtoMessage() {} + +func (x *StreamingQueryInstanceId) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingQueryInstanceId.ProtoReflect.Descriptor instead. +func (*StreamingQueryInstanceId) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{8} +} + +func (x *StreamingQueryInstanceId) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *StreamingQueryInstanceId) GetRunId() string { + if x != nil { + return x.RunId + } + return "" +} + +// Commands for a streaming query. +type StreamingQueryCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Query instance. See `StreamingQueryInstanceId`. + QueryId *StreamingQueryInstanceId `protobuf:"bytes,1,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` + // See documentation for the corresponding API method in StreamingQuery. + // + // Types that are assignable to Command: + // + // *StreamingQueryCommand_Status + // *StreamingQueryCommand_LastProgress + // *StreamingQueryCommand_RecentProgress + // *StreamingQueryCommand_Stop + // *StreamingQueryCommand_ProcessAllAvailable + // *StreamingQueryCommand_Explain + // *StreamingQueryCommand_Exception + // *StreamingQueryCommand_AwaitTermination + Command isStreamingQueryCommand_Command `protobuf_oneof:"command"` +} + +func (x *StreamingQueryCommand) Reset() { + *x = StreamingQueryCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommand) ProtoMessage() {} + +func (x *StreamingQueryCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingQueryCommand.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{9} +} + +func (x *StreamingQueryCommand) GetQueryId() *StreamingQueryInstanceId { + if x != nil { + return x.QueryId + } + return nil +} + +func (m *StreamingQueryCommand) GetCommand() isStreamingQueryCommand_Command { + if m != nil { + return m.Command + } + return nil +} + +func (x *StreamingQueryCommand) GetStatus() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_Status); ok { + return x.Status + } + return false +} + +func (x *StreamingQueryCommand) GetLastProgress() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_LastProgress); ok { + return x.LastProgress + } + return false +} + +func (x *StreamingQueryCommand) GetRecentProgress() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_RecentProgress); ok { + return x.RecentProgress + } + return false +} + +func (x *StreamingQueryCommand) GetStop() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_Stop); ok { + return x.Stop + } + return false +} + +func (x *StreamingQueryCommand) GetProcessAllAvailable() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_ProcessAllAvailable); ok { + return x.ProcessAllAvailable + } + return false +} + +func (x *StreamingQueryCommand) GetExplain() *StreamingQueryCommand_ExplainCommand { + if x, ok := x.GetCommand().(*StreamingQueryCommand_Explain); ok { + return x.Explain + } + return nil +} + +func (x *StreamingQueryCommand) GetException() bool { + if x, ok := x.GetCommand().(*StreamingQueryCommand_Exception); ok { + return x.Exception + } + return false +} + +func (x *StreamingQueryCommand) GetAwaitTermination() *StreamingQueryCommand_AwaitTerminationCommand { + if x, ok := x.GetCommand().(*StreamingQueryCommand_AwaitTermination); ok { + return x.AwaitTermination + } + return nil +} + +type isStreamingQueryCommand_Command interface { + isStreamingQueryCommand_Command() +} + +type StreamingQueryCommand_Status struct { + // status() API. + Status bool `protobuf:"varint,2,opt,name=status,proto3,oneof"` +} + +type StreamingQueryCommand_LastProgress struct { + // lastProgress() API. + LastProgress bool `protobuf:"varint,3,opt,name=last_progress,json=lastProgress,proto3,oneof"` +} + +type StreamingQueryCommand_RecentProgress struct { + // recentProgress() API. + RecentProgress bool `protobuf:"varint,4,opt,name=recent_progress,json=recentProgress,proto3,oneof"` +} + +type StreamingQueryCommand_Stop struct { + // stop() API. Stops the query. + Stop bool `protobuf:"varint,5,opt,name=stop,proto3,oneof"` +} + +type StreamingQueryCommand_ProcessAllAvailable struct { + // processAllAvailable() API. Waits till all the available data is processed + ProcessAllAvailable bool `protobuf:"varint,6,opt,name=process_all_available,json=processAllAvailable,proto3,oneof"` +} + +type StreamingQueryCommand_Explain struct { + // explain() API. Returns logical and physical plans. + Explain *StreamingQueryCommand_ExplainCommand `protobuf:"bytes,7,opt,name=explain,proto3,oneof"` +} + +type StreamingQueryCommand_Exception struct { + // exception() API. Returns the exception in the query if any. + Exception bool `protobuf:"varint,8,opt,name=exception,proto3,oneof"` +} + +type StreamingQueryCommand_AwaitTermination struct { + // awaitTermination() API. Waits for the termination of the query. + AwaitTermination *StreamingQueryCommand_AwaitTerminationCommand `protobuf:"bytes,9,opt,name=await_termination,json=awaitTermination,proto3,oneof"` +} + +func (*StreamingQueryCommand_Status) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_LastProgress) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_RecentProgress) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_Stop) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_ProcessAllAvailable) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_Explain) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_Exception) isStreamingQueryCommand_Command() {} + +func (*StreamingQueryCommand_AwaitTermination) isStreamingQueryCommand_Command() {} + +// Response for commands on a streaming query. +type StreamingQueryCommandResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Query instance id. See `StreamingQueryInstanceId`. + QueryId *StreamingQueryInstanceId `protobuf:"bytes,1,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` + // Types that are assignable to ResultType: + // + // *StreamingQueryCommandResult_Status + // *StreamingQueryCommandResult_RecentProgress + // *StreamingQueryCommandResult_Explain + // *StreamingQueryCommandResult_Exception + // *StreamingQueryCommandResult_AwaitTermination + ResultType isStreamingQueryCommandResult_ResultType `protobuf_oneof:"result_type"` +} + +func (x *StreamingQueryCommandResult) Reset() { + *x = StreamingQueryCommandResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingQueryCommandResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10} +} + +func (x *StreamingQueryCommandResult) GetQueryId() *StreamingQueryInstanceId { + if x != nil { + return x.QueryId + } + return nil +} + +func (m *StreamingQueryCommandResult) GetResultType() isStreamingQueryCommandResult_ResultType { + if m != nil { + return m.ResultType + } + return nil +} + +func (x *StreamingQueryCommandResult) GetStatus() *StreamingQueryCommandResult_StatusResult { + if x, ok := x.GetResultType().(*StreamingQueryCommandResult_Status); ok { + return x.Status + } + return nil +} + +func (x *StreamingQueryCommandResult) GetRecentProgress() *StreamingQueryCommandResult_RecentProgressResult { + if x, ok := x.GetResultType().(*StreamingQueryCommandResult_RecentProgress); ok { + return x.RecentProgress + } + return nil +} + +func (x *StreamingQueryCommandResult) GetExplain() *StreamingQueryCommandResult_ExplainResult { + if x, ok := x.GetResultType().(*StreamingQueryCommandResult_Explain); ok { + return x.Explain + } + return nil +} + +func (x *StreamingQueryCommandResult) GetException() *StreamingQueryCommandResult_ExceptionResult { + if x, ok := x.GetResultType().(*StreamingQueryCommandResult_Exception); ok { + return x.Exception + } + return nil +} + +func (x *StreamingQueryCommandResult) GetAwaitTermination() *StreamingQueryCommandResult_AwaitTerminationResult { + if x, ok := x.GetResultType().(*StreamingQueryCommandResult_AwaitTermination); ok { + return x.AwaitTermination + } + return nil +} + +type isStreamingQueryCommandResult_ResultType interface { + isStreamingQueryCommandResult_ResultType() +} + +type StreamingQueryCommandResult_Status struct { + Status *StreamingQueryCommandResult_StatusResult `protobuf:"bytes,2,opt,name=status,proto3,oneof"` +} + +type StreamingQueryCommandResult_RecentProgress struct { + RecentProgress *StreamingQueryCommandResult_RecentProgressResult `protobuf:"bytes,3,opt,name=recent_progress,json=recentProgress,proto3,oneof"` +} + +type StreamingQueryCommandResult_Explain struct { + Explain *StreamingQueryCommandResult_ExplainResult `protobuf:"bytes,4,opt,name=explain,proto3,oneof"` +} + +type StreamingQueryCommandResult_Exception struct { + Exception *StreamingQueryCommandResult_ExceptionResult `protobuf:"bytes,5,opt,name=exception,proto3,oneof"` +} + +type StreamingQueryCommandResult_AwaitTermination struct { + AwaitTermination *StreamingQueryCommandResult_AwaitTerminationResult `protobuf:"bytes,6,opt,name=await_termination,json=awaitTermination,proto3,oneof"` +} + +func (*StreamingQueryCommandResult_Status) isStreamingQueryCommandResult_ResultType() {} + +func (*StreamingQueryCommandResult_RecentProgress) isStreamingQueryCommandResult_ResultType() {} + +func (*StreamingQueryCommandResult_Explain) isStreamingQueryCommandResult_ResultType() {} + +func (*StreamingQueryCommandResult_Exception) isStreamingQueryCommandResult_ResultType() {} + +func (*StreamingQueryCommandResult_AwaitTermination) isStreamingQueryCommandResult_ResultType() {} + +// Commands for the streaming query manager. +type StreamingQueryManagerCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // See documentation for the corresponding API method in StreamingQueryManager. + // + // Types that are assignable to Command: + // + // *StreamingQueryManagerCommand_Active + // *StreamingQueryManagerCommand_GetQuery + // *StreamingQueryManagerCommand_AwaitAnyTermination + // *StreamingQueryManagerCommand_ResetTerminated + Command isStreamingQueryManagerCommand_Command `protobuf_oneof:"command"` +} + +func (x *StreamingQueryManagerCommand) Reset() { + *x = StreamingQueryManagerCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommand) ProtoMessage() {} + +func (x *StreamingQueryManagerCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingQueryManagerCommand.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{11} +} + +func (m *StreamingQueryManagerCommand) GetCommand() isStreamingQueryManagerCommand_Command { + if m != nil { + return m.Command + } + return nil +} + +func (x *StreamingQueryManagerCommand) GetActive() bool { + if x, ok := x.GetCommand().(*StreamingQueryManagerCommand_Active); ok { + return x.Active + } + return false +} + +func (x *StreamingQueryManagerCommand) GetGetQuery() string { + if x, ok := x.GetCommand().(*StreamingQueryManagerCommand_GetQuery); ok { + return x.GetQuery + } + return "" +} + +func (x *StreamingQueryManagerCommand) GetAwaitAnyTermination() *StreamingQueryManagerCommand_AwaitAnyTerminationCommand { + if x, ok := x.GetCommand().(*StreamingQueryManagerCommand_AwaitAnyTermination); ok { + return x.AwaitAnyTermination + } + return nil +} + +func (x *StreamingQueryManagerCommand) GetResetTerminated() bool { + if x, ok := x.GetCommand().(*StreamingQueryManagerCommand_ResetTerminated); ok { + return x.ResetTerminated + } + return false +} + +type isStreamingQueryManagerCommand_Command interface { + isStreamingQueryManagerCommand_Command() +} + +type StreamingQueryManagerCommand_Active struct { + // active() API, returns a list of active queries. + Active bool `protobuf:"varint,1,opt,name=active,proto3,oneof"` +} + +type StreamingQueryManagerCommand_GetQuery struct { + // get() API, returns the StreamingQuery identified by id. + GetQuery string `protobuf:"bytes,2,opt,name=get_query,json=getQuery,proto3,oneof"` +} + +type StreamingQueryManagerCommand_AwaitAnyTermination struct { + // awaitAnyTermination() API, wait until any query terminates or timeout. + AwaitAnyTermination *StreamingQueryManagerCommand_AwaitAnyTerminationCommand `protobuf:"bytes,3,opt,name=await_any_termination,json=awaitAnyTermination,proto3,oneof"` +} + +type StreamingQueryManagerCommand_ResetTerminated struct { + // resetTerminated() API. + ResetTerminated bool `protobuf:"varint,4,opt,name=reset_terminated,json=resetTerminated,proto3,oneof"` +} + +func (*StreamingQueryManagerCommand_Active) isStreamingQueryManagerCommand_Command() {} + +func (*StreamingQueryManagerCommand_GetQuery) isStreamingQueryManagerCommand_Command() {} + +func (*StreamingQueryManagerCommand_AwaitAnyTermination) isStreamingQueryManagerCommand_Command() {} + +func (*StreamingQueryManagerCommand_ResetTerminated) isStreamingQueryManagerCommand_Command() {} + +// Response for commands on the streaming query manager. +type StreamingQueryManagerCommandResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ResultType: + // + // *StreamingQueryManagerCommandResult_Active + // *StreamingQueryManagerCommandResult_Query + // *StreamingQueryManagerCommandResult_AwaitAnyTermination + // *StreamingQueryManagerCommandResult_ResetTerminated + ResultType isStreamingQueryManagerCommandResult_ResultType `protobuf_oneof:"result_type"` +} + +func (x *StreamingQueryManagerCommandResult) Reset() { + *x = StreamingQueryManagerCommandResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommandResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommandResult) ProtoMessage() {} + +func (x *StreamingQueryManagerCommandResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 StreamingQueryManagerCommandResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommandResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{12} +} + +func (m *StreamingQueryManagerCommandResult) GetResultType() isStreamingQueryManagerCommandResult_ResultType { + if m != nil { + return m.ResultType + } + return nil +} + +func (x *StreamingQueryManagerCommandResult) GetActive() *StreamingQueryManagerCommandResult_ActiveResult { + if x, ok := x.GetResultType().(*StreamingQueryManagerCommandResult_Active); ok { + return x.Active + } + return nil +} + +func (x *StreamingQueryManagerCommandResult) GetQuery() *StreamingQueryManagerCommandResult_StreamingQueryInstance { + if x, ok := x.GetResultType().(*StreamingQueryManagerCommandResult_Query); ok { + return x.Query + } + return nil +} + +func (x *StreamingQueryManagerCommandResult) GetAwaitAnyTermination() *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult { + if x, ok := x.GetResultType().(*StreamingQueryManagerCommandResult_AwaitAnyTermination); ok { + return x.AwaitAnyTermination + } + return nil +} + +func (x *StreamingQueryManagerCommandResult) GetResetTerminated() bool { + if x, ok := x.GetResultType().(*StreamingQueryManagerCommandResult_ResetTerminated); ok { + return x.ResetTerminated + } + return false +} + +type isStreamingQueryManagerCommandResult_ResultType interface { + isStreamingQueryManagerCommandResult_ResultType() +} + +type StreamingQueryManagerCommandResult_Active struct { + Active *StreamingQueryManagerCommandResult_ActiveResult `protobuf:"bytes,1,opt,name=active,proto3,oneof"` +} + +type StreamingQueryManagerCommandResult_Query struct { + Query *StreamingQueryManagerCommandResult_StreamingQueryInstance `protobuf:"bytes,2,opt,name=query,proto3,oneof"` +} + +type StreamingQueryManagerCommandResult_AwaitAnyTermination struct { + AwaitAnyTermination *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult `protobuf:"bytes,3,opt,name=await_any_termination,json=awaitAnyTermination,proto3,oneof"` +} + +type StreamingQueryManagerCommandResult_ResetTerminated struct { + ResetTerminated bool `protobuf:"varint,4,opt,name=reset_terminated,json=resetTerminated,proto3,oneof"` +} + +func (*StreamingQueryManagerCommandResult_Active) isStreamingQueryManagerCommandResult_ResultType() {} + +func (*StreamingQueryManagerCommandResult_Query) isStreamingQueryManagerCommandResult_ResultType() {} + +func (*StreamingQueryManagerCommandResult_AwaitAnyTermination) isStreamingQueryManagerCommandResult_ResultType() { +} + +func (*StreamingQueryManagerCommandResult_ResetTerminated) isStreamingQueryManagerCommandResult_ResultType() { +} + +// Command to get the output of 'SparkContext.resources' +type GetResourcesCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetResourcesCommand) Reset() { + *x = GetResourcesCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetResourcesCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetResourcesCommand) ProtoMessage() {} + +func (x *GetResourcesCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 GetResourcesCommand.ProtoReflect.Descriptor instead. +func (*GetResourcesCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{13} +} + +// Response for command 'GetResourcesCommand'. +type GetResourcesCommandResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Resources map[string]*ResourceInformation `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *GetResourcesCommandResult) Reset() { + *x = GetResourcesCommandResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetResourcesCommandResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetResourcesCommandResult) ProtoMessage() {} + +func (x *GetResourcesCommandResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 GetResourcesCommandResult.ProtoReflect.Descriptor instead. +func (*GetResourcesCommandResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{14} +} + +func (x *GetResourcesCommandResult) GetResources() map[string]*ResourceInformation { + if x != nil { + return x.Resources + } + return nil +} + +type WriteOperation_SaveTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The table name. + TableName string `protobuf:"bytes,1,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + // (Required) The method to be called to write to the table. + SaveMethod WriteOperation_SaveTable_TableSaveMethod `protobuf:"varint,2,opt,name=save_method,json=saveMethod,proto3,enum=spark.connect.WriteOperation_SaveTable_TableSaveMethod" json:"save_method,omitempty"` +} + +func (x *WriteOperation_SaveTable) Reset() { + *x = WriteOperation_SaveTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteOperation_SaveTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteOperation_SaveTable) ProtoMessage() {} + +func (x *WriteOperation_SaveTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteOperation_SaveTable.ProtoReflect.Descriptor instead. +func (*WriteOperation_SaveTable) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *WriteOperation_SaveTable) GetTableName() string { + if x != nil { + return x.TableName + } + return "" +} + +func (x *WriteOperation_SaveTable) GetSaveMethod() WriteOperation_SaveTable_TableSaveMethod { + if x != nil { + return x.SaveMethod + } + return WriteOperation_SaveTable_TABLE_SAVE_METHOD_UNSPECIFIED +} + +type WriteOperation_BucketBy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BucketColumnNames []string `protobuf:"bytes,1,rep,name=bucket_column_names,json=bucketColumnNames,proto3" json:"bucket_column_names,omitempty"` + NumBuckets int32 `protobuf:"varint,2,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"` +} + +func (x *WriteOperation_BucketBy) Reset() { + *x = WriteOperation_BucketBy{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteOperation_BucketBy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteOperation_BucketBy) ProtoMessage() {} + +func (x *WriteOperation_BucketBy) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_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 WriteOperation_BucketBy.ProtoReflect.Descriptor instead. +func (*WriteOperation_BucketBy) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *WriteOperation_BucketBy) GetBucketColumnNames() []string { + if x != nil { + return x.BucketColumnNames + } + return nil +} + +func (x *WriteOperation_BucketBy) GetNumBuckets() int32 { + if x != nil { + return x.NumBuckets + } + return 0 +} + +type StreamingQueryCommand_ExplainCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO: Consider reusing Explain from AnalyzePlanRequest message. + // + // We can not do this right now since it base.proto imports this file. + Extended bool `protobuf:"varint,1,opt,name=extended,proto3" json:"extended,omitempty"` +} + +func (x *StreamingQueryCommand_ExplainCommand) Reset() { + *x = StreamingQueryCommand_ExplainCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommand_ExplainCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommand_ExplainCommand) ProtoMessage() {} + +func (x *StreamingQueryCommand_ExplainCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[22] + 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 StreamingQueryCommand_ExplainCommand.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommand_ExplainCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *StreamingQueryCommand_ExplainCommand) GetExtended() bool { + if x != nil { + return x.Extended + } + return false +} + +type StreamingQueryCommand_AwaitTerminationCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TimeoutMs *int64 `protobuf:"varint,2,opt,name=timeout_ms,json=timeoutMs,proto3,oneof" json:"timeout_ms,omitempty"` +} + +func (x *StreamingQueryCommand_AwaitTerminationCommand) Reset() { + *x = StreamingQueryCommand_AwaitTerminationCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommand_AwaitTerminationCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommand_AwaitTerminationCommand) ProtoMessage() {} + +func (x *StreamingQueryCommand_AwaitTerminationCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[23] + 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 StreamingQueryCommand_AwaitTerminationCommand.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommand_AwaitTerminationCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{9, 1} +} + +func (x *StreamingQueryCommand_AwaitTerminationCommand) GetTimeoutMs() int64 { + if x != nil && x.TimeoutMs != nil { + return *x.TimeoutMs + } + return 0 +} + +type StreamingQueryCommandResult_StatusResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // See documentation for these Scala 'StreamingQueryStatus' struct + StatusMessage string `protobuf:"bytes,1,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + IsDataAvailable bool `protobuf:"varint,2,opt,name=is_data_available,json=isDataAvailable,proto3" json:"is_data_available,omitempty"` + IsTriggerActive bool `protobuf:"varint,3,opt,name=is_trigger_active,json=isTriggerActive,proto3" json:"is_trigger_active,omitempty"` + IsActive bool `protobuf:"varint,4,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` +} + +func (x *StreamingQueryCommandResult_StatusResult) Reset() { + *x = StreamingQueryCommandResult_StatusResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult_StatusResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult_StatusResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult_StatusResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[24] + 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 StreamingQueryCommandResult_StatusResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult_StatusResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10, 0} +} + +func (x *StreamingQueryCommandResult_StatusResult) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *StreamingQueryCommandResult_StatusResult) GetIsDataAvailable() bool { + if x != nil { + return x.IsDataAvailable + } + return false +} + +func (x *StreamingQueryCommandResult_StatusResult) GetIsTriggerActive() bool { + if x != nil { + return x.IsTriggerActive + } + return false +} + +func (x *StreamingQueryCommandResult_StatusResult) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +type StreamingQueryCommandResult_RecentProgressResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Progress reports as an array of json strings. + RecentProgressJson []string `protobuf:"bytes,5,rep,name=recent_progress_json,json=recentProgressJson,proto3" json:"recent_progress_json,omitempty"` +} + +func (x *StreamingQueryCommandResult_RecentProgressResult) Reset() { + *x = StreamingQueryCommandResult_RecentProgressResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult_RecentProgressResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult_RecentProgressResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult_RecentProgressResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[25] + 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 StreamingQueryCommandResult_RecentProgressResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult_RecentProgressResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10, 1} +} + +func (x *StreamingQueryCommandResult_RecentProgressResult) GetRecentProgressJson() []string { + if x != nil { + return x.RecentProgressJson + } + return nil +} + +type StreamingQueryCommandResult_ExplainResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Logical and physical plans as string + Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` +} + +func (x *StreamingQueryCommandResult_ExplainResult) Reset() { + *x = StreamingQueryCommandResult_ExplainResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult_ExplainResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult_ExplainResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult_ExplainResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[26] + 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 StreamingQueryCommandResult_ExplainResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult_ExplainResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10, 2} +} + +func (x *StreamingQueryCommandResult_ExplainResult) GetResult() string { + if x != nil { + return x.Result + } + return "" +} + +type StreamingQueryCommandResult_ExceptionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) Exception message as string, maps to the return value of original + // StreamingQueryException's toString method + ExceptionMessage *string `protobuf:"bytes,1,opt,name=exception_message,json=exceptionMessage,proto3,oneof" json:"exception_message,omitempty"` + // (Optional) Exception error class as string + ErrorClass *string `protobuf:"bytes,2,opt,name=error_class,json=errorClass,proto3,oneof" json:"error_class,omitempty"` + // (Optional) Exception stack trace as string + StackTrace *string `protobuf:"bytes,3,opt,name=stack_trace,json=stackTrace,proto3,oneof" json:"stack_trace,omitempty"` +} + +func (x *StreamingQueryCommandResult_ExceptionResult) Reset() { + *x = StreamingQueryCommandResult_ExceptionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult_ExceptionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult_ExceptionResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult_ExceptionResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[27] + 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 StreamingQueryCommandResult_ExceptionResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult_ExceptionResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10, 3} +} + +func (x *StreamingQueryCommandResult_ExceptionResult) GetExceptionMessage() string { + if x != nil && x.ExceptionMessage != nil { + return *x.ExceptionMessage + } + return "" +} + +func (x *StreamingQueryCommandResult_ExceptionResult) GetErrorClass() string { + if x != nil && x.ErrorClass != nil { + return *x.ErrorClass + } + return "" +} + +func (x *StreamingQueryCommandResult_ExceptionResult) GetStackTrace() string { + if x != nil && x.StackTrace != nil { + return *x.StackTrace + } + return "" +} + +type StreamingQueryCommandResult_AwaitTerminationResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Terminated bool `protobuf:"varint,1,opt,name=terminated,proto3" json:"terminated,omitempty"` +} + +func (x *StreamingQueryCommandResult_AwaitTerminationResult) Reset() { + *x = StreamingQueryCommandResult_AwaitTerminationResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryCommandResult_AwaitTerminationResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryCommandResult_AwaitTerminationResult) ProtoMessage() {} + +func (x *StreamingQueryCommandResult_AwaitTerminationResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[28] + 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 StreamingQueryCommandResult_AwaitTerminationResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryCommandResult_AwaitTerminationResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{10, 4} +} + +func (x *StreamingQueryCommandResult_AwaitTerminationResult) GetTerminated() bool { + if x != nil { + return x.Terminated + } + return false +} + +type StreamingQueryManagerCommand_AwaitAnyTerminationCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) The waiting time in milliseconds to wait for any query to terminate. + TimeoutMs *int64 `protobuf:"varint,1,opt,name=timeout_ms,json=timeoutMs,proto3,oneof" json:"timeout_ms,omitempty"` +} + +func (x *StreamingQueryManagerCommand_AwaitAnyTerminationCommand) Reset() { + *x = StreamingQueryManagerCommand_AwaitAnyTerminationCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommand_AwaitAnyTerminationCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommand_AwaitAnyTerminationCommand) ProtoMessage() {} + +func (x *StreamingQueryManagerCommand_AwaitAnyTerminationCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[29] + 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 StreamingQueryManagerCommand_AwaitAnyTerminationCommand.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommand_AwaitAnyTerminationCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{11, 0} +} + +func (x *StreamingQueryManagerCommand_AwaitAnyTerminationCommand) GetTimeoutMs() int64 { + if x != nil && x.TimeoutMs != nil { + return *x.TimeoutMs + } + return 0 +} + +type StreamingQueryManagerCommandResult_ActiveResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ActiveQueries []*StreamingQueryManagerCommandResult_StreamingQueryInstance `protobuf:"bytes,1,rep,name=active_queries,json=activeQueries,proto3" json:"active_queries,omitempty"` +} + +func (x *StreamingQueryManagerCommandResult_ActiveResult) Reset() { + *x = StreamingQueryManagerCommandResult_ActiveResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommandResult_ActiveResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommandResult_ActiveResult) ProtoMessage() {} + +func (x *StreamingQueryManagerCommandResult_ActiveResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[30] + 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 StreamingQueryManagerCommandResult_ActiveResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommandResult_ActiveResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *StreamingQueryManagerCommandResult_ActiveResult) GetActiveQueries() []*StreamingQueryManagerCommandResult_StreamingQueryInstance { + if x != nil { + return x.ActiveQueries + } + return nil +} + +type StreamingQueryManagerCommandResult_StreamingQueryInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The id and runId of this query. + Id *StreamingQueryInstanceId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // (Optional) The name of this query. + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` +} + +func (x *StreamingQueryManagerCommandResult_StreamingQueryInstance) Reset() { + *x = StreamingQueryManagerCommandResult_StreamingQueryInstance{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommandResult_StreamingQueryInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommandResult_StreamingQueryInstance) ProtoMessage() {} + +func (x *StreamingQueryManagerCommandResult_StreamingQueryInstance) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[31] + 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 StreamingQueryManagerCommandResult_StreamingQueryInstance.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommandResult_StreamingQueryInstance) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{12, 1} +} + +func (x *StreamingQueryManagerCommandResult_StreamingQueryInstance) GetId() *StreamingQueryInstanceId { + if x != nil { + return x.Id + } + return nil +} + +func (x *StreamingQueryManagerCommandResult_StreamingQueryInstance) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type StreamingQueryManagerCommandResult_AwaitAnyTerminationResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Terminated bool `protobuf:"varint,1,opt,name=terminated,proto3" json:"terminated,omitempty"` +} + +func (x *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) Reset() { + *x = StreamingQueryManagerCommandResult_AwaitAnyTerminationResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_commands_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) ProtoMessage() {} + +func (x *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_commands_proto_msgTypes[32] + 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 StreamingQueryManagerCommandResult_AwaitAnyTerminationResult.ProtoReflect.Descriptor instead. +func (*StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) Descriptor() ([]byte, []int) { + return file_spark_connect_commands_proto_rawDescGZIP(), []int{12, 2} +} + +func (x *StreamingQueryManagerCommandResult_AwaitAnyTerminationResult) GetTerminated() bool { + if x != nil { + return x.Terminated + } + return false +} + +var File_spark_connect_commands_proto protoreflect.FileDescriptor + +var file_spark_connect_commands_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x19, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, + 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x07, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x5d, 0x0a, 0x11, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x48, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x15, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x76, 0x69, + 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4f, 0x0a, 0x12, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x32, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x48, 0x00, 0x52, 0x10, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x3c, 0x0a, 0x0b, 0x73, + 0x71, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x73, + 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x6b, 0x0a, 0x1c, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x19, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x17, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, + 0x15, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x58, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x13, 0x67, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x74, 0x0a, 0x1f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, + 0x0a, 0x0a, 0x53, 0x71, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x73, 0x71, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x71, 0x6c, 0x12, 0x37, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x71, 0x6c, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x5a, 0x0a, 0x09, 0x41, 0x72, 0x67, 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, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x47, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x22, 0x9b, 0x08, 0x0a, + 0x0e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1b, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x3f, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x61, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2a, + 0x0a, 0x11, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x72, 0x74, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x43, 0x0a, + 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x79, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x42, 0x79, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x1a, 0x82, 0x02, 0x0a, 0x09, 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, + 0x0a, 0x73, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x7c, 0x0a, 0x0f, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, + 0x0a, 0x1d, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x45, 0x54, + 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x5f, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x41, 0x53, 0x5f, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x4e, 0x53, 0x45, + 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x4f, 0x10, 0x02, 0x1a, 0x5b, 0x0a, 0x08, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x42, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x08, 0x53, 0x61, 0x76, 0x65, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, + 0x0a, 0x10, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x45, + 0x4e, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x49, 0x46, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, + 0x10, 0x04, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xad, 0x06, 0x0a, 0x10, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, + 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x2e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, + 0x4a, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x1a, 0x42, 0x0a, 0x14, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x9f, 0x01, 0x0a, 0x04, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x12, + 0x1d, 0x0a, 0x19, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, 0x49, 0x54, + 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x0f, + 0x0a, 0x0b, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, + 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, + 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x5f, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x06, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xd0, 0x05, 0x0a, 0x19, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, + 0x4f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x17, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x18, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x16, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x12, + 0x14, 0x0a, 0x04, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x04, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x6f, 0x75, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1f, 0x0a, + 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x72, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x09, + 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x73, 0x69, 0x6e, + 0x6b, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, + 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, + 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, + 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x55, 0x44, 0x46, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x22, 0x79, 0x0a, 0x1f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, + 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, + 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x75, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, + 0x22, 0xf8, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x29, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, + 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x45, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, + 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, + 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x11, 0x61, 0x77, 0x61, 0x69, 0x74, + 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, 0x54, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x48, 0x00, 0x52, 0x10, 0x61, 0x77, 0x61, 0x69, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2c, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x1a, 0x4c, 0x0a, 0x17, 0x41, 0x77, 0x61, 0x69, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, + 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xf5, 0x08, 0x0a, 0x1b, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, + 0x51, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x6a, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0e, + 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, + 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6c, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x70, + 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x5a, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x70, 0x0a, 0x11, 0x61, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, 0x54, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, + 0x52, 0x10, 0x61, 0x77, 0x61, 0x69, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0xaa, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x44, 0x61, 0x74, 0x61, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x69, 0x73, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x1a, + 0x48, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x27, 0x0a, 0x0d, 0x45, 0x78, 0x70, + 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x1a, 0xc5, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x1a, 0x38, 0x0a, 0x16, 0x41, 0x77, + 0x61, 0x69, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xde, 0x02, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1d, + 0x0a, 0x09, 0x67, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x7c, 0x0a, + 0x15, 0x61, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, 0x41, + 0x6e, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x13, 0x61, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6e, 0x79, + 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x10, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x54, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x4f, 0x0a, 0x1a, 0x41, 0x77, 0x61, 0x69, + 0x74, 0x41, 0x6e, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xd3, 0x05, 0x0a, 0x22, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x60, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, + 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x15, 0x61, 0x77, 0x61, 0x69, + 0x74, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, + 0x41, 0x6e, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x13, 0x61, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6e, 0x79, + 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x10, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x54, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x7f, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x48, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x73, 0x0a, 0x16, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, + 0x0a, 0x19, 0x41, 0x77, 0x61, 0x69, 0x74, 0x41, 0x6e, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x55, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 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, 0x38, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x36, 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, + 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_commands_proto_rawDescOnce sync.Once + file_spark_connect_commands_proto_rawDescData = file_spark_connect_commands_proto_rawDesc +) + +func file_spark_connect_commands_proto_rawDescGZIP() []byte { + file_spark_connect_commands_proto_rawDescOnce.Do(func() { + file_spark_connect_commands_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_commands_proto_rawDescData) + }) + return file_spark_connect_commands_proto_rawDescData +} + +var file_spark_connect_commands_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_spark_connect_commands_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_spark_connect_commands_proto_goTypes = []interface{}{ + (WriteOperation_SaveMode)(0), // 0: spark.connect.WriteOperation.SaveMode + (WriteOperation_SaveTable_TableSaveMethod)(0), // 1: spark.connect.WriteOperation.SaveTable.TableSaveMethod + (WriteOperationV2_Mode)(0), // 2: spark.connect.WriteOperationV2.Mode + (*Command)(nil), // 3: spark.connect.Command + (*SqlCommand)(nil), // 4: spark.connect.SqlCommand + (*CreateDataFrameViewCommand)(nil), // 5: spark.connect.CreateDataFrameViewCommand + (*WriteOperation)(nil), // 6: spark.connect.WriteOperation + (*WriteOperationV2)(nil), // 7: spark.connect.WriteOperationV2 + (*WriteStreamOperationStart)(nil), // 8: spark.connect.WriteStreamOperationStart + (*StreamingForeachWriter)(nil), // 9: spark.connect.StreamingForeachWriter + (*WriteStreamOperationStartResult)(nil), // 10: spark.connect.WriteStreamOperationStartResult + (*StreamingQueryInstanceId)(nil), // 11: spark.connect.StreamingQueryInstanceId + (*StreamingQueryCommand)(nil), // 12: spark.connect.StreamingQueryCommand + (*StreamingQueryCommandResult)(nil), // 13: spark.connect.StreamingQueryCommandResult + (*StreamingQueryManagerCommand)(nil), // 14: spark.connect.StreamingQueryManagerCommand + (*StreamingQueryManagerCommandResult)(nil), // 15: spark.connect.StreamingQueryManagerCommandResult + (*GetResourcesCommand)(nil), // 16: spark.connect.GetResourcesCommand + (*GetResourcesCommandResult)(nil), // 17: spark.connect.GetResourcesCommandResult + nil, // 18: spark.connect.SqlCommand.ArgsEntry + nil, // 19: spark.connect.WriteOperation.OptionsEntry + (*WriteOperation_SaveTable)(nil), // 20: spark.connect.WriteOperation.SaveTable + (*WriteOperation_BucketBy)(nil), // 21: spark.connect.WriteOperation.BucketBy + nil, // 22: spark.connect.WriteOperationV2.OptionsEntry + nil, // 23: spark.connect.WriteOperationV2.TablePropertiesEntry + nil, // 24: spark.connect.WriteStreamOperationStart.OptionsEntry + (*StreamingQueryCommand_ExplainCommand)(nil), // 25: spark.connect.StreamingQueryCommand.ExplainCommand + (*StreamingQueryCommand_AwaitTerminationCommand)(nil), // 26: spark.connect.StreamingQueryCommand.AwaitTerminationCommand + (*StreamingQueryCommandResult_StatusResult)(nil), // 27: spark.connect.StreamingQueryCommandResult.StatusResult + (*StreamingQueryCommandResult_RecentProgressResult)(nil), // 28: spark.connect.StreamingQueryCommandResult.RecentProgressResult + (*StreamingQueryCommandResult_ExplainResult)(nil), // 29: spark.connect.StreamingQueryCommandResult.ExplainResult + (*StreamingQueryCommandResult_ExceptionResult)(nil), // 30: spark.connect.StreamingQueryCommandResult.ExceptionResult + (*StreamingQueryCommandResult_AwaitTerminationResult)(nil), // 31: spark.connect.StreamingQueryCommandResult.AwaitTerminationResult + (*StreamingQueryManagerCommand_AwaitAnyTerminationCommand)(nil), // 32: spark.connect.StreamingQueryManagerCommand.AwaitAnyTerminationCommand + (*StreamingQueryManagerCommandResult_ActiveResult)(nil), // 33: spark.connect.StreamingQueryManagerCommandResult.ActiveResult + (*StreamingQueryManagerCommandResult_StreamingQueryInstance)(nil), // 34: spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance + (*StreamingQueryManagerCommandResult_AwaitAnyTerminationResult)(nil), // 35: spark.connect.StreamingQueryManagerCommandResult.AwaitAnyTerminationResult + nil, // 36: spark.connect.GetResourcesCommandResult.ResourcesEntry + (*CommonInlineUserDefinedFunction)(nil), // 37: spark.connect.CommonInlineUserDefinedFunction + (*anypb.Any)(nil), // 38: google.protobuf.Any + (*Relation)(nil), // 39: spark.connect.Relation + (*Expression)(nil), // 40: spark.connect.Expression + (*PythonUDF)(nil), // 41: spark.connect.PythonUDF + (*Expression_Literal)(nil), // 42: spark.connect.Expression.Literal + (*ResourceInformation)(nil), // 43: spark.connect.ResourceInformation +} +var file_spark_connect_commands_proto_depIdxs = []int32{ + 37, // 0: spark.connect.Command.register_function:type_name -> spark.connect.CommonInlineUserDefinedFunction + 6, // 1: spark.connect.Command.write_operation:type_name -> spark.connect.WriteOperation + 5, // 2: spark.connect.Command.create_dataframe_view:type_name -> spark.connect.CreateDataFrameViewCommand + 7, // 3: spark.connect.Command.write_operation_v2:type_name -> spark.connect.WriteOperationV2 + 4, // 4: spark.connect.Command.sql_command:type_name -> spark.connect.SqlCommand + 8, // 5: spark.connect.Command.write_stream_operation_start:type_name -> spark.connect.WriteStreamOperationStart + 12, // 6: spark.connect.Command.streaming_query_command:type_name -> spark.connect.StreamingQueryCommand + 16, // 7: spark.connect.Command.get_resources_command:type_name -> spark.connect.GetResourcesCommand + 14, // 8: spark.connect.Command.streaming_query_manager_command:type_name -> spark.connect.StreamingQueryManagerCommand + 38, // 9: spark.connect.Command.extension:type_name -> google.protobuf.Any + 18, // 10: spark.connect.SqlCommand.args:type_name -> spark.connect.SqlCommand.ArgsEntry + 39, // 11: spark.connect.CreateDataFrameViewCommand.input:type_name -> spark.connect.Relation + 39, // 12: spark.connect.WriteOperation.input:type_name -> spark.connect.Relation + 20, // 13: spark.connect.WriteOperation.table:type_name -> spark.connect.WriteOperation.SaveTable + 0, // 14: spark.connect.WriteOperation.mode:type_name -> spark.connect.WriteOperation.SaveMode + 21, // 15: spark.connect.WriteOperation.bucket_by:type_name -> spark.connect.WriteOperation.BucketBy + 19, // 16: spark.connect.WriteOperation.options:type_name -> spark.connect.WriteOperation.OptionsEntry + 39, // 17: spark.connect.WriteOperationV2.input:type_name -> spark.connect.Relation + 40, // 18: spark.connect.WriteOperationV2.partitioning_columns:type_name -> spark.connect.Expression + 22, // 19: spark.connect.WriteOperationV2.options:type_name -> spark.connect.WriteOperationV2.OptionsEntry + 23, // 20: spark.connect.WriteOperationV2.table_properties:type_name -> spark.connect.WriteOperationV2.TablePropertiesEntry + 2, // 21: spark.connect.WriteOperationV2.mode:type_name -> spark.connect.WriteOperationV2.Mode + 40, // 22: spark.connect.WriteOperationV2.overwrite_condition:type_name -> spark.connect.Expression + 39, // 23: spark.connect.WriteStreamOperationStart.input:type_name -> spark.connect.Relation + 24, // 24: spark.connect.WriteStreamOperationStart.options:type_name -> spark.connect.WriteStreamOperationStart.OptionsEntry + 9, // 25: spark.connect.WriteStreamOperationStart.foreach_writer:type_name -> spark.connect.StreamingForeachWriter + 41, // 26: spark.connect.StreamingForeachWriter.python_writer:type_name -> spark.connect.PythonUDF + 11, // 27: spark.connect.WriteStreamOperationStartResult.query_id:type_name -> spark.connect.StreamingQueryInstanceId + 11, // 28: spark.connect.StreamingQueryCommand.query_id:type_name -> spark.connect.StreamingQueryInstanceId + 25, // 29: spark.connect.StreamingQueryCommand.explain:type_name -> spark.connect.StreamingQueryCommand.ExplainCommand + 26, // 30: spark.connect.StreamingQueryCommand.await_termination:type_name -> spark.connect.StreamingQueryCommand.AwaitTerminationCommand + 11, // 31: spark.connect.StreamingQueryCommandResult.query_id:type_name -> spark.connect.StreamingQueryInstanceId + 27, // 32: spark.connect.StreamingQueryCommandResult.status:type_name -> spark.connect.StreamingQueryCommandResult.StatusResult + 28, // 33: spark.connect.StreamingQueryCommandResult.recent_progress:type_name -> spark.connect.StreamingQueryCommandResult.RecentProgressResult + 29, // 34: spark.connect.StreamingQueryCommandResult.explain:type_name -> spark.connect.StreamingQueryCommandResult.ExplainResult + 30, // 35: spark.connect.StreamingQueryCommandResult.exception:type_name -> spark.connect.StreamingQueryCommandResult.ExceptionResult + 31, // 36: spark.connect.StreamingQueryCommandResult.await_termination:type_name -> spark.connect.StreamingQueryCommandResult.AwaitTerminationResult + 32, // 37: spark.connect.StreamingQueryManagerCommand.await_any_termination:type_name -> spark.connect.StreamingQueryManagerCommand.AwaitAnyTerminationCommand + 33, // 38: spark.connect.StreamingQueryManagerCommandResult.active:type_name -> spark.connect.StreamingQueryManagerCommandResult.ActiveResult + 34, // 39: spark.connect.StreamingQueryManagerCommandResult.query:type_name -> spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance + 35, // 40: spark.connect.StreamingQueryManagerCommandResult.await_any_termination:type_name -> spark.connect.StreamingQueryManagerCommandResult.AwaitAnyTerminationResult + 36, // 41: spark.connect.GetResourcesCommandResult.resources:type_name -> spark.connect.GetResourcesCommandResult.ResourcesEntry + 42, // 42: spark.connect.SqlCommand.ArgsEntry.value:type_name -> spark.connect.Expression.Literal + 1, // 43: spark.connect.WriteOperation.SaveTable.save_method:type_name -> spark.connect.WriteOperation.SaveTable.TableSaveMethod + 34, // 44: spark.connect.StreamingQueryManagerCommandResult.ActiveResult.active_queries:type_name -> spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance + 11, // 45: spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance.id:type_name -> spark.connect.StreamingQueryInstanceId + 43, // 46: spark.connect.GetResourcesCommandResult.ResourcesEntry.value:type_name -> spark.connect.ResourceInformation + 47, // [47:47] is the sub-list for method output_type + 47, // [47:47] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name +} + +func init() { file_spark_connect_commands_proto_init() } +func file_spark_connect_commands_proto_init() { + if File_spark_connect_commands_proto != nil { + return + } + file_spark_connect_common_proto_init() + file_spark_connect_expressions_proto_init() + file_spark_connect_relations_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_commands_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Command); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SqlCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDataFrameViewCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteOperation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteOperationV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteStreamOperationStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingForeachWriter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteStreamOperationStartResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryInstanceId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommandResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetResourcesCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetResourcesCommandResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteOperation_SaveTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteOperation_BucketBy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommand_ExplainCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommand_AwaitTerminationCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult_StatusResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult_RecentProgressResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult_ExplainResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult_ExceptionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryCommandResult_AwaitTerminationResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommand_AwaitAnyTerminationCommand); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommandResult_ActiveResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommandResult_StreamingQueryInstance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_commands_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingQueryManagerCommandResult_AwaitAnyTerminationResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_commands_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Command_RegisterFunction)(nil), + (*Command_WriteOperation)(nil), + (*Command_CreateDataframeView)(nil), + (*Command_WriteOperationV2)(nil), + (*Command_SqlCommand)(nil), + (*Command_WriteStreamOperationStart)(nil), + (*Command_StreamingQueryCommand)(nil), + (*Command_GetResourcesCommand)(nil), + (*Command_StreamingQueryManagerCommand)(nil), + (*Command_Extension)(nil), + } + file_spark_connect_commands_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*WriteOperation_Path)(nil), + (*WriteOperation_Table)(nil), + } + file_spark_connect_commands_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_spark_connect_commands_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*WriteStreamOperationStart_ProcessingTimeInterval)(nil), + (*WriteStreamOperationStart_AvailableNow)(nil), + (*WriteStreamOperationStart_Once)(nil), + (*WriteStreamOperationStart_ContinuousCheckpointInterval)(nil), + (*WriteStreamOperationStart_Path)(nil), + (*WriteStreamOperationStart_TableName)(nil), + } + file_spark_connect_commands_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*StreamingForeachWriter_PythonWriter)(nil), + } + file_spark_connect_commands_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*StreamingQueryCommand_Status)(nil), + (*StreamingQueryCommand_LastProgress)(nil), + (*StreamingQueryCommand_RecentProgress)(nil), + (*StreamingQueryCommand_Stop)(nil), + (*StreamingQueryCommand_ProcessAllAvailable)(nil), + (*StreamingQueryCommand_Explain)(nil), + (*StreamingQueryCommand_Exception)(nil), + (*StreamingQueryCommand_AwaitTermination)(nil), + } + file_spark_connect_commands_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*StreamingQueryCommandResult_Status)(nil), + (*StreamingQueryCommandResult_RecentProgress)(nil), + (*StreamingQueryCommandResult_Explain)(nil), + (*StreamingQueryCommandResult_Exception)(nil), + (*StreamingQueryCommandResult_AwaitTermination)(nil), + } + file_spark_connect_commands_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*StreamingQueryManagerCommand_Active)(nil), + (*StreamingQueryManagerCommand_GetQuery)(nil), + (*StreamingQueryManagerCommand_AwaitAnyTermination)(nil), + (*StreamingQueryManagerCommand_ResetTerminated)(nil), + } + file_spark_connect_commands_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*StreamingQueryManagerCommandResult_Active)(nil), + (*StreamingQueryManagerCommandResult_Query)(nil), + (*StreamingQueryManagerCommandResult_AwaitAnyTermination)(nil), + (*StreamingQueryManagerCommandResult_ResetTerminated)(nil), + } + file_spark_connect_commands_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_spark_connect_commands_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_spark_connect_commands_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_spark_connect_commands_proto_msgTypes[31].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_commands_proto_rawDesc, + NumEnums: 3, + NumMessages: 34, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_commands_proto_goTypes, + DependencyIndexes: file_spark_connect_commands_proto_depIdxs, + EnumInfos: file_spark_connect_commands_proto_enumTypes, + MessageInfos: file_spark_connect_commands_proto_msgTypes, + }.Build() + File_spark_connect_commands_proto = out.File + file_spark_connect_commands_proto_rawDesc = nil + file_spark_connect_commands_proto_goTypes = nil + file_spark_connect_commands_proto_depIdxs = nil +} diff --git a/internal/generated/common.pb.go b/internal/generated/common.pb.go new file mode 100644 index 0000000..1979aa7 --- /dev/null +++ b/internal/generated/common.pb.go @@ -0,0 +1,285 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/common.proto + +package generated + +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) +) + +// StorageLevel for persisting Datasets/Tables. +type StorageLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Whether the cache should use disk or not. + UseDisk bool `protobuf:"varint,1,opt,name=use_disk,json=useDisk,proto3" json:"use_disk,omitempty"` + // (Required) Whether the cache should use memory or not. + UseMemory bool `protobuf:"varint,2,opt,name=use_memory,json=useMemory,proto3" json:"use_memory,omitempty"` + // (Required) Whether the cache should use off-heap or not. + UseOffHeap bool `protobuf:"varint,3,opt,name=use_off_heap,json=useOffHeap,proto3" json:"use_off_heap,omitempty"` + // (Required) Whether the cached data is deserialized or not. + Deserialized bool `protobuf:"varint,4,opt,name=deserialized,proto3" json:"deserialized,omitempty"` + // (Required) The number of replicas. + Replication int32 `protobuf:"varint,5,opt,name=replication,proto3" json:"replication,omitempty"` +} + +func (x *StorageLevel) Reset() { + *x = StorageLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StorageLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StorageLevel) ProtoMessage() {} + +func (x *StorageLevel) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_common_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 StorageLevel.ProtoReflect.Descriptor instead. +func (*StorageLevel) Descriptor() ([]byte, []int) { + return file_spark_connect_common_proto_rawDescGZIP(), []int{0} +} + +func (x *StorageLevel) GetUseDisk() bool { + if x != nil { + return x.UseDisk + } + return false +} + +func (x *StorageLevel) GetUseMemory() bool { + if x != nil { + return x.UseMemory + } + return false +} + +func (x *StorageLevel) GetUseOffHeap() bool { + if x != nil { + return x.UseOffHeap + } + return false +} + +func (x *StorageLevel) GetDeserialized() bool { + if x != nil { + return x.Deserialized + } + return false +} + +func (x *StorageLevel) GetReplication() int32 { + if x != nil { + return x.Replication + } + return 0 +} + +// ResourceInformation to hold information about a type of Resource. +// The corresponding class is 'org.apache.spark.resource.ResourceInformation' +type ResourceInformation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // (Required) An array of strings describing the addresses of the resource. + Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ResourceInformation) Reset() { + *x = ResourceInformation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceInformation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceInformation) ProtoMessage() {} + +func (x *ResourceInformation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_common_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 ResourceInformation.ProtoReflect.Descriptor instead. +func (*ResourceInformation) Descriptor() ([]byte, []int) { + return file_spark_connect_common_proto_rawDescGZIP(), []int{1} +} + +func (x *ResourceInformation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceInformation) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +var File_spark_connect_common_proto protoreflect.FileDescriptor + +var file_spark_connect_common_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x0c, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x75, 0x73, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x6f, 0x66, + 0x66, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, + 0x65, 0x4f, 0x66, 0x66, 0x48, 0x65, 0x61, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x64, 0x65, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x47, + 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x36, 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, 0x61, + 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_common_proto_rawDescOnce sync.Once + file_spark_connect_common_proto_rawDescData = file_spark_connect_common_proto_rawDesc +) + +func file_spark_connect_common_proto_rawDescGZIP() []byte { + file_spark_connect_common_proto_rawDescOnce.Do(func() { + file_spark_connect_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_common_proto_rawDescData) + }) + return file_spark_connect_common_proto_rawDescData +} + +var file_spark_connect_common_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_spark_connect_common_proto_goTypes = []interface{}{ + (*StorageLevel)(nil), // 0: spark.connect.StorageLevel + (*ResourceInformation)(nil), // 1: spark.connect.ResourceInformation +} +var file_spark_connect_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_spark_connect_common_proto_init() } +func file_spark_connect_common_proto_init() { + if File_spark_connect_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_spark_connect_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StorageLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceInformation); 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_spark_connect_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_common_proto_goTypes, + DependencyIndexes: file_spark_connect_common_proto_depIdxs, + MessageInfos: file_spark_connect_common_proto_msgTypes, + }.Build() + File_spark_connect_common_proto = out.File + file_spark_connect_common_proto_rawDesc = nil + file_spark_connect_common_proto_goTypes = nil + file_spark_connect_common_proto_depIdxs = nil +} diff --git a/internal/generated/example_plugins.pb.go b/internal/generated/example_plugins.pb.go new file mode 100644 index 0000000..2cc05e5 --- /dev/null +++ b/internal/generated/example_plugins.pb.go @@ -0,0 +1,323 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/example_plugins.proto + +package generated + +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 ExamplePluginRelation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + CustomField string `protobuf:"bytes,2,opt,name=custom_field,json=customField,proto3" json:"custom_field,omitempty"` +} + +func (x *ExamplePluginRelation) Reset() { + *x = ExamplePluginRelation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_example_plugins_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExamplePluginRelation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExamplePluginRelation) ProtoMessage() {} + +func (x *ExamplePluginRelation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_example_plugins_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 ExamplePluginRelation.ProtoReflect.Descriptor instead. +func (*ExamplePluginRelation) Descriptor() ([]byte, []int) { + return file_spark_connect_example_plugins_proto_rawDescGZIP(), []int{0} +} + +func (x *ExamplePluginRelation) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *ExamplePluginRelation) GetCustomField() string { + if x != nil { + return x.CustomField + } + return "" +} + +type ExamplePluginExpression struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Child *Expression `protobuf:"bytes,1,opt,name=child,proto3" json:"child,omitempty"` + CustomField string `protobuf:"bytes,2,opt,name=custom_field,json=customField,proto3" json:"custom_field,omitempty"` +} + +func (x *ExamplePluginExpression) Reset() { + *x = ExamplePluginExpression{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_example_plugins_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExamplePluginExpression) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExamplePluginExpression) ProtoMessage() {} + +func (x *ExamplePluginExpression) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_example_plugins_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 ExamplePluginExpression.ProtoReflect.Descriptor instead. +func (*ExamplePluginExpression) Descriptor() ([]byte, []int) { + return file_spark_connect_example_plugins_proto_rawDescGZIP(), []int{1} +} + +func (x *ExamplePluginExpression) GetChild() *Expression { + if x != nil { + return x.Child + } + return nil +} + +func (x *ExamplePluginExpression) GetCustomField() string { + if x != nil { + return x.CustomField + } + return "" +} + +type ExamplePluginCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CustomField string `protobuf:"bytes,1,opt,name=custom_field,json=customField,proto3" json:"custom_field,omitempty"` +} + +func (x *ExamplePluginCommand) Reset() { + *x = ExamplePluginCommand{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_example_plugins_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExamplePluginCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExamplePluginCommand) ProtoMessage() {} + +func (x *ExamplePluginCommand) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_example_plugins_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 ExamplePluginCommand.ProtoReflect.Descriptor instead. +func (*ExamplePluginCommand) Descriptor() ([]byte, []int) { + return file_spark_connect_example_plugins_proto_rawDescGZIP(), []int{2} +} + +func (x *ExamplePluginCommand) GetCustomField() string { + if x != nil { + return x.CustomField + } + return "" +} + +var File_spark_connect_example_plugins_proto protoreflect.FileDescriptor + +var file_spark_connect_example_plugins_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x1d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x15, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, + 0x6d, 0x0a, 0x17, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x39, + 0x0a, 0x14, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x36, 0x0a, 0x1e, 0x6f, 0x72, 0x67, + 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_example_plugins_proto_rawDescOnce sync.Once + file_spark_connect_example_plugins_proto_rawDescData = file_spark_connect_example_plugins_proto_rawDesc +) + +func file_spark_connect_example_plugins_proto_rawDescGZIP() []byte { + file_spark_connect_example_plugins_proto_rawDescOnce.Do(func() { + file_spark_connect_example_plugins_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_example_plugins_proto_rawDescData) + }) + return file_spark_connect_example_plugins_proto_rawDescData +} + +var file_spark_connect_example_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_spark_connect_example_plugins_proto_goTypes = []interface{}{ + (*ExamplePluginRelation)(nil), // 0: spark.connect.ExamplePluginRelation + (*ExamplePluginExpression)(nil), // 1: spark.connect.ExamplePluginExpression + (*ExamplePluginCommand)(nil), // 2: spark.connect.ExamplePluginCommand + (*Relation)(nil), // 3: spark.connect.Relation + (*Expression)(nil), // 4: spark.connect.Expression +} +var file_spark_connect_example_plugins_proto_depIdxs = []int32{ + 3, // 0: spark.connect.ExamplePluginRelation.input:type_name -> spark.connect.Relation + 4, // 1: spark.connect.ExamplePluginExpression.child:type_name -> spark.connect.Expression + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_spark_connect_example_plugins_proto_init() } +func file_spark_connect_example_plugins_proto_init() { + if File_spark_connect_example_plugins_proto != nil { + return + } + file_spark_connect_relations_proto_init() + file_spark_connect_expressions_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_example_plugins_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExamplePluginRelation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_example_plugins_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExamplePluginExpression); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_example_plugins_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExamplePluginCommand); 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_spark_connect_example_plugins_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_example_plugins_proto_goTypes, + DependencyIndexes: file_spark_connect_example_plugins_proto_depIdxs, + MessageInfos: file_spark_connect_example_plugins_proto_msgTypes, + }.Build() + File_spark_connect_example_plugins_proto = out.File + file_spark_connect_example_plugins_proto_rawDesc = nil + file_spark_connect_example_plugins_proto_goTypes = nil + file_spark_connect_example_plugins_proto_depIdxs = nil +} diff --git a/internal/generated/expressions.pb.go b/internal/generated/expressions.pb.go new file mode 100644 index 0000000..71570d3 --- /dev/null +++ b/internal/generated/expressions.pb.go @@ -0,0 +1,3400 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/expressions.proto + +package generated + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + 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 Expression_Window_WindowFrame_FrameType int32 + +const ( + Expression_Window_WindowFrame_FRAME_TYPE_UNDEFINED Expression_Window_WindowFrame_FrameType = 0 + // RowFrame treats rows in a partition individually. + Expression_Window_WindowFrame_FRAME_TYPE_ROW Expression_Window_WindowFrame_FrameType = 1 + // RangeFrame treats rows in a partition as groups of peers. + // All rows having the same 'ORDER BY' ordering are considered as peers. + Expression_Window_WindowFrame_FRAME_TYPE_RANGE Expression_Window_WindowFrame_FrameType = 2 +) + +// Enum value maps for Expression_Window_WindowFrame_FrameType. +var ( + Expression_Window_WindowFrame_FrameType_name = map[int32]string{ + 0: "FRAME_TYPE_UNDEFINED", + 1: "FRAME_TYPE_ROW", + 2: "FRAME_TYPE_RANGE", + } + Expression_Window_WindowFrame_FrameType_value = map[string]int32{ + "FRAME_TYPE_UNDEFINED": 0, + "FRAME_TYPE_ROW": 1, + "FRAME_TYPE_RANGE": 2, + } +) + +func (x Expression_Window_WindowFrame_FrameType) Enum() *Expression_Window_WindowFrame_FrameType { + p := new(Expression_Window_WindowFrame_FrameType) + *p = x + return p +} + +func (x Expression_Window_WindowFrame_FrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Expression_Window_WindowFrame_FrameType) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_expressions_proto_enumTypes[0].Descriptor() +} + +func (Expression_Window_WindowFrame_FrameType) Type() protoreflect.EnumType { + return &file_spark_connect_expressions_proto_enumTypes[0] +} + +func (x Expression_Window_WindowFrame_FrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Expression_Window_WindowFrame_FrameType.Descriptor instead. +func (Expression_Window_WindowFrame_FrameType) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 0, 0, 0} +} + +type Expression_SortOrder_SortDirection int32 + +const ( + Expression_SortOrder_SORT_DIRECTION_UNSPECIFIED Expression_SortOrder_SortDirection = 0 + Expression_SortOrder_SORT_DIRECTION_ASCENDING Expression_SortOrder_SortDirection = 1 + Expression_SortOrder_SORT_DIRECTION_DESCENDING Expression_SortOrder_SortDirection = 2 +) + +// Enum value maps for Expression_SortOrder_SortDirection. +var ( + Expression_SortOrder_SortDirection_name = map[int32]string{ + 0: "SORT_DIRECTION_UNSPECIFIED", + 1: "SORT_DIRECTION_ASCENDING", + 2: "SORT_DIRECTION_DESCENDING", + } + Expression_SortOrder_SortDirection_value = map[string]int32{ + "SORT_DIRECTION_UNSPECIFIED": 0, + "SORT_DIRECTION_ASCENDING": 1, + "SORT_DIRECTION_DESCENDING": 2, + } +) + +func (x Expression_SortOrder_SortDirection) Enum() *Expression_SortOrder_SortDirection { + p := new(Expression_SortOrder_SortDirection) + *p = x + return p +} + +func (x Expression_SortOrder_SortDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Expression_SortOrder_SortDirection) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_expressions_proto_enumTypes[1].Descriptor() +} + +func (Expression_SortOrder_SortDirection) Type() protoreflect.EnumType { + return &file_spark_connect_expressions_proto_enumTypes[1] +} + +func (x Expression_SortOrder_SortDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Expression_SortOrder_SortDirection.Descriptor instead. +func (Expression_SortOrder_SortDirection) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 1, 0} +} + +type Expression_SortOrder_NullOrdering int32 + +const ( + Expression_SortOrder_SORT_NULLS_UNSPECIFIED Expression_SortOrder_NullOrdering = 0 + Expression_SortOrder_SORT_NULLS_FIRST Expression_SortOrder_NullOrdering = 1 + Expression_SortOrder_SORT_NULLS_LAST Expression_SortOrder_NullOrdering = 2 +) + +// Enum value maps for Expression_SortOrder_NullOrdering. +var ( + Expression_SortOrder_NullOrdering_name = map[int32]string{ + 0: "SORT_NULLS_UNSPECIFIED", + 1: "SORT_NULLS_FIRST", + 2: "SORT_NULLS_LAST", + } + Expression_SortOrder_NullOrdering_value = map[string]int32{ + "SORT_NULLS_UNSPECIFIED": 0, + "SORT_NULLS_FIRST": 1, + "SORT_NULLS_LAST": 2, + } +) + +func (x Expression_SortOrder_NullOrdering) Enum() *Expression_SortOrder_NullOrdering { + p := new(Expression_SortOrder_NullOrdering) + *p = x + return p +} + +func (x Expression_SortOrder_NullOrdering) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Expression_SortOrder_NullOrdering) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_expressions_proto_enumTypes[2].Descriptor() +} + +func (Expression_SortOrder_NullOrdering) Type() protoreflect.EnumType { + return &file_spark_connect_expressions_proto_enumTypes[2] +} + +func (x Expression_SortOrder_NullOrdering) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Expression_SortOrder_NullOrdering.Descriptor instead. +func (Expression_SortOrder_NullOrdering) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 1, 1} +} + +// Expression used to refer to fields, functions and similar. This can be used everywhere +// expressions in SQL appear. +type Expression struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ExprType: + // + // *Expression_Literal_ + // *Expression_UnresolvedAttribute_ + // *Expression_UnresolvedFunction_ + // *Expression_ExpressionString_ + // *Expression_UnresolvedStar_ + // *Expression_Alias_ + // *Expression_Cast_ + // *Expression_UnresolvedRegex_ + // *Expression_SortOrder_ + // *Expression_LambdaFunction_ + // *Expression_Window_ + // *Expression_UnresolvedExtractValue_ + // *Expression_UpdateFields_ + // *Expression_UnresolvedNamedLambdaVariable_ + // *Expression_CommonInlineUserDefinedFunction + // *Expression_Extension + ExprType isExpression_ExprType `protobuf_oneof:"expr_type"` +} + +func (x *Expression) Reset() { + *x = Expression{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression) ProtoMessage() {} + +func (x *Expression) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression.ProtoReflect.Descriptor instead. +func (*Expression) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0} +} + +func (m *Expression) GetExprType() isExpression_ExprType { + if m != nil { + return m.ExprType + } + return nil +} + +func (x *Expression) GetLiteral() *Expression_Literal { + if x, ok := x.GetExprType().(*Expression_Literal_); ok { + return x.Literal + } + return nil +} + +func (x *Expression) GetUnresolvedAttribute() *Expression_UnresolvedAttribute { + if x, ok := x.GetExprType().(*Expression_UnresolvedAttribute_); ok { + return x.UnresolvedAttribute + } + return nil +} + +func (x *Expression) GetUnresolvedFunction() *Expression_UnresolvedFunction { + if x, ok := x.GetExprType().(*Expression_UnresolvedFunction_); ok { + return x.UnresolvedFunction + } + return nil +} + +func (x *Expression) GetExpressionString() *Expression_ExpressionString { + if x, ok := x.GetExprType().(*Expression_ExpressionString_); ok { + return x.ExpressionString + } + return nil +} + +func (x *Expression) GetUnresolvedStar() *Expression_UnresolvedStar { + if x, ok := x.GetExprType().(*Expression_UnresolvedStar_); ok { + return x.UnresolvedStar + } + return nil +} + +func (x *Expression) GetAlias() *Expression_Alias { + if x, ok := x.GetExprType().(*Expression_Alias_); ok { + return x.Alias + } + return nil +} + +func (x *Expression) GetCast() *Expression_Cast { + if x, ok := x.GetExprType().(*Expression_Cast_); ok { + return x.Cast + } + return nil +} + +func (x *Expression) GetUnresolvedRegex() *Expression_UnresolvedRegex { + if x, ok := x.GetExprType().(*Expression_UnresolvedRegex_); ok { + return x.UnresolvedRegex + } + return nil +} + +func (x *Expression) GetSortOrder() *Expression_SortOrder { + if x, ok := x.GetExprType().(*Expression_SortOrder_); ok { + return x.SortOrder + } + return nil +} + +func (x *Expression) GetLambdaFunction() *Expression_LambdaFunction { + if x, ok := x.GetExprType().(*Expression_LambdaFunction_); ok { + return x.LambdaFunction + } + return nil +} + +func (x *Expression) GetWindow() *Expression_Window { + if x, ok := x.GetExprType().(*Expression_Window_); ok { + return x.Window + } + return nil +} + +func (x *Expression) GetUnresolvedExtractValue() *Expression_UnresolvedExtractValue { + if x, ok := x.GetExprType().(*Expression_UnresolvedExtractValue_); ok { + return x.UnresolvedExtractValue + } + return nil +} + +func (x *Expression) GetUpdateFields() *Expression_UpdateFields { + if x, ok := x.GetExprType().(*Expression_UpdateFields_); ok { + return x.UpdateFields + } + return nil +} + +func (x *Expression) GetUnresolvedNamedLambdaVariable() *Expression_UnresolvedNamedLambdaVariable { + if x, ok := x.GetExprType().(*Expression_UnresolvedNamedLambdaVariable_); ok { + return x.UnresolvedNamedLambdaVariable + } + return nil +} + +func (x *Expression) GetCommonInlineUserDefinedFunction() *CommonInlineUserDefinedFunction { + if x, ok := x.GetExprType().(*Expression_CommonInlineUserDefinedFunction); ok { + return x.CommonInlineUserDefinedFunction + } + return nil +} + +func (x *Expression) GetExtension() *anypb.Any { + if x, ok := x.GetExprType().(*Expression_Extension); ok { + return x.Extension + } + return nil +} + +type isExpression_ExprType interface { + isExpression_ExprType() +} + +type Expression_Literal_ struct { + Literal *Expression_Literal `protobuf:"bytes,1,opt,name=literal,proto3,oneof"` +} + +type Expression_UnresolvedAttribute_ struct { + UnresolvedAttribute *Expression_UnresolvedAttribute `protobuf:"bytes,2,opt,name=unresolved_attribute,json=unresolvedAttribute,proto3,oneof"` +} + +type Expression_UnresolvedFunction_ struct { + UnresolvedFunction *Expression_UnresolvedFunction `protobuf:"bytes,3,opt,name=unresolved_function,json=unresolvedFunction,proto3,oneof"` +} + +type Expression_ExpressionString_ struct { + ExpressionString *Expression_ExpressionString `protobuf:"bytes,4,opt,name=expression_string,json=expressionString,proto3,oneof"` +} + +type Expression_UnresolvedStar_ struct { + UnresolvedStar *Expression_UnresolvedStar `protobuf:"bytes,5,opt,name=unresolved_star,json=unresolvedStar,proto3,oneof"` +} + +type Expression_Alias_ struct { + Alias *Expression_Alias `protobuf:"bytes,6,opt,name=alias,proto3,oneof"` +} + +type Expression_Cast_ struct { + Cast *Expression_Cast `protobuf:"bytes,7,opt,name=cast,proto3,oneof"` +} + +type Expression_UnresolvedRegex_ struct { + UnresolvedRegex *Expression_UnresolvedRegex `protobuf:"bytes,8,opt,name=unresolved_regex,json=unresolvedRegex,proto3,oneof"` +} + +type Expression_SortOrder_ struct { + SortOrder *Expression_SortOrder `protobuf:"bytes,9,opt,name=sort_order,json=sortOrder,proto3,oneof"` +} + +type Expression_LambdaFunction_ struct { + LambdaFunction *Expression_LambdaFunction `protobuf:"bytes,10,opt,name=lambda_function,json=lambdaFunction,proto3,oneof"` +} + +type Expression_Window_ struct { + Window *Expression_Window `protobuf:"bytes,11,opt,name=window,proto3,oneof"` +} + +type Expression_UnresolvedExtractValue_ struct { + UnresolvedExtractValue *Expression_UnresolvedExtractValue `protobuf:"bytes,12,opt,name=unresolved_extract_value,json=unresolvedExtractValue,proto3,oneof"` +} + +type Expression_UpdateFields_ struct { + UpdateFields *Expression_UpdateFields `protobuf:"bytes,13,opt,name=update_fields,json=updateFields,proto3,oneof"` +} + +type Expression_UnresolvedNamedLambdaVariable_ struct { + UnresolvedNamedLambdaVariable *Expression_UnresolvedNamedLambdaVariable `protobuf:"bytes,14,opt,name=unresolved_named_lambda_variable,json=unresolvedNamedLambdaVariable,proto3,oneof"` +} + +type Expression_CommonInlineUserDefinedFunction struct { + CommonInlineUserDefinedFunction *CommonInlineUserDefinedFunction `protobuf:"bytes,15,opt,name=common_inline_user_defined_function,json=commonInlineUserDefinedFunction,proto3,oneof"` +} + +type Expression_Extension struct { + // This field is used to mark extensions to the protocol. When plugins generate arbitrary + // relations they can add them here. During the planning the correct resolution is done. + Extension *anypb.Any `protobuf:"bytes,999,opt,name=extension,proto3,oneof"` +} + +func (*Expression_Literal_) isExpression_ExprType() {} + +func (*Expression_UnresolvedAttribute_) isExpression_ExprType() {} + +func (*Expression_UnresolvedFunction_) isExpression_ExprType() {} + +func (*Expression_ExpressionString_) isExpression_ExprType() {} + +func (*Expression_UnresolvedStar_) isExpression_ExprType() {} + +func (*Expression_Alias_) isExpression_ExprType() {} + +func (*Expression_Cast_) isExpression_ExprType() {} + +func (*Expression_UnresolvedRegex_) isExpression_ExprType() {} + +func (*Expression_SortOrder_) isExpression_ExprType() {} + +func (*Expression_LambdaFunction_) isExpression_ExprType() {} + +func (*Expression_Window_) isExpression_ExprType() {} + +func (*Expression_UnresolvedExtractValue_) isExpression_ExprType() {} + +func (*Expression_UpdateFields_) isExpression_ExprType() {} + +func (*Expression_UnresolvedNamedLambdaVariable_) isExpression_ExprType() {} + +func (*Expression_CommonInlineUserDefinedFunction) isExpression_ExprType() {} + +func (*Expression_Extension) isExpression_ExprType() {} + +type CommonInlineUserDefinedFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Name of the user-defined function. + FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + // (Optional) Indicate if the user-defined function is deterministic. + Deterministic bool `protobuf:"varint,2,opt,name=deterministic,proto3" json:"deterministic,omitempty"` + // (Optional) Function arguments. Empty arguments are allowed. + Arguments []*Expression `protobuf:"bytes,3,rep,name=arguments,proto3" json:"arguments,omitempty"` + // (Required) Indicate the function type of the user-defined function. + // + // Types that are assignable to Function: + // + // *CommonInlineUserDefinedFunction_PythonUdf + // *CommonInlineUserDefinedFunction_ScalarScalaUdf + // *CommonInlineUserDefinedFunction_JavaUdf + Function isCommonInlineUserDefinedFunction_Function `protobuf_oneof:"function"` +} + +func (x *CommonInlineUserDefinedFunction) Reset() { + *x = CommonInlineUserDefinedFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonInlineUserDefinedFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonInlineUserDefinedFunction) ProtoMessage() {} + +func (x *CommonInlineUserDefinedFunction) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 CommonInlineUserDefinedFunction.ProtoReflect.Descriptor instead. +func (*CommonInlineUserDefinedFunction) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{1} +} + +func (x *CommonInlineUserDefinedFunction) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *CommonInlineUserDefinedFunction) GetDeterministic() bool { + if x != nil { + return x.Deterministic + } + return false +} + +func (x *CommonInlineUserDefinedFunction) GetArguments() []*Expression { + if x != nil { + return x.Arguments + } + return nil +} + +func (m *CommonInlineUserDefinedFunction) GetFunction() isCommonInlineUserDefinedFunction_Function { + if m != nil { + return m.Function + } + return nil +} + +func (x *CommonInlineUserDefinedFunction) GetPythonUdf() *PythonUDF { + if x, ok := x.GetFunction().(*CommonInlineUserDefinedFunction_PythonUdf); ok { + return x.PythonUdf + } + return nil +} + +func (x *CommonInlineUserDefinedFunction) GetScalarScalaUdf() *ScalarScalaUDF { + if x, ok := x.GetFunction().(*CommonInlineUserDefinedFunction_ScalarScalaUdf); ok { + return x.ScalarScalaUdf + } + return nil +} + +func (x *CommonInlineUserDefinedFunction) GetJavaUdf() *JavaUDF { + if x, ok := x.GetFunction().(*CommonInlineUserDefinedFunction_JavaUdf); ok { + return x.JavaUdf + } + return nil +} + +type isCommonInlineUserDefinedFunction_Function interface { + isCommonInlineUserDefinedFunction_Function() +} + +type CommonInlineUserDefinedFunction_PythonUdf struct { + PythonUdf *PythonUDF `protobuf:"bytes,4,opt,name=python_udf,json=pythonUdf,proto3,oneof"` +} + +type CommonInlineUserDefinedFunction_ScalarScalaUdf struct { + ScalarScalaUdf *ScalarScalaUDF `protobuf:"bytes,5,opt,name=scalar_scala_udf,json=scalarScalaUdf,proto3,oneof"` +} + +type CommonInlineUserDefinedFunction_JavaUdf struct { + JavaUdf *JavaUDF `protobuf:"bytes,6,opt,name=java_udf,json=javaUdf,proto3,oneof"` +} + +func (*CommonInlineUserDefinedFunction_PythonUdf) isCommonInlineUserDefinedFunction_Function() {} + +func (*CommonInlineUserDefinedFunction_ScalarScalaUdf) isCommonInlineUserDefinedFunction_Function() {} + +func (*CommonInlineUserDefinedFunction_JavaUdf) isCommonInlineUserDefinedFunction_Function() {} + +type PythonUDF struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Output type of the Python UDF + OutputType *DataType `protobuf:"bytes,1,opt,name=output_type,json=outputType,proto3" json:"output_type,omitempty"` + // (Required) EvalType of the Python UDF + EvalType int32 `protobuf:"varint,2,opt,name=eval_type,json=evalType,proto3" json:"eval_type,omitempty"` + // (Required) The encoded commands of the Python UDF + Command []byte `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"` + // (Required) Python version being used in the client. + PythonVer string `protobuf:"bytes,4,opt,name=python_ver,json=pythonVer,proto3" json:"python_ver,omitempty"` +} + +func (x *PythonUDF) Reset() { + *x = PythonUDF{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PythonUDF) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PythonUDF) ProtoMessage() {} + +func (x *PythonUDF) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 PythonUDF.ProtoReflect.Descriptor instead. +func (*PythonUDF) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{2} +} + +func (x *PythonUDF) GetOutputType() *DataType { + if x != nil { + return x.OutputType + } + return nil +} + +func (x *PythonUDF) GetEvalType() int32 { + if x != nil { + return x.EvalType + } + return 0 +} + +func (x *PythonUDF) GetCommand() []byte { + if x != nil { + return x.Command + } + return nil +} + +func (x *PythonUDF) GetPythonVer() string { + if x != nil { + return x.PythonVer + } + return "" +} + +type ScalarScalaUDF struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Serialized JVM object containing UDF definition, input encoders and output encoder + Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + // (Optional) Input type(s) of the UDF + InputTypes []*DataType `protobuf:"bytes,2,rep,name=inputTypes,proto3" json:"inputTypes,omitempty"` + // (Required) Output type of the UDF + OutputType *DataType `protobuf:"bytes,3,opt,name=outputType,proto3" json:"outputType,omitempty"` + // (Required) True if the UDF can return null value + Nullable bool `protobuf:"varint,4,opt,name=nullable,proto3" json:"nullable,omitempty"` +} + +func (x *ScalarScalaUDF) Reset() { + *x = ScalarScalaUDF{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScalarScalaUDF) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScalarScalaUDF) ProtoMessage() {} + +func (x *ScalarScalaUDF) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 ScalarScalaUDF.ProtoReflect.Descriptor instead. +func (*ScalarScalaUDF) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{3} +} + +func (x *ScalarScalaUDF) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +func (x *ScalarScalaUDF) GetInputTypes() []*DataType { + if x != nil { + return x.InputTypes + } + return nil +} + +func (x *ScalarScalaUDF) GetOutputType() *DataType { + if x != nil { + return x.OutputType + } + return nil +} + +func (x *ScalarScalaUDF) GetNullable() bool { + if x != nil { + return x.Nullable + } + return false +} + +type JavaUDF struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Fully qualified name of Java class + ClassName string `protobuf:"bytes,1,opt,name=class_name,json=className,proto3" json:"class_name,omitempty"` + // (Optional) Output type of the Java UDF + OutputType *DataType `protobuf:"bytes,2,opt,name=output_type,json=outputType,proto3,oneof" json:"output_type,omitempty"` + // (Required) Indicate if the Java user-defined function is an aggregate function + Aggregate bool `protobuf:"varint,3,opt,name=aggregate,proto3" json:"aggregate,omitempty"` +} + +func (x *JavaUDF) Reset() { + *x = JavaUDF{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JavaUDF) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JavaUDF) ProtoMessage() {} + +func (x *JavaUDF) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 JavaUDF.ProtoReflect.Descriptor instead. +func (*JavaUDF) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{4} +} + +func (x *JavaUDF) GetClassName() string { + if x != nil { + return x.ClassName + } + return "" +} + +func (x *JavaUDF) GetOutputType() *DataType { + if x != nil { + return x.OutputType + } + return nil +} + +func (x *JavaUDF) GetAggregate() bool { + if x != nil { + return x.Aggregate + } + return false +} + +// Expression for the OVER clause or WINDOW clause. +type Expression_Window struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The window function. + WindowFunction *Expression `protobuf:"bytes,1,opt,name=window_function,json=windowFunction,proto3" json:"window_function,omitempty"` + // (Optional) The way that input rows are partitioned. + PartitionSpec []*Expression `protobuf:"bytes,2,rep,name=partition_spec,json=partitionSpec,proto3" json:"partition_spec,omitempty"` + // (Optional) Ordering of rows in a partition. + OrderSpec []*Expression_SortOrder `protobuf:"bytes,3,rep,name=order_spec,json=orderSpec,proto3" json:"order_spec,omitempty"` + // (Optional) Window frame in a partition. + // + // If not set, it will be treated as 'UnspecifiedFrame'. + FrameSpec *Expression_Window_WindowFrame `protobuf:"bytes,4,opt,name=frame_spec,json=frameSpec,proto3" json:"frame_spec,omitempty"` +} + +func (x *Expression_Window) Reset() { + *x = Expression_Window{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Window) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Window) ProtoMessage() {} + +func (x *Expression_Window) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Window.ProtoReflect.Descriptor instead. +func (*Expression_Window) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Expression_Window) GetWindowFunction() *Expression { + if x != nil { + return x.WindowFunction + } + return nil +} + +func (x *Expression_Window) GetPartitionSpec() []*Expression { + if x != nil { + return x.PartitionSpec + } + return nil +} + +func (x *Expression_Window) GetOrderSpec() []*Expression_SortOrder { + if x != nil { + return x.OrderSpec + } + return nil +} + +func (x *Expression_Window) GetFrameSpec() *Expression_Window_WindowFrame { + if x != nil { + return x.FrameSpec + } + return nil +} + +// SortOrder is used to specify the data ordering, it is normally used in Sort and Window. +// It is an unevaluable expression and cannot be evaluated, so can not be used in Projection. +type Expression_SortOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The expression to be sorted. + Child *Expression `protobuf:"bytes,1,opt,name=child,proto3" json:"child,omitempty"` + // (Required) The sort direction, should be ASCENDING or DESCENDING. + Direction Expression_SortOrder_SortDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=spark.connect.Expression_SortOrder_SortDirection" json:"direction,omitempty"` + // (Required) How to deal with NULLs, should be NULLS_FIRST or NULLS_LAST. + NullOrdering Expression_SortOrder_NullOrdering `protobuf:"varint,3,opt,name=null_ordering,json=nullOrdering,proto3,enum=spark.connect.Expression_SortOrder_NullOrdering" json:"null_ordering,omitempty"` +} + +func (x *Expression_SortOrder) Reset() { + *x = Expression_SortOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_SortOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_SortOrder) ProtoMessage() {} + +func (x *Expression_SortOrder) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_SortOrder.ProtoReflect.Descriptor instead. +func (*Expression_SortOrder) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *Expression_SortOrder) GetChild() *Expression { + if x != nil { + return x.Child + } + return nil +} + +func (x *Expression_SortOrder) GetDirection() Expression_SortOrder_SortDirection { + if x != nil { + return x.Direction + } + return Expression_SortOrder_SORT_DIRECTION_UNSPECIFIED +} + +func (x *Expression_SortOrder) GetNullOrdering() Expression_SortOrder_NullOrdering { + if x != nil { + return x.NullOrdering + } + return Expression_SortOrder_SORT_NULLS_UNSPECIFIED +} + +type Expression_Cast struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) the expression to be casted. + Expr *Expression `protobuf:"bytes,1,opt,name=expr,proto3" json:"expr,omitempty"` + // (Required) the data type that the expr to be casted to. + // + // Types that are assignable to CastToType: + // + // *Expression_Cast_Type + // *Expression_Cast_TypeStr + CastToType isExpression_Cast_CastToType `protobuf_oneof:"cast_to_type"` +} + +func (x *Expression_Cast) Reset() { + *x = Expression_Cast{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Cast) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Cast) ProtoMessage() {} + +func (x *Expression_Cast) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Cast.ProtoReflect.Descriptor instead. +func (*Expression_Cast) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *Expression_Cast) GetExpr() *Expression { + if x != nil { + return x.Expr + } + return nil +} + +func (m *Expression_Cast) GetCastToType() isExpression_Cast_CastToType { + if m != nil { + return m.CastToType + } + return nil +} + +func (x *Expression_Cast) GetType() *DataType { + if x, ok := x.GetCastToType().(*Expression_Cast_Type); ok { + return x.Type + } + return nil +} + +func (x *Expression_Cast) GetTypeStr() string { + if x, ok := x.GetCastToType().(*Expression_Cast_TypeStr); ok { + return x.TypeStr + } + return "" +} + +type isExpression_Cast_CastToType interface { + isExpression_Cast_CastToType() +} + +type Expression_Cast_Type struct { + Type *DataType `protobuf:"bytes,2,opt,name=type,proto3,oneof"` +} + +type Expression_Cast_TypeStr struct { + // If this is set, Server will use Catalyst parser to parse this string to DataType. + TypeStr string `protobuf:"bytes,3,opt,name=type_str,json=typeStr,proto3,oneof"` +} + +func (*Expression_Cast_Type) isExpression_Cast_CastToType() {} + +func (*Expression_Cast_TypeStr) isExpression_Cast_CastToType() {} + +type Expression_Literal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to LiteralType: + // + // *Expression_Literal_Null + // *Expression_Literal_Binary + // *Expression_Literal_Boolean + // *Expression_Literal_Byte + // *Expression_Literal_Short + // *Expression_Literal_Integer + // *Expression_Literal_Long + // *Expression_Literal_Float + // *Expression_Literal_Double + // *Expression_Literal_Decimal_ + // *Expression_Literal_String_ + // *Expression_Literal_Date + // *Expression_Literal_Timestamp + // *Expression_Literal_TimestampNtz + // *Expression_Literal_CalendarInterval_ + // *Expression_Literal_YearMonthInterval + // *Expression_Literal_DayTimeInterval + // *Expression_Literal_Array_ + // *Expression_Literal_Map_ + // *Expression_Literal_Struct_ + LiteralType isExpression_Literal_LiteralType `protobuf_oneof:"literal_type"` +} + +func (x *Expression_Literal) Reset() { + *x = Expression_Literal{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal) ProtoMessage() {} + +func (x *Expression_Literal) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Literal.ProtoReflect.Descriptor instead. +func (*Expression_Literal) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3} +} + +func (m *Expression_Literal) GetLiteralType() isExpression_Literal_LiteralType { + if m != nil { + return m.LiteralType + } + return nil +} + +func (x *Expression_Literal) GetNull() *DataType { + if x, ok := x.GetLiteralType().(*Expression_Literal_Null); ok { + return x.Null + } + return nil +} + +func (x *Expression_Literal) GetBinary() []byte { + if x, ok := x.GetLiteralType().(*Expression_Literal_Binary); ok { + return x.Binary + } + return nil +} + +func (x *Expression_Literal) GetBoolean() bool { + if x, ok := x.GetLiteralType().(*Expression_Literal_Boolean); ok { + return x.Boolean + } + return false +} + +func (x *Expression_Literal) GetByte() int32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Byte); ok { + return x.Byte + } + return 0 +} + +func (x *Expression_Literal) GetShort() int32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Short); ok { + return x.Short + } + return 0 +} + +func (x *Expression_Literal) GetInteger() int32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Integer); ok { + return x.Integer + } + return 0 +} + +func (x *Expression_Literal) GetLong() int64 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Long); ok { + return x.Long + } + return 0 +} + +func (x *Expression_Literal) GetFloat() float32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Float); ok { + return x.Float + } + return 0 +} + +func (x *Expression_Literal) GetDouble() float64 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Double); ok { + return x.Double + } + return 0 +} + +func (x *Expression_Literal) GetDecimal() *Expression_Literal_Decimal { + if x, ok := x.GetLiteralType().(*Expression_Literal_Decimal_); ok { + return x.Decimal + } + return nil +} + +func (x *Expression_Literal) GetString_() string { + if x, ok := x.GetLiteralType().(*Expression_Literal_String_); ok { + return x.String_ + } + return "" +} + +func (x *Expression_Literal) GetDate() int32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Date); ok { + return x.Date + } + return 0 +} + +func (x *Expression_Literal) GetTimestamp() int64 { + if x, ok := x.GetLiteralType().(*Expression_Literal_Timestamp); ok { + return x.Timestamp + } + return 0 +} + +func (x *Expression_Literal) GetTimestampNtz() int64 { + if x, ok := x.GetLiteralType().(*Expression_Literal_TimestampNtz); ok { + return x.TimestampNtz + } + return 0 +} + +func (x *Expression_Literal) GetCalendarInterval() *Expression_Literal_CalendarInterval { + if x, ok := x.GetLiteralType().(*Expression_Literal_CalendarInterval_); ok { + return x.CalendarInterval + } + return nil +} + +func (x *Expression_Literal) GetYearMonthInterval() int32 { + if x, ok := x.GetLiteralType().(*Expression_Literal_YearMonthInterval); ok { + return x.YearMonthInterval + } + return 0 +} + +func (x *Expression_Literal) GetDayTimeInterval() int64 { + if x, ok := x.GetLiteralType().(*Expression_Literal_DayTimeInterval); ok { + return x.DayTimeInterval + } + return 0 +} + +func (x *Expression_Literal) GetArray() *Expression_Literal_Array { + if x, ok := x.GetLiteralType().(*Expression_Literal_Array_); ok { + return x.Array + } + return nil +} + +func (x *Expression_Literal) GetMap() *Expression_Literal_Map { + if x, ok := x.GetLiteralType().(*Expression_Literal_Map_); ok { + return x.Map + } + return nil +} + +func (x *Expression_Literal) GetStruct() *Expression_Literal_Struct { + if x, ok := x.GetLiteralType().(*Expression_Literal_Struct_); ok { + return x.Struct + } + return nil +} + +type isExpression_Literal_LiteralType interface { + isExpression_Literal_LiteralType() +} + +type Expression_Literal_Null struct { + Null *DataType `protobuf:"bytes,1,opt,name=null,proto3,oneof"` +} + +type Expression_Literal_Binary struct { + Binary []byte `protobuf:"bytes,2,opt,name=binary,proto3,oneof"` +} + +type Expression_Literal_Boolean struct { + Boolean bool `protobuf:"varint,3,opt,name=boolean,proto3,oneof"` +} + +type Expression_Literal_Byte struct { + Byte int32 `protobuf:"varint,4,opt,name=byte,proto3,oneof"` +} + +type Expression_Literal_Short struct { + Short int32 `protobuf:"varint,5,opt,name=short,proto3,oneof"` +} + +type Expression_Literal_Integer struct { + Integer int32 `protobuf:"varint,6,opt,name=integer,proto3,oneof"` +} + +type Expression_Literal_Long struct { + Long int64 `protobuf:"varint,7,opt,name=long,proto3,oneof"` +} + +type Expression_Literal_Float struct { + Float float32 `protobuf:"fixed32,10,opt,name=float,proto3,oneof"` +} + +type Expression_Literal_Double struct { + Double float64 `protobuf:"fixed64,11,opt,name=double,proto3,oneof"` +} + +type Expression_Literal_Decimal_ struct { + Decimal *Expression_Literal_Decimal `protobuf:"bytes,12,opt,name=decimal,proto3,oneof"` +} + +type Expression_Literal_String_ struct { + String_ string `protobuf:"bytes,13,opt,name=string,proto3,oneof"` +} + +type Expression_Literal_Date struct { + // Date in units of days since the UNIX epoch. + Date int32 `protobuf:"varint,16,opt,name=date,proto3,oneof"` +} + +type Expression_Literal_Timestamp struct { + // Timestamp in units of microseconds since the UNIX epoch. + Timestamp int64 `protobuf:"varint,17,opt,name=timestamp,proto3,oneof"` +} + +type Expression_Literal_TimestampNtz struct { + // Timestamp in units of microseconds since the UNIX epoch (without timezone information). + TimestampNtz int64 `protobuf:"varint,18,opt,name=timestamp_ntz,json=timestampNtz,proto3,oneof"` +} + +type Expression_Literal_CalendarInterval_ struct { + CalendarInterval *Expression_Literal_CalendarInterval `protobuf:"bytes,19,opt,name=calendar_interval,json=calendarInterval,proto3,oneof"` +} + +type Expression_Literal_YearMonthInterval struct { + YearMonthInterval int32 `protobuf:"varint,20,opt,name=year_month_interval,json=yearMonthInterval,proto3,oneof"` +} + +type Expression_Literal_DayTimeInterval struct { + DayTimeInterval int64 `protobuf:"varint,21,opt,name=day_time_interval,json=dayTimeInterval,proto3,oneof"` +} + +type Expression_Literal_Array_ struct { + Array *Expression_Literal_Array `protobuf:"bytes,22,opt,name=array,proto3,oneof"` +} + +type Expression_Literal_Map_ struct { + Map *Expression_Literal_Map `protobuf:"bytes,23,opt,name=map,proto3,oneof"` +} + +type Expression_Literal_Struct_ struct { + Struct *Expression_Literal_Struct `protobuf:"bytes,24,opt,name=struct,proto3,oneof"` +} + +func (*Expression_Literal_Null) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Binary) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Boolean) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Byte) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Short) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Integer) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Long) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Float) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Double) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Decimal_) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_String_) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Date) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Timestamp) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_TimestampNtz) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_CalendarInterval_) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_YearMonthInterval) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_DayTimeInterval) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Array_) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Map_) isExpression_Literal_LiteralType() {} + +func (*Expression_Literal_Struct_) isExpression_Literal_LiteralType() {} + +// An unresolved attribute that is not explicitly bound to a specific column, but the column +// is resolved during analysis by name. +type Expression_UnresolvedAttribute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) An identifier that will be parsed by Catalyst parser. This should follow the + // Spark SQL identifier syntax. + UnparsedIdentifier string `protobuf:"bytes,1,opt,name=unparsed_identifier,json=unparsedIdentifier,proto3" json:"unparsed_identifier,omitempty"` + // (Optional) The id of corresponding connect plan. + PlanId *int64 `protobuf:"varint,2,opt,name=plan_id,json=planId,proto3,oneof" json:"plan_id,omitempty"` +} + +func (x *Expression_UnresolvedAttribute) Reset() { + *x = Expression_UnresolvedAttribute{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedAttribute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedAttribute) ProtoMessage() {} + +func (x *Expression_UnresolvedAttribute) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedAttribute.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedAttribute) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *Expression_UnresolvedAttribute) GetUnparsedIdentifier() string { + if x != nil { + return x.UnparsedIdentifier + } + return "" +} + +func (x *Expression_UnresolvedAttribute) GetPlanId() int64 { + if x != nil && x.PlanId != nil { + return *x.PlanId + } + return 0 +} + +// An unresolved function is not explicitly bound to one explicit function, but the function +// is resolved during analysis following Sparks name resolution rules. +type Expression_UnresolvedFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) name (or unparsed name for user defined function) for the unresolved function. + FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + // (Optional) Function arguments. Empty arguments are allowed. + Arguments []*Expression `protobuf:"bytes,2,rep,name=arguments,proto3" json:"arguments,omitempty"` + // (Required) Indicate if this function should be applied on distinct values. + IsDistinct bool `protobuf:"varint,3,opt,name=is_distinct,json=isDistinct,proto3" json:"is_distinct,omitempty"` + // (Required) Indicate if this is a user defined function. + // + // When it is not a user defined function, Connect will use the function name directly. + // When it is a user defined function, Connect will parse the function name first. + IsUserDefinedFunction bool `protobuf:"varint,4,opt,name=is_user_defined_function,json=isUserDefinedFunction,proto3" json:"is_user_defined_function,omitempty"` +} + +func (x *Expression_UnresolvedFunction) Reset() { + *x = Expression_UnresolvedFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedFunction) ProtoMessage() {} + +func (x *Expression_UnresolvedFunction) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedFunction.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedFunction) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *Expression_UnresolvedFunction) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *Expression_UnresolvedFunction) GetArguments() []*Expression { + if x != nil { + return x.Arguments + } + return nil +} + +func (x *Expression_UnresolvedFunction) GetIsDistinct() bool { + if x != nil { + return x.IsDistinct + } + return false +} + +func (x *Expression_UnresolvedFunction) GetIsUserDefinedFunction() bool { + if x != nil { + return x.IsUserDefinedFunction + } + return false +} + +// Expression as string. +type Expression_ExpressionString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) A SQL expression that will be parsed by Catalyst parser. + Expression string `protobuf:"bytes,1,opt,name=expression,proto3" json:"expression,omitempty"` +} + +func (x *Expression_ExpressionString) Reset() { + *x = Expression_ExpressionString{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_ExpressionString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_ExpressionString) ProtoMessage() {} + +func (x *Expression_ExpressionString) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_ExpressionString.ProtoReflect.Descriptor instead. +func (*Expression_ExpressionString) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 6} +} + +func (x *Expression_ExpressionString) GetExpression() string { + if x != nil { + return x.Expression + } + return "" +} + +// UnresolvedStar is used to expand all the fields of a relation or struct. +type Expression_UnresolvedStar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) The target of the expansion. + // + // If set, it should end with '.*' and will be parsed by 'parseAttributeName' + // in the server side. + UnparsedTarget *string `protobuf:"bytes,1,opt,name=unparsed_target,json=unparsedTarget,proto3,oneof" json:"unparsed_target,omitempty"` +} + +func (x *Expression_UnresolvedStar) Reset() { + *x = Expression_UnresolvedStar{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedStar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedStar) ProtoMessage() {} + +func (x *Expression_UnresolvedStar) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedStar.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedStar) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 7} +} + +func (x *Expression_UnresolvedStar) GetUnparsedTarget() string { + if x != nil && x.UnparsedTarget != nil { + return *x.UnparsedTarget + } + return "" +} + +// Represents all of the input attributes to a given relational operator, for example in +// "SELECT `(id)?+.+` FROM ...". +type Expression_UnresolvedRegex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The column name used to extract column with regex. + ColName string `protobuf:"bytes,1,opt,name=col_name,json=colName,proto3" json:"col_name,omitempty"` + // (Optional) The id of corresponding connect plan. + PlanId *int64 `protobuf:"varint,2,opt,name=plan_id,json=planId,proto3,oneof" json:"plan_id,omitempty"` +} + +func (x *Expression_UnresolvedRegex) Reset() { + *x = Expression_UnresolvedRegex{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedRegex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedRegex) ProtoMessage() {} + +func (x *Expression_UnresolvedRegex) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedRegex.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedRegex) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 8} +} + +func (x *Expression_UnresolvedRegex) GetColName() string { + if x != nil { + return x.ColName + } + return "" +} + +func (x *Expression_UnresolvedRegex) GetPlanId() int64 { + if x != nil && x.PlanId != nil { + return *x.PlanId + } + return 0 +} + +// Extracts a value or values from an Expression +type Expression_UnresolvedExtractValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The expression to extract value from, can be + // Map, Array, Struct or array of Structs. + Child *Expression `protobuf:"bytes,1,opt,name=child,proto3" json:"child,omitempty"` + // (Required) The expression to describe the extraction, can be + // key of Map, index of Array, field name of Struct. + Extraction *Expression `protobuf:"bytes,2,opt,name=extraction,proto3" json:"extraction,omitempty"` +} + +func (x *Expression_UnresolvedExtractValue) Reset() { + *x = Expression_UnresolvedExtractValue{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedExtractValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedExtractValue) ProtoMessage() {} + +func (x *Expression_UnresolvedExtractValue) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedExtractValue.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedExtractValue) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 9} +} + +func (x *Expression_UnresolvedExtractValue) GetChild() *Expression { + if x != nil { + return x.Child + } + return nil +} + +func (x *Expression_UnresolvedExtractValue) GetExtraction() *Expression { + if x != nil { + return x.Extraction + } + return nil +} + +// Add, replace or drop a field of `StructType` expression by name. +type Expression_UpdateFields struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The struct expression. + StructExpression *Expression `protobuf:"bytes,1,opt,name=struct_expression,json=structExpression,proto3" json:"struct_expression,omitempty"` + // (Required) The field name. + FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // (Optional) The expression to add or replace. + // + // When not set, it means this field will be dropped. + ValueExpression *Expression `protobuf:"bytes,3,opt,name=value_expression,json=valueExpression,proto3" json:"value_expression,omitempty"` +} + +func (x *Expression_UpdateFields) Reset() { + *x = Expression_UpdateFields{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UpdateFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UpdateFields) ProtoMessage() {} + +func (x *Expression_UpdateFields) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UpdateFields.ProtoReflect.Descriptor instead. +func (*Expression_UpdateFields) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 10} +} + +func (x *Expression_UpdateFields) GetStructExpression() *Expression { + if x != nil { + return x.StructExpression + } + return nil +} + +func (x *Expression_UpdateFields) GetFieldName() string { + if x != nil { + return x.FieldName + } + return "" +} + +func (x *Expression_UpdateFields) GetValueExpression() *Expression { + if x != nil { + return x.ValueExpression + } + return nil +} + +type Expression_Alias struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The expression that alias will be added on. + Expr *Expression `protobuf:"bytes,1,opt,name=expr,proto3" json:"expr,omitempty"` + // (Required) a list of name parts for the alias. + // + // Scalar columns only has one name that presents. + Name []string `protobuf:"bytes,2,rep,name=name,proto3" json:"name,omitempty"` + // (Optional) Alias metadata expressed as a JSON map. + Metadata *string `protobuf:"bytes,3,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` +} + +func (x *Expression_Alias) Reset() { + *x = Expression_Alias{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Alias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Alias) ProtoMessage() {} + +func (x *Expression_Alias) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Alias.ProtoReflect.Descriptor instead. +func (*Expression_Alias) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 11} +} + +func (x *Expression_Alias) GetExpr() *Expression { + if x != nil { + return x.Expr + } + return nil +} + +func (x *Expression_Alias) GetName() []string { + if x != nil { + return x.Name + } + return nil +} + +func (x *Expression_Alias) GetMetadata() string { + if x != nil && x.Metadata != nil { + return *x.Metadata + } + return "" +} + +type Expression_LambdaFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The lambda function. + // + // The function body should use 'UnresolvedAttribute' as arguments, the sever side will + // replace 'UnresolvedAttribute' with 'UnresolvedNamedLambdaVariable'. + Function *Expression `protobuf:"bytes,1,opt,name=function,proto3" json:"function,omitempty"` + // (Required) Function variables. Must contains 1 ~ 3 variables. + Arguments []*Expression_UnresolvedNamedLambdaVariable `protobuf:"bytes,2,rep,name=arguments,proto3" json:"arguments,omitempty"` +} + +func (x *Expression_LambdaFunction) Reset() { + *x = Expression_LambdaFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_LambdaFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_LambdaFunction) ProtoMessage() {} + +func (x *Expression_LambdaFunction) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_LambdaFunction.ProtoReflect.Descriptor instead. +func (*Expression_LambdaFunction) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 12} +} + +func (x *Expression_LambdaFunction) GetFunction() *Expression { + if x != nil { + return x.Function + } + return nil +} + +func (x *Expression_LambdaFunction) GetArguments() []*Expression_UnresolvedNamedLambdaVariable { + if x != nil { + return x.Arguments + } + return nil +} + +type Expression_UnresolvedNamedLambdaVariable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) a list of name parts for the variable. Must not be empty. + NameParts []string `protobuf:"bytes,1,rep,name=name_parts,json=nameParts,proto3" json:"name_parts,omitempty"` +} + +func (x *Expression_UnresolvedNamedLambdaVariable) Reset() { + *x = Expression_UnresolvedNamedLambdaVariable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_UnresolvedNamedLambdaVariable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_UnresolvedNamedLambdaVariable) ProtoMessage() {} + +func (x *Expression_UnresolvedNamedLambdaVariable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_UnresolvedNamedLambdaVariable.ProtoReflect.Descriptor instead. +func (*Expression_UnresolvedNamedLambdaVariable) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 13} +} + +func (x *Expression_UnresolvedNamedLambdaVariable) GetNameParts() []string { + if x != nil { + return x.NameParts + } + return nil +} + +// The window frame +type Expression_Window_WindowFrame struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The type of the frame. + FrameType Expression_Window_WindowFrame_FrameType `protobuf:"varint,1,opt,name=frame_type,json=frameType,proto3,enum=spark.connect.Expression_Window_WindowFrame_FrameType" json:"frame_type,omitempty"` + // (Required) The lower bound of the frame. + Lower *Expression_Window_WindowFrame_FrameBoundary `protobuf:"bytes,2,opt,name=lower,proto3" json:"lower,omitempty"` + // (Required) The upper bound of the frame. + Upper *Expression_Window_WindowFrame_FrameBoundary `protobuf:"bytes,3,opt,name=upper,proto3" json:"upper,omitempty"` +} + +func (x *Expression_Window_WindowFrame) Reset() { + *x = Expression_Window_WindowFrame{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Window_WindowFrame) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Window_WindowFrame) ProtoMessage() {} + +func (x *Expression_Window_WindowFrame) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Window_WindowFrame.ProtoReflect.Descriptor instead. +func (*Expression_Window_WindowFrame) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *Expression_Window_WindowFrame) GetFrameType() Expression_Window_WindowFrame_FrameType { + if x != nil { + return x.FrameType + } + return Expression_Window_WindowFrame_FRAME_TYPE_UNDEFINED +} + +func (x *Expression_Window_WindowFrame) GetLower() *Expression_Window_WindowFrame_FrameBoundary { + if x != nil { + return x.Lower + } + return nil +} + +func (x *Expression_Window_WindowFrame) GetUpper() *Expression_Window_WindowFrame_FrameBoundary { + if x != nil { + return x.Upper + } + return nil +} + +type Expression_Window_WindowFrame_FrameBoundary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Boundary: + // + // *Expression_Window_WindowFrame_FrameBoundary_CurrentRow + // *Expression_Window_WindowFrame_FrameBoundary_Unbounded + // *Expression_Window_WindowFrame_FrameBoundary_Value + Boundary isExpression_Window_WindowFrame_FrameBoundary_Boundary `protobuf_oneof:"boundary"` +} + +func (x *Expression_Window_WindowFrame_FrameBoundary) Reset() { + *x = Expression_Window_WindowFrame_FrameBoundary{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Window_WindowFrame_FrameBoundary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Window_WindowFrame_FrameBoundary) ProtoMessage() {} + +func (x *Expression_Window_WindowFrame_FrameBoundary) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Window_WindowFrame_FrameBoundary.ProtoReflect.Descriptor instead. +func (*Expression_Window_WindowFrame_FrameBoundary) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 0, 0, 0} +} + +func (m *Expression_Window_WindowFrame_FrameBoundary) GetBoundary() isExpression_Window_WindowFrame_FrameBoundary_Boundary { + if m != nil { + return m.Boundary + } + return nil +} + +func (x *Expression_Window_WindowFrame_FrameBoundary) GetCurrentRow() bool { + if x, ok := x.GetBoundary().(*Expression_Window_WindowFrame_FrameBoundary_CurrentRow); ok { + return x.CurrentRow + } + return false +} + +func (x *Expression_Window_WindowFrame_FrameBoundary) GetUnbounded() bool { + if x, ok := x.GetBoundary().(*Expression_Window_WindowFrame_FrameBoundary_Unbounded); ok { + return x.Unbounded + } + return false +} + +func (x *Expression_Window_WindowFrame_FrameBoundary) GetValue() *Expression { + if x, ok := x.GetBoundary().(*Expression_Window_WindowFrame_FrameBoundary_Value); ok { + return x.Value + } + return nil +} + +type isExpression_Window_WindowFrame_FrameBoundary_Boundary interface { + isExpression_Window_WindowFrame_FrameBoundary_Boundary() +} + +type Expression_Window_WindowFrame_FrameBoundary_CurrentRow struct { + // CURRENT ROW boundary + CurrentRow bool `protobuf:"varint,1,opt,name=current_row,json=currentRow,proto3,oneof"` +} + +type Expression_Window_WindowFrame_FrameBoundary_Unbounded struct { + // UNBOUNDED boundary. + // For lower bound, it will be converted to 'UnboundedPreceding'. + // for upper bound, it will be converted to 'UnboundedFollowing'. + Unbounded bool `protobuf:"varint,2,opt,name=unbounded,proto3,oneof"` +} + +type Expression_Window_WindowFrame_FrameBoundary_Value struct { + // This is an expression for future proofing. We are expecting literals on the server side. + Value *Expression `protobuf:"bytes,3,opt,name=value,proto3,oneof"` +} + +func (*Expression_Window_WindowFrame_FrameBoundary_CurrentRow) isExpression_Window_WindowFrame_FrameBoundary_Boundary() { +} + +func (*Expression_Window_WindowFrame_FrameBoundary_Unbounded) isExpression_Window_WindowFrame_FrameBoundary_Boundary() { +} + +func (*Expression_Window_WindowFrame_FrameBoundary_Value) isExpression_Window_WindowFrame_FrameBoundary_Boundary() { +} + +type Expression_Literal_Decimal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the string representation. + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The maximum number of digits allowed in the value. + // the maximum precision is 38. + Precision *int32 `protobuf:"varint,2,opt,name=precision,proto3,oneof" json:"precision,omitempty"` + // declared scale of decimal literal + Scale *int32 `protobuf:"varint,3,opt,name=scale,proto3,oneof" json:"scale,omitempty"` +} + +func (x *Expression_Literal_Decimal) Reset() { + *x = Expression_Literal_Decimal{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_Decimal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_Decimal) ProtoMessage() {} + +func (x *Expression_Literal_Decimal) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_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 Expression_Literal_Decimal.ProtoReflect.Descriptor instead. +func (*Expression_Literal_Decimal) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3, 0} +} + +func (x *Expression_Literal_Decimal) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *Expression_Literal_Decimal) GetPrecision() int32 { + if x != nil && x.Precision != nil { + return *x.Precision + } + return 0 +} + +func (x *Expression_Literal_Decimal) GetScale() int32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +type Expression_Literal_CalendarInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Months int32 `protobuf:"varint,1,opt,name=months,proto3" json:"months,omitempty"` + Days int32 `protobuf:"varint,2,opt,name=days,proto3" json:"days,omitempty"` + Microseconds int64 `protobuf:"varint,3,opt,name=microseconds,proto3" json:"microseconds,omitempty"` +} + +func (x *Expression_Literal_CalendarInterval) Reset() { + *x = Expression_Literal_CalendarInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_CalendarInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_CalendarInterval) ProtoMessage() {} + +func (x *Expression_Literal_CalendarInterval) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_proto_msgTypes[22] + 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 Expression_Literal_CalendarInterval.ProtoReflect.Descriptor instead. +func (*Expression_Literal_CalendarInterval) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3, 1} +} + +func (x *Expression_Literal_CalendarInterval) GetMonths() int32 { + if x != nil { + return x.Months + } + return 0 +} + +func (x *Expression_Literal_CalendarInterval) GetDays() int32 { + if x != nil { + return x.Days + } + return 0 +} + +func (x *Expression_Literal_CalendarInterval) GetMicroseconds() int64 { + if x != nil { + return x.Microseconds + } + return 0 +} + +type Expression_Literal_Array struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ElementType *DataType `protobuf:"bytes,1,opt,name=element_type,json=elementType,proto3" json:"element_type,omitempty"` + Elements []*Expression_Literal `protobuf:"bytes,2,rep,name=elements,proto3" json:"elements,omitempty"` +} + +func (x *Expression_Literal_Array) Reset() { + *x = Expression_Literal_Array{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_Array) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_Array) ProtoMessage() {} + +func (x *Expression_Literal_Array) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_proto_msgTypes[23] + 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 Expression_Literal_Array.ProtoReflect.Descriptor instead. +func (*Expression_Literal_Array) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3, 2} +} + +func (x *Expression_Literal_Array) GetElementType() *DataType { + if x != nil { + return x.ElementType + } + return nil +} + +func (x *Expression_Literal_Array) GetElements() []*Expression_Literal { + if x != nil { + return x.Elements + } + return nil +} + +type Expression_Literal_Map struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyType *DataType `protobuf:"bytes,1,opt,name=key_type,json=keyType,proto3" json:"key_type,omitempty"` + ValueType *DataType `protobuf:"bytes,2,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"` + Keys []*Expression_Literal `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"` + Values []*Expression_Literal `protobuf:"bytes,4,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *Expression_Literal_Map) Reset() { + *x = Expression_Literal_Map{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_Map) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_Map) ProtoMessage() {} + +func (x *Expression_Literal_Map) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_proto_msgTypes[24] + 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 Expression_Literal_Map.ProtoReflect.Descriptor instead. +func (*Expression_Literal_Map) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3, 3} +} + +func (x *Expression_Literal_Map) GetKeyType() *DataType { + if x != nil { + return x.KeyType + } + return nil +} + +func (x *Expression_Literal_Map) GetValueType() *DataType { + if x != nil { + return x.ValueType + } + return nil +} + +func (x *Expression_Literal_Map) GetKeys() []*Expression_Literal { + if x != nil { + return x.Keys + } + return nil +} + +func (x *Expression_Literal_Map) GetValues() []*Expression_Literal { + if x != nil { + return x.Values + } + return nil +} + +type Expression_Literal_Struct struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StructType *DataType `protobuf:"bytes,1,opt,name=struct_type,json=structType,proto3" json:"struct_type,omitempty"` + Elements []*Expression_Literal `protobuf:"bytes,2,rep,name=elements,proto3" json:"elements,omitempty"` +} + +func (x *Expression_Literal_Struct) Reset() { + *x = Expression_Literal_Struct{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_expressions_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Expression_Literal_Struct) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Expression_Literal_Struct) ProtoMessage() {} + +func (x *Expression_Literal_Struct) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_expressions_proto_msgTypes[25] + 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 Expression_Literal_Struct.ProtoReflect.Descriptor instead. +func (*Expression_Literal_Struct) Descriptor() ([]byte, []int) { + return file_spark_connect_expressions_proto_rawDescGZIP(), []int{0, 3, 4} +} + +func (x *Expression_Literal_Struct) GetStructType() *DataType { + if x != nil { + return x.StructType + } + return nil +} + +func (x *Expression_Literal_Struct) GetElements() []*Expression_Literal { + if x != nil { + return x.Elements + } + return nil +} + +var File_spark_connect_expressions_proto protoreflect.FileDescriptor + +var file_spark_connect_expressions_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x2b, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x12, 0x62, 0x0a, 0x14, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x48, 0x00, 0x52, 0x13, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x75, 0x6e, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x12, 0x53, 0x0a, 0x0f, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x63, 0x61, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x10, 0x75, 0x6e, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, + 0x0f, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, + 0x12, 0x44, 0x0a, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x73, 0x6f, 0x72, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x6d, 0x62, 0x64, + 0x61, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x61, 0x6d, + 0x62, 0x64, 0x61, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, + 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x6c, 0x0a, 0x18, 0x75, 0x6e, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x45, + 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x16, 0x75, + 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x20, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, + 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x1d, 0x75, 0x6e, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x61, 0x6d, 0x62, 0x64, + 0x61, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x7e, 0x0a, 0x23, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x09, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x1a, 0x8f, 0x06, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x0f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x40, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x42, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x1a, 0xed, 0x03, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x52, 0x05, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x05, 0x75, + 0x70, 0x70, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x52, 0x05, 0x75, 0x70, 0x70, 0x65, 0x72, 0x1a, 0x91, 0x01, + 0x0a, 0x0d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, + 0x21, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x09, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x22, 0x4f, 0x0a, 0x09, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x14, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x44, + 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x52, 0x41, 0x4d, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, + 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, + 0x10, 0x02, 0x1a, 0xa9, 0x03, 0x0a, 0x09, 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0d, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x6e, 0x75, 0x6c, + 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x6c, 0x0a, 0x0d, 0x53, 0x6f, 0x72, + 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x4f, + 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x4f, + 0x52, 0x54, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x53, 0x43, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4f, 0x52, 0x54, + 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x75, 0x6c, 0x6c, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x4f, 0x52, 0x54, 0x5f, + 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, + 0x53, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x52, + 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x91, + 0x01, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x53, + 0x74, 0x72, 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x1a, 0x9b, 0x0c, 0x0a, 0x07, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x2d, + 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x18, 0x0a, + 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, + 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, + 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x04, 0x62, 0x79, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x12, 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x04, 0x6c, + 0x6f, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0d, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x74, 0x7a, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x4e, 0x74, 0x7a, 0x12, 0x61, 0x0a, 0x11, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x48, 0x00, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x13, 0x79, 0x65, 0x61, 0x72, 0x5f, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x11, 0x79, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x61, 0x79, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, + 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, + 0x61, 0x70, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x75, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x1a, 0x62, 0x0a, + 0x10, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x3a, 0x0a, 0x0c, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x08, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xe3, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x32, + 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x81, 0x01, 0x0a, + 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x42, 0x0e, 0x0a, 0x0c, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x1a, 0x70, 0x0a, 0x13, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x1a, 0xcc, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, + 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, + 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x32, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x52, 0x0a, 0x0e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x56, 0x0a, 0x0f, 0x55, 0x6e, 0x72, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x16, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, + 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2f, 0x0a, 0x05, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x39, 0x0a, + 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x10, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x44, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x78, 0x0a, 0x05, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, + 0x2d, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x9e, 0x01, 0x0a, 0x0e, 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x09, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x3e, 0x0a, 0x1d, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, + 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xec, + 0x02, 0x0a, 0x1f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x37, 0x0a, + 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, + 0x5f, 0x75, 0x64, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x79, 0x74, 0x68, 0x6f, + 0x6e, 0x55, 0x44, 0x46, 0x48, 0x00, 0x52, 0x09, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x55, 0x64, + 0x66, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, + 0x61, 0x5f, 0x75, 0x64, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x63, 0x61, 0x6c, + 0x61, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x55, 0x44, 0x46, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, + 0x61, 0x6c, 0x61, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x55, 0x64, 0x66, 0x12, 0x33, 0x0a, 0x08, + 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x75, 0x64, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4a, + 0x61, 0x76, 0x61, 0x55, 0x44, 0x46, 0x48, 0x00, 0x52, 0x07, 0x6a, 0x61, 0x76, 0x61, 0x55, 0x64, + 0x66, 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b, 0x01, + 0x0a, 0x09, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x55, 0x44, 0x46, 0x12, 0x38, 0x0a, 0x0b, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x76, 0x61, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x22, 0xb8, 0x01, 0x0a, 0x0e, + 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x55, 0x44, 0x46, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x07, 0x4a, 0x61, 0x76, 0x61, 0x55, + 0x44, 0x46, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x36, + 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_expressions_proto_rawDescOnce sync.Once + file_spark_connect_expressions_proto_rawDescData = file_spark_connect_expressions_proto_rawDesc +) + +func file_spark_connect_expressions_proto_rawDescGZIP() []byte { + file_spark_connect_expressions_proto_rawDescOnce.Do(func() { + file_spark_connect_expressions_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_expressions_proto_rawDescData) + }) + return file_spark_connect_expressions_proto_rawDescData +} + +var file_spark_connect_expressions_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_spark_connect_expressions_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_spark_connect_expressions_proto_goTypes = []interface{}{ + (Expression_Window_WindowFrame_FrameType)(0), // 0: spark.connect.Expression.Window.WindowFrame.FrameType + (Expression_SortOrder_SortDirection)(0), // 1: spark.connect.Expression.SortOrder.SortDirection + (Expression_SortOrder_NullOrdering)(0), // 2: spark.connect.Expression.SortOrder.NullOrdering + (*Expression)(nil), // 3: spark.connect.Expression + (*CommonInlineUserDefinedFunction)(nil), // 4: spark.connect.CommonInlineUserDefinedFunction + (*PythonUDF)(nil), // 5: spark.connect.PythonUDF + (*ScalarScalaUDF)(nil), // 6: spark.connect.ScalarScalaUDF + (*JavaUDF)(nil), // 7: spark.connect.JavaUDF + (*Expression_Window)(nil), // 8: spark.connect.Expression.Window + (*Expression_SortOrder)(nil), // 9: spark.connect.Expression.SortOrder + (*Expression_Cast)(nil), // 10: spark.connect.Expression.Cast + (*Expression_Literal)(nil), // 11: spark.connect.Expression.Literal + (*Expression_UnresolvedAttribute)(nil), // 12: spark.connect.Expression.UnresolvedAttribute + (*Expression_UnresolvedFunction)(nil), // 13: spark.connect.Expression.UnresolvedFunction + (*Expression_ExpressionString)(nil), // 14: spark.connect.Expression.ExpressionString + (*Expression_UnresolvedStar)(nil), // 15: spark.connect.Expression.UnresolvedStar + (*Expression_UnresolvedRegex)(nil), // 16: spark.connect.Expression.UnresolvedRegex + (*Expression_UnresolvedExtractValue)(nil), // 17: spark.connect.Expression.UnresolvedExtractValue + (*Expression_UpdateFields)(nil), // 18: spark.connect.Expression.UpdateFields + (*Expression_Alias)(nil), // 19: spark.connect.Expression.Alias + (*Expression_LambdaFunction)(nil), // 20: spark.connect.Expression.LambdaFunction + (*Expression_UnresolvedNamedLambdaVariable)(nil), // 21: spark.connect.Expression.UnresolvedNamedLambdaVariable + (*Expression_Window_WindowFrame)(nil), // 22: spark.connect.Expression.Window.WindowFrame + (*Expression_Window_WindowFrame_FrameBoundary)(nil), // 23: spark.connect.Expression.Window.WindowFrame.FrameBoundary + (*Expression_Literal_Decimal)(nil), // 24: spark.connect.Expression.Literal.Decimal + (*Expression_Literal_CalendarInterval)(nil), // 25: spark.connect.Expression.Literal.CalendarInterval + (*Expression_Literal_Array)(nil), // 26: spark.connect.Expression.Literal.Array + (*Expression_Literal_Map)(nil), // 27: spark.connect.Expression.Literal.Map + (*Expression_Literal_Struct)(nil), // 28: spark.connect.Expression.Literal.Struct + (*anypb.Any)(nil), // 29: google.protobuf.Any + (*DataType)(nil), // 30: spark.connect.DataType +} +var file_spark_connect_expressions_proto_depIdxs = []int32{ + 11, // 0: spark.connect.Expression.literal:type_name -> spark.connect.Expression.Literal + 12, // 1: spark.connect.Expression.unresolved_attribute:type_name -> spark.connect.Expression.UnresolvedAttribute + 13, // 2: spark.connect.Expression.unresolved_function:type_name -> spark.connect.Expression.UnresolvedFunction + 14, // 3: spark.connect.Expression.expression_string:type_name -> spark.connect.Expression.ExpressionString + 15, // 4: spark.connect.Expression.unresolved_star:type_name -> spark.connect.Expression.UnresolvedStar + 19, // 5: spark.connect.Expression.alias:type_name -> spark.connect.Expression.Alias + 10, // 6: spark.connect.Expression.cast:type_name -> spark.connect.Expression.Cast + 16, // 7: spark.connect.Expression.unresolved_regex:type_name -> spark.connect.Expression.UnresolvedRegex + 9, // 8: spark.connect.Expression.sort_order:type_name -> spark.connect.Expression.SortOrder + 20, // 9: spark.connect.Expression.lambda_function:type_name -> spark.connect.Expression.LambdaFunction + 8, // 10: spark.connect.Expression.window:type_name -> spark.connect.Expression.Window + 17, // 11: spark.connect.Expression.unresolved_extract_value:type_name -> spark.connect.Expression.UnresolvedExtractValue + 18, // 12: spark.connect.Expression.update_fields:type_name -> spark.connect.Expression.UpdateFields + 21, // 13: spark.connect.Expression.unresolved_named_lambda_variable:type_name -> spark.connect.Expression.UnresolvedNamedLambdaVariable + 4, // 14: spark.connect.Expression.common_inline_user_defined_function:type_name -> spark.connect.CommonInlineUserDefinedFunction + 29, // 15: spark.connect.Expression.extension:type_name -> google.protobuf.Any + 3, // 16: spark.connect.CommonInlineUserDefinedFunction.arguments:type_name -> spark.connect.Expression + 5, // 17: spark.connect.CommonInlineUserDefinedFunction.python_udf:type_name -> spark.connect.PythonUDF + 6, // 18: spark.connect.CommonInlineUserDefinedFunction.scalar_scala_udf:type_name -> spark.connect.ScalarScalaUDF + 7, // 19: spark.connect.CommonInlineUserDefinedFunction.java_udf:type_name -> spark.connect.JavaUDF + 30, // 20: spark.connect.PythonUDF.output_type:type_name -> spark.connect.DataType + 30, // 21: spark.connect.ScalarScalaUDF.inputTypes:type_name -> spark.connect.DataType + 30, // 22: spark.connect.ScalarScalaUDF.outputType:type_name -> spark.connect.DataType + 30, // 23: spark.connect.JavaUDF.output_type:type_name -> spark.connect.DataType + 3, // 24: spark.connect.Expression.Window.window_function:type_name -> spark.connect.Expression + 3, // 25: spark.connect.Expression.Window.partition_spec:type_name -> spark.connect.Expression + 9, // 26: spark.connect.Expression.Window.order_spec:type_name -> spark.connect.Expression.SortOrder + 22, // 27: spark.connect.Expression.Window.frame_spec:type_name -> spark.connect.Expression.Window.WindowFrame + 3, // 28: spark.connect.Expression.SortOrder.child:type_name -> spark.connect.Expression + 1, // 29: spark.connect.Expression.SortOrder.direction:type_name -> spark.connect.Expression.SortOrder.SortDirection + 2, // 30: spark.connect.Expression.SortOrder.null_ordering:type_name -> spark.connect.Expression.SortOrder.NullOrdering + 3, // 31: spark.connect.Expression.Cast.expr:type_name -> spark.connect.Expression + 30, // 32: spark.connect.Expression.Cast.type:type_name -> spark.connect.DataType + 30, // 33: spark.connect.Expression.Literal.null:type_name -> spark.connect.DataType + 24, // 34: spark.connect.Expression.Literal.decimal:type_name -> spark.connect.Expression.Literal.Decimal + 25, // 35: spark.connect.Expression.Literal.calendar_interval:type_name -> spark.connect.Expression.Literal.CalendarInterval + 26, // 36: spark.connect.Expression.Literal.array:type_name -> spark.connect.Expression.Literal.Array + 27, // 37: spark.connect.Expression.Literal.map:type_name -> spark.connect.Expression.Literal.Map + 28, // 38: spark.connect.Expression.Literal.struct:type_name -> spark.connect.Expression.Literal.Struct + 3, // 39: spark.connect.Expression.UnresolvedFunction.arguments:type_name -> spark.connect.Expression + 3, // 40: spark.connect.Expression.UnresolvedExtractValue.child:type_name -> spark.connect.Expression + 3, // 41: spark.connect.Expression.UnresolvedExtractValue.extraction:type_name -> spark.connect.Expression + 3, // 42: spark.connect.Expression.UpdateFields.struct_expression:type_name -> spark.connect.Expression + 3, // 43: spark.connect.Expression.UpdateFields.value_expression:type_name -> spark.connect.Expression + 3, // 44: spark.connect.Expression.Alias.expr:type_name -> spark.connect.Expression + 3, // 45: spark.connect.Expression.LambdaFunction.function:type_name -> spark.connect.Expression + 21, // 46: spark.connect.Expression.LambdaFunction.arguments:type_name -> spark.connect.Expression.UnresolvedNamedLambdaVariable + 0, // 47: spark.connect.Expression.Window.WindowFrame.frame_type:type_name -> spark.connect.Expression.Window.WindowFrame.FrameType + 23, // 48: spark.connect.Expression.Window.WindowFrame.lower:type_name -> spark.connect.Expression.Window.WindowFrame.FrameBoundary + 23, // 49: spark.connect.Expression.Window.WindowFrame.upper:type_name -> spark.connect.Expression.Window.WindowFrame.FrameBoundary + 3, // 50: spark.connect.Expression.Window.WindowFrame.FrameBoundary.value:type_name -> spark.connect.Expression + 30, // 51: spark.connect.Expression.Literal.Array.element_type:type_name -> spark.connect.DataType + 11, // 52: spark.connect.Expression.Literal.Array.elements:type_name -> spark.connect.Expression.Literal + 30, // 53: spark.connect.Expression.Literal.Map.key_type:type_name -> spark.connect.DataType + 30, // 54: spark.connect.Expression.Literal.Map.value_type:type_name -> spark.connect.DataType + 11, // 55: spark.connect.Expression.Literal.Map.keys:type_name -> spark.connect.Expression.Literal + 11, // 56: spark.connect.Expression.Literal.Map.values:type_name -> spark.connect.Expression.Literal + 30, // 57: spark.connect.Expression.Literal.Struct.struct_type:type_name -> spark.connect.DataType + 11, // 58: spark.connect.Expression.Literal.Struct.elements:type_name -> spark.connect.Expression.Literal + 59, // [59:59] is the sub-list for method output_type + 59, // [59:59] is the sub-list for method input_type + 59, // [59:59] is the sub-list for extension type_name + 59, // [59:59] is the sub-list for extension extendee + 0, // [0:59] is the sub-list for field type_name +} + +func init() { file_spark_connect_expressions_proto_init() } +func file_spark_connect_expressions_proto_init() { + if File_spark_connect_expressions_proto != nil { + return + } + file_spark_connect_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_expressions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonInlineUserDefinedFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PythonUDF); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScalarScalaUDF); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JavaUDF); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Window); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_SortOrder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Cast); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedAttribute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_ExpressionString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedStar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedRegex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedExtractValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UpdateFields); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Alias); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_LambdaFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_UnresolvedNamedLambdaVariable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Window_WindowFrame); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Window_WindowFrame_FrameBoundary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal_Decimal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal_CalendarInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal_Array); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal_Map); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_expressions_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Expression_Literal_Struct); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_expressions_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Expression_Literal_)(nil), + (*Expression_UnresolvedAttribute_)(nil), + (*Expression_UnresolvedFunction_)(nil), + (*Expression_ExpressionString_)(nil), + (*Expression_UnresolvedStar_)(nil), + (*Expression_Alias_)(nil), + (*Expression_Cast_)(nil), + (*Expression_UnresolvedRegex_)(nil), + (*Expression_SortOrder_)(nil), + (*Expression_LambdaFunction_)(nil), + (*Expression_Window_)(nil), + (*Expression_UnresolvedExtractValue_)(nil), + (*Expression_UpdateFields_)(nil), + (*Expression_UnresolvedNamedLambdaVariable_)(nil), + (*Expression_CommonInlineUserDefinedFunction)(nil), + (*Expression_Extension)(nil), + } + file_spark_connect_expressions_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*CommonInlineUserDefinedFunction_PythonUdf)(nil), + (*CommonInlineUserDefinedFunction_ScalarScalaUdf)(nil), + (*CommonInlineUserDefinedFunction_JavaUdf)(nil), + } + file_spark_connect_expressions_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_spark_connect_expressions_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*Expression_Cast_Type)(nil), + (*Expression_Cast_TypeStr)(nil), + } + file_spark_connect_expressions_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*Expression_Literal_Null)(nil), + (*Expression_Literal_Binary)(nil), + (*Expression_Literal_Boolean)(nil), + (*Expression_Literal_Byte)(nil), + (*Expression_Literal_Short)(nil), + (*Expression_Literal_Integer)(nil), + (*Expression_Literal_Long)(nil), + (*Expression_Literal_Float)(nil), + (*Expression_Literal_Double)(nil), + (*Expression_Literal_Decimal_)(nil), + (*Expression_Literal_String_)(nil), + (*Expression_Literal_Date)(nil), + (*Expression_Literal_Timestamp)(nil), + (*Expression_Literal_TimestampNtz)(nil), + (*Expression_Literal_CalendarInterval_)(nil), + (*Expression_Literal_YearMonthInterval)(nil), + (*Expression_Literal_DayTimeInterval)(nil), + (*Expression_Literal_Array_)(nil), + (*Expression_Literal_Map_)(nil), + (*Expression_Literal_Struct_)(nil), + } + file_spark_connect_expressions_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_spark_connect_expressions_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_spark_connect_expressions_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_spark_connect_expressions_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_spark_connect_expressions_proto_msgTypes[20].OneofWrappers = []interface{}{ + (*Expression_Window_WindowFrame_FrameBoundary_CurrentRow)(nil), + (*Expression_Window_WindowFrame_FrameBoundary_Unbounded)(nil), + (*Expression_Window_WindowFrame_FrameBoundary_Value)(nil), + } + file_spark_connect_expressions_proto_msgTypes[21].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_expressions_proto_rawDesc, + NumEnums: 3, + NumMessages: 26, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_expressions_proto_goTypes, + DependencyIndexes: file_spark_connect_expressions_proto_depIdxs, + EnumInfos: file_spark_connect_expressions_proto_enumTypes, + MessageInfos: file_spark_connect_expressions_proto_msgTypes, + }.Build() + File_spark_connect_expressions_proto = out.File + file_spark_connect_expressions_proto_rawDesc = nil + file_spark_connect_expressions_proto_goTypes = nil + file_spark_connect_expressions_proto_depIdxs = nil +} diff --git a/internal/generated/relations.pb.go b/internal/generated/relations.pb.go new file mode 100644 index 0000000..fb2db27 --- /dev/null +++ b/internal/generated/relations.pb.go @@ -0,0 +1,6655 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/relations.proto + +package generated + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + 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 Join_JoinType int32 + +const ( + Join_JOIN_TYPE_UNSPECIFIED Join_JoinType = 0 + Join_JOIN_TYPE_INNER Join_JoinType = 1 + Join_JOIN_TYPE_FULL_OUTER Join_JoinType = 2 + Join_JOIN_TYPE_LEFT_OUTER Join_JoinType = 3 + Join_JOIN_TYPE_RIGHT_OUTER Join_JoinType = 4 + Join_JOIN_TYPE_LEFT_ANTI Join_JoinType = 5 + Join_JOIN_TYPE_LEFT_SEMI Join_JoinType = 6 + Join_JOIN_TYPE_CROSS Join_JoinType = 7 +) + +// Enum value maps for Join_JoinType. +var ( + Join_JoinType_name = map[int32]string{ + 0: "JOIN_TYPE_UNSPECIFIED", + 1: "JOIN_TYPE_INNER", + 2: "JOIN_TYPE_FULL_OUTER", + 3: "JOIN_TYPE_LEFT_OUTER", + 4: "JOIN_TYPE_RIGHT_OUTER", + 5: "JOIN_TYPE_LEFT_ANTI", + 6: "JOIN_TYPE_LEFT_SEMI", + 7: "JOIN_TYPE_CROSS", + } + Join_JoinType_value = map[string]int32{ + "JOIN_TYPE_UNSPECIFIED": 0, + "JOIN_TYPE_INNER": 1, + "JOIN_TYPE_FULL_OUTER": 2, + "JOIN_TYPE_LEFT_OUTER": 3, + "JOIN_TYPE_RIGHT_OUTER": 4, + "JOIN_TYPE_LEFT_ANTI": 5, + "JOIN_TYPE_LEFT_SEMI": 6, + "JOIN_TYPE_CROSS": 7, + } +) + +func (x Join_JoinType) Enum() *Join_JoinType { + p := new(Join_JoinType) + *p = x + return p +} + +func (x Join_JoinType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Join_JoinType) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_relations_proto_enumTypes[0].Descriptor() +} + +func (Join_JoinType) Type() protoreflect.EnumType { + return &file_spark_connect_relations_proto_enumTypes[0] +} + +func (x Join_JoinType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Join_JoinType.Descriptor instead. +func (Join_JoinType) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{7, 0} +} + +type SetOperation_SetOpType int32 + +const ( + SetOperation_SET_OP_TYPE_UNSPECIFIED SetOperation_SetOpType = 0 + SetOperation_SET_OP_TYPE_INTERSECT SetOperation_SetOpType = 1 + SetOperation_SET_OP_TYPE_UNION SetOperation_SetOpType = 2 + SetOperation_SET_OP_TYPE_EXCEPT SetOperation_SetOpType = 3 +) + +// Enum value maps for SetOperation_SetOpType. +var ( + SetOperation_SetOpType_name = map[int32]string{ + 0: "SET_OP_TYPE_UNSPECIFIED", + 1: "SET_OP_TYPE_INTERSECT", + 2: "SET_OP_TYPE_UNION", + 3: "SET_OP_TYPE_EXCEPT", + } + SetOperation_SetOpType_value = map[string]int32{ + "SET_OP_TYPE_UNSPECIFIED": 0, + "SET_OP_TYPE_INTERSECT": 1, + "SET_OP_TYPE_UNION": 2, + "SET_OP_TYPE_EXCEPT": 3, + } +) + +func (x SetOperation_SetOpType) Enum() *SetOperation_SetOpType { + p := new(SetOperation_SetOpType) + *p = x + return p +} + +func (x SetOperation_SetOpType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SetOperation_SetOpType) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_relations_proto_enumTypes[1].Descriptor() +} + +func (SetOperation_SetOpType) Type() protoreflect.EnumType { + return &file_spark_connect_relations_proto_enumTypes[1] +} + +func (x SetOperation_SetOpType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SetOperation_SetOpType.Descriptor instead. +func (SetOperation_SetOpType) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{8, 0} +} + +type Aggregate_GroupType int32 + +const ( + Aggregate_GROUP_TYPE_UNSPECIFIED Aggregate_GroupType = 0 + Aggregate_GROUP_TYPE_GROUPBY Aggregate_GroupType = 1 + Aggregate_GROUP_TYPE_ROLLUP Aggregate_GroupType = 2 + Aggregate_GROUP_TYPE_CUBE Aggregate_GroupType = 3 + Aggregate_GROUP_TYPE_PIVOT Aggregate_GroupType = 4 +) + +// Enum value maps for Aggregate_GroupType. +var ( + Aggregate_GroupType_name = map[int32]string{ + 0: "GROUP_TYPE_UNSPECIFIED", + 1: "GROUP_TYPE_GROUPBY", + 2: "GROUP_TYPE_ROLLUP", + 3: "GROUP_TYPE_CUBE", + 4: "GROUP_TYPE_PIVOT", + } + Aggregate_GroupType_value = map[string]int32{ + "GROUP_TYPE_UNSPECIFIED": 0, + "GROUP_TYPE_GROUPBY": 1, + "GROUP_TYPE_ROLLUP": 2, + "GROUP_TYPE_CUBE": 3, + "GROUP_TYPE_PIVOT": 4, + } +) + +func (x Aggregate_GroupType) Enum() *Aggregate_GroupType { + p := new(Aggregate_GroupType) + *p = x + return p +} + +func (x Aggregate_GroupType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Aggregate_GroupType) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_relations_proto_enumTypes[2].Descriptor() +} + +func (Aggregate_GroupType) Type() protoreflect.EnumType { + return &file_spark_connect_relations_proto_enumTypes[2] +} + +func (x Aggregate_GroupType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Aggregate_GroupType.Descriptor instead. +func (Aggregate_GroupType) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{12, 0} +} + +type Parse_ParseFormat int32 + +const ( + Parse_PARSE_FORMAT_UNSPECIFIED Parse_ParseFormat = 0 + Parse_PARSE_FORMAT_CSV Parse_ParseFormat = 1 + Parse_PARSE_FORMAT_JSON Parse_ParseFormat = 2 +) + +// Enum value maps for Parse_ParseFormat. +var ( + Parse_ParseFormat_name = map[int32]string{ + 0: "PARSE_FORMAT_UNSPECIFIED", + 1: "PARSE_FORMAT_CSV", + 2: "PARSE_FORMAT_JSON", + } + Parse_ParseFormat_value = map[string]int32{ + "PARSE_FORMAT_UNSPECIFIED": 0, + "PARSE_FORMAT_CSV": 1, + "PARSE_FORMAT_JSON": 2, + } +) + +func (x Parse_ParseFormat) Enum() *Parse_ParseFormat { + p := new(Parse_ParseFormat) + *p = x + return p +} + +func (x Parse_ParseFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Parse_ParseFormat) Descriptor() protoreflect.EnumDescriptor { + return file_spark_connect_relations_proto_enumTypes[3].Descriptor() +} + +func (Parse_ParseFormat) Type() protoreflect.EnumType { + return &file_spark_connect_relations_proto_enumTypes[3] +} + +func (x Parse_ParseFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Parse_ParseFormat.Descriptor instead. +func (Parse_ParseFormat) EnumDescriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{48, 0} +} + +// The main [[Relation]] type. Fundamentally, a relation is a typed container +// that has exactly one explicit relation type set. +// +// When adding new relation types, they have to be registered here. +type Relation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Common *RelationCommon `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"` + // Types that are assignable to RelType: + // + // *Relation_Read + // *Relation_Project + // *Relation_Filter + // *Relation_Join + // *Relation_SetOp + // *Relation_Sort + // *Relation_Limit + // *Relation_Aggregate + // *Relation_Sql + // *Relation_LocalRelation + // *Relation_Sample + // *Relation_Offset + // *Relation_Deduplicate + // *Relation_Range + // *Relation_SubqueryAlias + // *Relation_Repartition + // *Relation_ToDf + // *Relation_WithColumnsRenamed + // *Relation_ShowString + // *Relation_Drop + // *Relation_Tail + // *Relation_WithColumns + // *Relation_Hint + // *Relation_Unpivot + // *Relation_ToSchema + // *Relation_RepartitionByExpression + // *Relation_MapPartitions + // *Relation_CollectMetrics + // *Relation_Parse + // *Relation_GroupMap + // *Relation_CoGroupMap + // *Relation_WithWatermark + // *Relation_ApplyInPandasWithState + // *Relation_HtmlString + // *Relation_CachedLocalRelation + // *Relation_FillNa + // *Relation_DropNa + // *Relation_Replace + // *Relation_Summary + // *Relation_Crosstab + // *Relation_Describe + // *Relation_Cov + // *Relation_Corr + // *Relation_ApproxQuantile + // *Relation_FreqItems + // *Relation_SampleBy + // *Relation_Catalog + // *Relation_Extension + // *Relation_Unknown + RelType isRelation_RelType `protobuf_oneof:"rel_type"` +} + +func (x *Relation) Reset() { + *x = Relation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Relation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Relation) ProtoMessage() {} + +func (x *Relation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Relation.ProtoReflect.Descriptor instead. +func (*Relation) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{0} +} + +func (x *Relation) GetCommon() *RelationCommon { + if x != nil { + return x.Common + } + return nil +} + +func (m *Relation) GetRelType() isRelation_RelType { + if m != nil { + return m.RelType + } + return nil +} + +func (x *Relation) GetRead() *Read { + if x, ok := x.GetRelType().(*Relation_Read); ok { + return x.Read + } + return nil +} + +func (x *Relation) GetProject() *Project { + if x, ok := x.GetRelType().(*Relation_Project); ok { + return x.Project + } + return nil +} + +func (x *Relation) GetFilter() *Filter { + if x, ok := x.GetRelType().(*Relation_Filter); ok { + return x.Filter + } + return nil +} + +func (x *Relation) GetJoin() *Join { + if x, ok := x.GetRelType().(*Relation_Join); ok { + return x.Join + } + return nil +} + +func (x *Relation) GetSetOp() *SetOperation { + if x, ok := x.GetRelType().(*Relation_SetOp); ok { + return x.SetOp + } + return nil +} + +func (x *Relation) GetSort() *Sort { + if x, ok := x.GetRelType().(*Relation_Sort); ok { + return x.Sort + } + return nil +} + +func (x *Relation) GetLimit() *Limit { + if x, ok := x.GetRelType().(*Relation_Limit); ok { + return x.Limit + } + return nil +} + +func (x *Relation) GetAggregate() *Aggregate { + if x, ok := x.GetRelType().(*Relation_Aggregate); ok { + return x.Aggregate + } + return nil +} + +func (x *Relation) GetSql() *SQL { + if x, ok := x.GetRelType().(*Relation_Sql); ok { + return x.Sql + } + return nil +} + +func (x *Relation) GetLocalRelation() *LocalRelation { + if x, ok := x.GetRelType().(*Relation_LocalRelation); ok { + return x.LocalRelation + } + return nil +} + +func (x *Relation) GetSample() *Sample { + if x, ok := x.GetRelType().(*Relation_Sample); ok { + return x.Sample + } + return nil +} + +func (x *Relation) GetOffset() *Offset { + if x, ok := x.GetRelType().(*Relation_Offset); ok { + return x.Offset + } + return nil +} + +func (x *Relation) GetDeduplicate() *Deduplicate { + if x, ok := x.GetRelType().(*Relation_Deduplicate); ok { + return x.Deduplicate + } + return nil +} + +func (x *Relation) GetRange() *Range { + if x, ok := x.GetRelType().(*Relation_Range); ok { + return x.Range + } + return nil +} + +func (x *Relation) GetSubqueryAlias() *SubqueryAlias { + if x, ok := x.GetRelType().(*Relation_SubqueryAlias); ok { + return x.SubqueryAlias + } + return nil +} + +func (x *Relation) GetRepartition() *Repartition { + if x, ok := x.GetRelType().(*Relation_Repartition); ok { + return x.Repartition + } + return nil +} + +func (x *Relation) GetToDf() *ToDF { + if x, ok := x.GetRelType().(*Relation_ToDf); ok { + return x.ToDf + } + return nil +} + +func (x *Relation) GetWithColumnsRenamed() *WithColumnsRenamed { + if x, ok := x.GetRelType().(*Relation_WithColumnsRenamed); ok { + return x.WithColumnsRenamed + } + return nil +} + +func (x *Relation) GetShowString() *ShowString { + if x, ok := x.GetRelType().(*Relation_ShowString); ok { + return x.ShowString + } + return nil +} + +func (x *Relation) GetDrop() *Drop { + if x, ok := x.GetRelType().(*Relation_Drop); ok { + return x.Drop + } + return nil +} + +func (x *Relation) GetTail() *Tail { + if x, ok := x.GetRelType().(*Relation_Tail); ok { + return x.Tail + } + return nil +} + +func (x *Relation) GetWithColumns() *WithColumns { + if x, ok := x.GetRelType().(*Relation_WithColumns); ok { + return x.WithColumns + } + return nil +} + +func (x *Relation) GetHint() *Hint { + if x, ok := x.GetRelType().(*Relation_Hint); ok { + return x.Hint + } + return nil +} + +func (x *Relation) GetUnpivot() *Unpivot { + if x, ok := x.GetRelType().(*Relation_Unpivot); ok { + return x.Unpivot + } + return nil +} + +func (x *Relation) GetToSchema() *ToSchema { + if x, ok := x.GetRelType().(*Relation_ToSchema); ok { + return x.ToSchema + } + return nil +} + +func (x *Relation) GetRepartitionByExpression() *RepartitionByExpression { + if x, ok := x.GetRelType().(*Relation_RepartitionByExpression); ok { + return x.RepartitionByExpression + } + return nil +} + +func (x *Relation) GetMapPartitions() *MapPartitions { + if x, ok := x.GetRelType().(*Relation_MapPartitions); ok { + return x.MapPartitions + } + return nil +} + +func (x *Relation) GetCollectMetrics() *CollectMetrics { + if x, ok := x.GetRelType().(*Relation_CollectMetrics); ok { + return x.CollectMetrics + } + return nil +} + +func (x *Relation) GetParse() *Parse { + if x, ok := x.GetRelType().(*Relation_Parse); ok { + return x.Parse + } + return nil +} + +func (x *Relation) GetGroupMap() *GroupMap { + if x, ok := x.GetRelType().(*Relation_GroupMap); ok { + return x.GroupMap + } + return nil +} + +func (x *Relation) GetCoGroupMap() *CoGroupMap { + if x, ok := x.GetRelType().(*Relation_CoGroupMap); ok { + return x.CoGroupMap + } + return nil +} + +func (x *Relation) GetWithWatermark() *WithWatermark { + if x, ok := x.GetRelType().(*Relation_WithWatermark); ok { + return x.WithWatermark + } + return nil +} + +func (x *Relation) GetApplyInPandasWithState() *ApplyInPandasWithState { + if x, ok := x.GetRelType().(*Relation_ApplyInPandasWithState); ok { + return x.ApplyInPandasWithState + } + return nil +} + +func (x *Relation) GetHtmlString() *HtmlString { + if x, ok := x.GetRelType().(*Relation_HtmlString); ok { + return x.HtmlString + } + return nil +} + +func (x *Relation) GetCachedLocalRelation() *CachedLocalRelation { + if x, ok := x.GetRelType().(*Relation_CachedLocalRelation); ok { + return x.CachedLocalRelation + } + return nil +} + +func (x *Relation) GetFillNa() *NAFill { + if x, ok := x.GetRelType().(*Relation_FillNa); ok { + return x.FillNa + } + return nil +} + +func (x *Relation) GetDropNa() *NADrop { + if x, ok := x.GetRelType().(*Relation_DropNa); ok { + return x.DropNa + } + return nil +} + +func (x *Relation) GetReplace() *NAReplace { + if x, ok := x.GetRelType().(*Relation_Replace); ok { + return x.Replace + } + return nil +} + +func (x *Relation) GetSummary() *StatSummary { + if x, ok := x.GetRelType().(*Relation_Summary); ok { + return x.Summary + } + return nil +} + +func (x *Relation) GetCrosstab() *StatCrosstab { + if x, ok := x.GetRelType().(*Relation_Crosstab); ok { + return x.Crosstab + } + return nil +} + +func (x *Relation) GetDescribe() *StatDescribe { + if x, ok := x.GetRelType().(*Relation_Describe); ok { + return x.Describe + } + return nil +} + +func (x *Relation) GetCov() *StatCov { + if x, ok := x.GetRelType().(*Relation_Cov); ok { + return x.Cov + } + return nil +} + +func (x *Relation) GetCorr() *StatCorr { + if x, ok := x.GetRelType().(*Relation_Corr); ok { + return x.Corr + } + return nil +} + +func (x *Relation) GetApproxQuantile() *StatApproxQuantile { + if x, ok := x.GetRelType().(*Relation_ApproxQuantile); ok { + return x.ApproxQuantile + } + return nil +} + +func (x *Relation) GetFreqItems() *StatFreqItems { + if x, ok := x.GetRelType().(*Relation_FreqItems); ok { + return x.FreqItems + } + return nil +} + +func (x *Relation) GetSampleBy() *StatSampleBy { + if x, ok := x.GetRelType().(*Relation_SampleBy); ok { + return x.SampleBy + } + return nil +} + +func (x *Relation) GetCatalog() *Catalog { + if x, ok := x.GetRelType().(*Relation_Catalog); ok { + return x.Catalog + } + return nil +} + +func (x *Relation) GetExtension() *anypb.Any { + if x, ok := x.GetRelType().(*Relation_Extension); ok { + return x.Extension + } + return nil +} + +func (x *Relation) GetUnknown() *Unknown { + if x, ok := x.GetRelType().(*Relation_Unknown); ok { + return x.Unknown + } + return nil +} + +type isRelation_RelType interface { + isRelation_RelType() +} + +type Relation_Read struct { + Read *Read `protobuf:"bytes,2,opt,name=read,proto3,oneof"` +} + +type Relation_Project struct { + Project *Project `protobuf:"bytes,3,opt,name=project,proto3,oneof"` +} + +type Relation_Filter struct { + Filter *Filter `protobuf:"bytes,4,opt,name=filter,proto3,oneof"` +} + +type Relation_Join struct { + Join *Join `protobuf:"bytes,5,opt,name=join,proto3,oneof"` +} + +type Relation_SetOp struct { + SetOp *SetOperation `protobuf:"bytes,6,opt,name=set_op,json=setOp,proto3,oneof"` +} + +type Relation_Sort struct { + Sort *Sort `protobuf:"bytes,7,opt,name=sort,proto3,oneof"` +} + +type Relation_Limit struct { + Limit *Limit `protobuf:"bytes,8,opt,name=limit,proto3,oneof"` +} + +type Relation_Aggregate struct { + Aggregate *Aggregate `protobuf:"bytes,9,opt,name=aggregate,proto3,oneof"` +} + +type Relation_Sql struct { + Sql *SQL `protobuf:"bytes,10,opt,name=sql,proto3,oneof"` +} + +type Relation_LocalRelation struct { + LocalRelation *LocalRelation `protobuf:"bytes,11,opt,name=local_relation,json=localRelation,proto3,oneof"` +} + +type Relation_Sample struct { + Sample *Sample `protobuf:"bytes,12,opt,name=sample,proto3,oneof"` +} + +type Relation_Offset struct { + Offset *Offset `protobuf:"bytes,13,opt,name=offset,proto3,oneof"` +} + +type Relation_Deduplicate struct { + Deduplicate *Deduplicate `protobuf:"bytes,14,opt,name=deduplicate,proto3,oneof"` +} + +type Relation_Range struct { + Range *Range `protobuf:"bytes,15,opt,name=range,proto3,oneof"` +} + +type Relation_SubqueryAlias struct { + SubqueryAlias *SubqueryAlias `protobuf:"bytes,16,opt,name=subquery_alias,json=subqueryAlias,proto3,oneof"` +} + +type Relation_Repartition struct { + Repartition *Repartition `protobuf:"bytes,17,opt,name=repartition,proto3,oneof"` +} + +type Relation_ToDf struct { + ToDf *ToDF `protobuf:"bytes,18,opt,name=to_df,json=toDf,proto3,oneof"` +} + +type Relation_WithColumnsRenamed struct { + WithColumnsRenamed *WithColumnsRenamed `protobuf:"bytes,19,opt,name=with_columns_renamed,json=withColumnsRenamed,proto3,oneof"` +} + +type Relation_ShowString struct { + ShowString *ShowString `protobuf:"bytes,20,opt,name=show_string,json=showString,proto3,oneof"` +} + +type Relation_Drop struct { + Drop *Drop `protobuf:"bytes,21,opt,name=drop,proto3,oneof"` +} + +type Relation_Tail struct { + Tail *Tail `protobuf:"bytes,22,opt,name=tail,proto3,oneof"` +} + +type Relation_WithColumns struct { + WithColumns *WithColumns `protobuf:"bytes,23,opt,name=with_columns,json=withColumns,proto3,oneof"` +} + +type Relation_Hint struct { + Hint *Hint `protobuf:"bytes,24,opt,name=hint,proto3,oneof"` +} + +type Relation_Unpivot struct { + Unpivot *Unpivot `protobuf:"bytes,25,opt,name=unpivot,proto3,oneof"` +} + +type Relation_ToSchema struct { + ToSchema *ToSchema `protobuf:"bytes,26,opt,name=to_schema,json=toSchema,proto3,oneof"` +} + +type Relation_RepartitionByExpression struct { + RepartitionByExpression *RepartitionByExpression `protobuf:"bytes,27,opt,name=repartition_by_expression,json=repartitionByExpression,proto3,oneof"` +} + +type Relation_MapPartitions struct { + MapPartitions *MapPartitions `protobuf:"bytes,28,opt,name=map_partitions,json=mapPartitions,proto3,oneof"` +} + +type Relation_CollectMetrics struct { + CollectMetrics *CollectMetrics `protobuf:"bytes,29,opt,name=collect_metrics,json=collectMetrics,proto3,oneof"` +} + +type Relation_Parse struct { + Parse *Parse `protobuf:"bytes,30,opt,name=parse,proto3,oneof"` +} + +type Relation_GroupMap struct { + GroupMap *GroupMap `protobuf:"bytes,31,opt,name=group_map,json=groupMap,proto3,oneof"` +} + +type Relation_CoGroupMap struct { + CoGroupMap *CoGroupMap `protobuf:"bytes,32,opt,name=co_group_map,json=coGroupMap,proto3,oneof"` +} + +type Relation_WithWatermark struct { + WithWatermark *WithWatermark `protobuf:"bytes,33,opt,name=with_watermark,json=withWatermark,proto3,oneof"` +} + +type Relation_ApplyInPandasWithState struct { + ApplyInPandasWithState *ApplyInPandasWithState `protobuf:"bytes,34,opt,name=apply_in_pandas_with_state,json=applyInPandasWithState,proto3,oneof"` +} + +type Relation_HtmlString struct { + HtmlString *HtmlString `protobuf:"bytes,35,opt,name=html_string,json=htmlString,proto3,oneof"` +} + +type Relation_CachedLocalRelation struct { + CachedLocalRelation *CachedLocalRelation `protobuf:"bytes,36,opt,name=cached_local_relation,json=cachedLocalRelation,proto3,oneof"` +} + +type Relation_FillNa struct { + // NA functions + FillNa *NAFill `protobuf:"bytes,90,opt,name=fill_na,json=fillNa,proto3,oneof"` +} + +type Relation_DropNa struct { + DropNa *NADrop `protobuf:"bytes,91,opt,name=drop_na,json=dropNa,proto3,oneof"` +} + +type Relation_Replace struct { + Replace *NAReplace `protobuf:"bytes,92,opt,name=replace,proto3,oneof"` +} + +type Relation_Summary struct { + // stat functions + Summary *StatSummary `protobuf:"bytes,100,opt,name=summary,proto3,oneof"` +} + +type Relation_Crosstab struct { + Crosstab *StatCrosstab `protobuf:"bytes,101,opt,name=crosstab,proto3,oneof"` +} + +type Relation_Describe struct { + Describe *StatDescribe `protobuf:"bytes,102,opt,name=describe,proto3,oneof"` +} + +type Relation_Cov struct { + Cov *StatCov `protobuf:"bytes,103,opt,name=cov,proto3,oneof"` +} + +type Relation_Corr struct { + Corr *StatCorr `protobuf:"bytes,104,opt,name=corr,proto3,oneof"` +} + +type Relation_ApproxQuantile struct { + ApproxQuantile *StatApproxQuantile `protobuf:"bytes,105,opt,name=approx_quantile,json=approxQuantile,proto3,oneof"` +} + +type Relation_FreqItems struct { + FreqItems *StatFreqItems `protobuf:"bytes,106,opt,name=freq_items,json=freqItems,proto3,oneof"` +} + +type Relation_SampleBy struct { + SampleBy *StatSampleBy `protobuf:"bytes,107,opt,name=sample_by,json=sampleBy,proto3,oneof"` +} + +type Relation_Catalog struct { + // Catalog API (experimental / unstable) + Catalog *Catalog `protobuf:"bytes,200,opt,name=catalog,proto3,oneof"` +} + +type Relation_Extension struct { + // This field is used to mark extensions to the protocol. When plugins generate arbitrary + // relations they can add them here. During the planning the correct resolution is done. + Extension *anypb.Any `protobuf:"bytes,998,opt,name=extension,proto3,oneof"` +} + +type Relation_Unknown struct { + Unknown *Unknown `protobuf:"bytes,999,opt,name=unknown,proto3,oneof"` +} + +func (*Relation_Read) isRelation_RelType() {} + +func (*Relation_Project) isRelation_RelType() {} + +func (*Relation_Filter) isRelation_RelType() {} + +func (*Relation_Join) isRelation_RelType() {} + +func (*Relation_SetOp) isRelation_RelType() {} + +func (*Relation_Sort) isRelation_RelType() {} + +func (*Relation_Limit) isRelation_RelType() {} + +func (*Relation_Aggregate) isRelation_RelType() {} + +func (*Relation_Sql) isRelation_RelType() {} + +func (*Relation_LocalRelation) isRelation_RelType() {} + +func (*Relation_Sample) isRelation_RelType() {} + +func (*Relation_Offset) isRelation_RelType() {} + +func (*Relation_Deduplicate) isRelation_RelType() {} + +func (*Relation_Range) isRelation_RelType() {} + +func (*Relation_SubqueryAlias) isRelation_RelType() {} + +func (*Relation_Repartition) isRelation_RelType() {} + +func (*Relation_ToDf) isRelation_RelType() {} + +func (*Relation_WithColumnsRenamed) isRelation_RelType() {} + +func (*Relation_ShowString) isRelation_RelType() {} + +func (*Relation_Drop) isRelation_RelType() {} + +func (*Relation_Tail) isRelation_RelType() {} + +func (*Relation_WithColumns) isRelation_RelType() {} + +func (*Relation_Hint) isRelation_RelType() {} + +func (*Relation_Unpivot) isRelation_RelType() {} + +func (*Relation_ToSchema) isRelation_RelType() {} + +func (*Relation_RepartitionByExpression) isRelation_RelType() {} + +func (*Relation_MapPartitions) isRelation_RelType() {} + +func (*Relation_CollectMetrics) isRelation_RelType() {} + +func (*Relation_Parse) isRelation_RelType() {} + +func (*Relation_GroupMap) isRelation_RelType() {} + +func (*Relation_CoGroupMap) isRelation_RelType() {} + +func (*Relation_WithWatermark) isRelation_RelType() {} + +func (*Relation_ApplyInPandasWithState) isRelation_RelType() {} + +func (*Relation_HtmlString) isRelation_RelType() {} + +func (*Relation_CachedLocalRelation) isRelation_RelType() {} + +func (*Relation_FillNa) isRelation_RelType() {} + +func (*Relation_DropNa) isRelation_RelType() {} + +func (*Relation_Replace) isRelation_RelType() {} + +func (*Relation_Summary) isRelation_RelType() {} + +func (*Relation_Crosstab) isRelation_RelType() {} + +func (*Relation_Describe) isRelation_RelType() {} + +func (*Relation_Cov) isRelation_RelType() {} + +func (*Relation_Corr) isRelation_RelType() {} + +func (*Relation_ApproxQuantile) isRelation_RelType() {} + +func (*Relation_FreqItems) isRelation_RelType() {} + +func (*Relation_SampleBy) isRelation_RelType() {} + +func (*Relation_Catalog) isRelation_RelType() {} + +func (*Relation_Extension) isRelation_RelType() {} + +func (*Relation_Unknown) isRelation_RelType() {} + +// Used for testing purposes only. +type Unknown struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Unknown) Reset() { + *x = Unknown{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Unknown) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Unknown) ProtoMessage() {} + +func (x *Unknown) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Unknown.ProtoReflect.Descriptor instead. +func (*Unknown) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{1} +} + +// Common metadata of all relations. +type RelationCommon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Shared relation metadata. + SourceInfo string `protobuf:"bytes,1,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"` + // (Optional) A per-client globally unique id for a given connect plan. + PlanId *int64 `protobuf:"varint,2,opt,name=plan_id,json=planId,proto3,oneof" json:"plan_id,omitempty"` +} + +func (x *RelationCommon) Reset() { + *x = RelationCommon{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RelationCommon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RelationCommon) ProtoMessage() {} + +func (x *RelationCommon) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 RelationCommon.ProtoReflect.Descriptor instead. +func (*RelationCommon) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{2} +} + +func (x *RelationCommon) GetSourceInfo() string { + if x != nil { + return x.SourceInfo + } + return "" +} + +func (x *RelationCommon) GetPlanId() int64 { + if x != nil && x.PlanId != nil { + return *x.PlanId + } + return 0 +} + +// Relation that uses a SQL query to generate the output. +type SQL struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The SQL query. + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + // (Optional) A map of parameter names to literal expressions. + Args map[string]*Expression_Literal `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *SQL) Reset() { + *x = SQL{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SQL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SQL) ProtoMessage() {} + +func (x *SQL) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 SQL.ProtoReflect.Descriptor instead. +func (*SQL) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{3} +} + +func (x *SQL) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +func (x *SQL) GetArgs() map[string]*Expression_Literal { + if x != nil { + return x.Args + } + return nil +} + +// Relation that reads from a file / table or other data source. Does not have additional +// inputs. +type Read struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ReadType: + // + // *Read_NamedTable_ + // *Read_DataSource_ + ReadType isRead_ReadType `protobuf_oneof:"read_type"` + // (Optional) Indicates if this is a streaming read. + IsStreaming bool `protobuf:"varint,3,opt,name=is_streaming,json=isStreaming,proto3" json:"is_streaming,omitempty"` +} + +func (x *Read) Reset() { + *x = Read{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Read) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Read) ProtoMessage() {} + +func (x *Read) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Read.ProtoReflect.Descriptor instead. +func (*Read) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{4} +} + +func (m *Read) GetReadType() isRead_ReadType { + if m != nil { + return m.ReadType + } + return nil +} + +func (x *Read) GetNamedTable() *Read_NamedTable { + if x, ok := x.GetReadType().(*Read_NamedTable_); ok { + return x.NamedTable + } + return nil +} + +func (x *Read) GetDataSource() *Read_DataSource { + if x, ok := x.GetReadType().(*Read_DataSource_); ok { + return x.DataSource + } + return nil +} + +func (x *Read) GetIsStreaming() bool { + if x != nil { + return x.IsStreaming + } + return false +} + +type isRead_ReadType interface { + isRead_ReadType() +} + +type Read_NamedTable_ struct { + NamedTable *Read_NamedTable `protobuf:"bytes,1,opt,name=named_table,json=namedTable,proto3,oneof"` +} + +type Read_DataSource_ struct { + DataSource *Read_DataSource `protobuf:"bytes,2,opt,name=data_source,json=dataSource,proto3,oneof"` +} + +func (*Read_NamedTable_) isRead_ReadType() {} + +func (*Read_DataSource_) isRead_ReadType() {} + +// Projection of a bag of expressions for a given input relation. +// +// The input relation must be specified. +// The projected expression can be an arbitrary expression. +type Project struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) Input relation is optional for Project. + // + // For example, `SELECT ABS(-1)` is valid plan without an input plan. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) A Project requires at least one expression. + Expressions []*Expression `protobuf:"bytes,3,rep,name=expressions,proto3" json:"expressions,omitempty"` +} + +func (x *Project) Reset() { + *x = Project{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Project) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Project) ProtoMessage() {} + +func (x *Project) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Project.ProtoReflect.Descriptor instead. +func (*Project) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{5} +} + +func (x *Project) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Project) GetExpressions() []*Expression { + if x != nil { + return x.Expressions + } + return nil +} + +// Relation that applies a boolean expression `condition` on each row of `input` to produce +// the output result. +type Filter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a Filter. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) A Filter must have a condition expression. + Condition *Expression `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"` +} + +func (x *Filter) Reset() { + *x = Filter{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Filter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Filter) ProtoMessage() {} + +func (x *Filter) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Filter.ProtoReflect.Descriptor instead. +func (*Filter) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{6} +} + +func (x *Filter) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Filter) GetCondition() *Expression { + if x != nil { + return x.Condition + } + return nil +} + +// Relation of type [[Join]]. +// +// `left` and `right` must be present. +type Join struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Left input relation for a Join. + Left *Relation `protobuf:"bytes,1,opt,name=left,proto3" json:"left,omitempty"` + // (Required) Right input relation for a Join. + Right *Relation `protobuf:"bytes,2,opt,name=right,proto3" json:"right,omitempty"` + // (Optional) The join condition. Could be unset when `using_columns` is utilized. + // + // This field does not co-exist with using_columns. + JoinCondition *Expression `protobuf:"bytes,3,opt,name=join_condition,json=joinCondition,proto3" json:"join_condition,omitempty"` + // (Required) The join type. + JoinType Join_JoinType `protobuf:"varint,4,opt,name=join_type,json=joinType,proto3,enum=spark.connect.Join_JoinType" json:"join_type,omitempty"` + // Optional. using_columns provides a list of columns that should present on both sides of + // the join inputs that this Join will join on. For example A JOIN B USING col_name is + // equivalent to A JOIN B on A.col_name = B.col_name. + // + // This field does not co-exist with join_condition. + UsingColumns []string `protobuf:"bytes,5,rep,name=using_columns,json=usingColumns,proto3" json:"using_columns,omitempty"` +} + +func (x *Join) Reset() { + *x = Join{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Join) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Join) ProtoMessage() {} + +func (x *Join) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Join.ProtoReflect.Descriptor instead. +func (*Join) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{7} +} + +func (x *Join) GetLeft() *Relation { + if x != nil { + return x.Left + } + return nil +} + +func (x *Join) GetRight() *Relation { + if x != nil { + return x.Right + } + return nil +} + +func (x *Join) GetJoinCondition() *Expression { + if x != nil { + return x.JoinCondition + } + return nil +} + +func (x *Join) GetJoinType() Join_JoinType { + if x != nil { + return x.JoinType + } + return Join_JOIN_TYPE_UNSPECIFIED +} + +func (x *Join) GetUsingColumns() []string { + if x != nil { + return x.UsingColumns + } + return nil +} + +// Relation of type [[SetOperation]] +type SetOperation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Left input relation for a Set operation. + LeftInput *Relation `protobuf:"bytes,1,opt,name=left_input,json=leftInput,proto3" json:"left_input,omitempty"` + // (Required) Right input relation for a Set operation. + RightInput *Relation `protobuf:"bytes,2,opt,name=right_input,json=rightInput,proto3" json:"right_input,omitempty"` + // (Required) The Set operation type. + SetOpType SetOperation_SetOpType `protobuf:"varint,3,opt,name=set_op_type,json=setOpType,proto3,enum=spark.connect.SetOperation_SetOpType" json:"set_op_type,omitempty"` + // (Optional) If to remove duplicate rows. + // + // True to preserve all results. + // False to remove duplicate rows. + IsAll *bool `protobuf:"varint,4,opt,name=is_all,json=isAll,proto3,oneof" json:"is_all,omitempty"` + // (Optional) If to perform the Set operation based on name resolution. + // + // Only UNION supports this option. + ByName *bool `protobuf:"varint,5,opt,name=by_name,json=byName,proto3,oneof" json:"by_name,omitempty"` + // (Optional) If to perform the Set operation and allow missing columns. + // + // Only UNION supports this option. + AllowMissingColumns *bool `protobuf:"varint,6,opt,name=allow_missing_columns,json=allowMissingColumns,proto3,oneof" json:"allow_missing_columns,omitempty"` +} + +func (x *SetOperation) Reset() { + *x = SetOperation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetOperation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetOperation) ProtoMessage() {} + +func (x *SetOperation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 SetOperation.ProtoReflect.Descriptor instead. +func (*SetOperation) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{8} +} + +func (x *SetOperation) GetLeftInput() *Relation { + if x != nil { + return x.LeftInput + } + return nil +} + +func (x *SetOperation) GetRightInput() *Relation { + if x != nil { + return x.RightInput + } + return nil +} + +func (x *SetOperation) GetSetOpType() SetOperation_SetOpType { + if x != nil { + return x.SetOpType + } + return SetOperation_SET_OP_TYPE_UNSPECIFIED +} + +func (x *SetOperation) GetIsAll() bool { + if x != nil && x.IsAll != nil { + return *x.IsAll + } + return false +} + +func (x *SetOperation) GetByName() bool { + if x != nil && x.ByName != nil { + return *x.ByName + } + return false +} + +func (x *SetOperation) GetAllowMissingColumns() bool { + if x != nil && x.AllowMissingColumns != nil { + return *x.AllowMissingColumns + } + return false +} + +// Relation of type [[Limit]] that is used to `limit` rows from the input relation. +type Limit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a Limit. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) the limit. + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *Limit) Reset() { + *x = Limit{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Limit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Limit) ProtoMessage() {} + +func (x *Limit) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Limit.ProtoReflect.Descriptor instead. +func (*Limit) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{9} +} + +func (x *Limit) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Limit) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +// Relation of type [[Offset]] that is used to read rows staring from the `offset` on +// the input relation. +type Offset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for an Offset. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) the limit. + Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *Offset) Reset() { + *x = Offset{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Offset) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Offset) ProtoMessage() {} + +func (x *Offset) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Offset.ProtoReflect.Descriptor instead. +func (*Offset) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{10} +} + +func (x *Offset) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Offset) GetOffset() int32 { + if x != nil { + return x.Offset + } + return 0 +} + +// Relation of type [[Tail]] that is used to fetch `limit` rows from the last of the input relation. +type Tail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for an Tail. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) the limit. + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *Tail) Reset() { + *x = Tail{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tail) ProtoMessage() {} + +func (x *Tail) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Tail.ProtoReflect.Descriptor instead. +func (*Tail) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{11} +} + +func (x *Tail) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Tail) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +// Relation of type [[Aggregate]]. +type Aggregate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a RelationalGroupedDataset. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) How the RelationalGroupedDataset was built. + GroupType Aggregate_GroupType `protobuf:"varint,2,opt,name=group_type,json=groupType,proto3,enum=spark.connect.Aggregate_GroupType" json:"group_type,omitempty"` + // (Required) Expressions for grouping keys + GroupingExpressions []*Expression `protobuf:"bytes,3,rep,name=grouping_expressions,json=groupingExpressions,proto3" json:"grouping_expressions,omitempty"` + // (Required) List of values that will be translated to columns in the output DataFrame. + AggregateExpressions []*Expression `protobuf:"bytes,4,rep,name=aggregate_expressions,json=aggregateExpressions,proto3" json:"aggregate_expressions,omitempty"` + // (Optional) Pivots a column of the current `DataFrame` and performs the specified aggregation. + Pivot *Aggregate_Pivot `protobuf:"bytes,5,opt,name=pivot,proto3" json:"pivot,omitempty"` +} + +func (x *Aggregate) Reset() { + *x = Aggregate{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Aggregate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Aggregate) ProtoMessage() {} + +func (x *Aggregate) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Aggregate.ProtoReflect.Descriptor instead. +func (*Aggregate) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{12} +} + +func (x *Aggregate) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Aggregate) GetGroupType() Aggregate_GroupType { + if x != nil { + return x.GroupType + } + return Aggregate_GROUP_TYPE_UNSPECIFIED +} + +func (x *Aggregate) GetGroupingExpressions() []*Expression { + if x != nil { + return x.GroupingExpressions + } + return nil +} + +func (x *Aggregate) GetAggregateExpressions() []*Expression { + if x != nil { + return x.AggregateExpressions + } + return nil +} + +func (x *Aggregate) GetPivot() *Aggregate_Pivot { + if x != nil { + return x.Pivot + } + return nil +} + +// Relation of type [[Sort]]. +type Sort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a Sort. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The ordering expressions + Order []*Expression_SortOrder `protobuf:"bytes,2,rep,name=order,proto3" json:"order,omitempty"` + // (Optional) if this is a global sort. + IsGlobal *bool `protobuf:"varint,3,opt,name=is_global,json=isGlobal,proto3,oneof" json:"is_global,omitempty"` +} + +func (x *Sort) Reset() { + *x = Sort{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sort) ProtoMessage() {} + +func (x *Sort) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Sort.ProtoReflect.Descriptor instead. +func (*Sort) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{13} +} + +func (x *Sort) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Sort) GetOrder() []*Expression_SortOrder { + if x != nil { + return x.Order + } + return nil +} + +func (x *Sort) GetIsGlobal() bool { + if x != nil && x.IsGlobal != nil { + return *x.IsGlobal + } + return false +} + +// Drop specified columns. +type Drop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) columns to drop. + Columns []*Expression `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"` + // (Optional) names of columns to drop. + ColumnNames []string `protobuf:"bytes,3,rep,name=column_names,json=columnNames,proto3" json:"column_names,omitempty"` +} + +func (x *Drop) Reset() { + *x = Drop{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Drop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Drop) ProtoMessage() {} + +func (x *Drop) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Drop.ProtoReflect.Descriptor instead. +func (*Drop) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{14} +} + +func (x *Drop) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Drop) GetColumns() []*Expression { + if x != nil { + return x.Columns + } + return nil +} + +func (x *Drop) GetColumnNames() []string { + if x != nil { + return x.ColumnNames + } + return nil +} + +// Relation of type [[Deduplicate]] which have duplicate rows removed, could consider either only +// the subset of columns or all the columns. +type Deduplicate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a Deduplicate. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Deduplicate based on a list of column names. + // + // This field does not co-use with `all_columns_as_keys`. + ColumnNames []string `protobuf:"bytes,2,rep,name=column_names,json=columnNames,proto3" json:"column_names,omitempty"` + // (Optional) Deduplicate based on all the columns of the input relation. + // + // This field does not co-use with `column_names`. + AllColumnsAsKeys *bool `protobuf:"varint,3,opt,name=all_columns_as_keys,json=allColumnsAsKeys,proto3,oneof" json:"all_columns_as_keys,omitempty"` + // (Optional) Deduplicate within the time range of watermark. + WithinWatermark *bool `protobuf:"varint,4,opt,name=within_watermark,json=withinWatermark,proto3,oneof" json:"within_watermark,omitempty"` +} + +func (x *Deduplicate) Reset() { + *x = Deduplicate{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Deduplicate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Deduplicate) ProtoMessage() {} + +func (x *Deduplicate) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Deduplicate.ProtoReflect.Descriptor instead. +func (*Deduplicate) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{15} +} + +func (x *Deduplicate) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Deduplicate) GetColumnNames() []string { + if x != nil { + return x.ColumnNames + } + return nil +} + +func (x *Deduplicate) GetAllColumnsAsKeys() bool { + if x != nil && x.AllColumnsAsKeys != nil { + return *x.AllColumnsAsKeys + } + return false +} + +func (x *Deduplicate) GetWithinWatermark() bool { + if x != nil && x.WithinWatermark != nil { + return *x.WithinWatermark + } + return false +} + +// A relation that does not need to be qualified by name. +type LocalRelation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) Local collection data serialized into Arrow IPC streaming format which contains + // the schema of the data. + Data []byte `protobuf:"bytes,1,opt,name=data,proto3,oneof" json:"data,omitempty"` + // (Optional) The schema of local data. + // It should be either a DDL-formatted type string or a JSON string. + // + // The server side will update the column names and data types according to this schema. + // If the 'data' is not provided, then this schema will be required. + Schema *string `protobuf:"bytes,2,opt,name=schema,proto3,oneof" json:"schema,omitempty"` +} + +func (x *LocalRelation) Reset() { + *x = LocalRelation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LocalRelation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LocalRelation) ProtoMessage() {} + +func (x *LocalRelation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 LocalRelation.ProtoReflect.Descriptor instead. +func (*LocalRelation) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{16} +} + +func (x *LocalRelation) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *LocalRelation) GetSchema() string { + if x != nil && x.Schema != nil { + return *x.Schema + } + return "" +} + +// A local relation that has been cached already. +type CachedLocalRelation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) An identifier of the user which created the local relation + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` + // (Required) An identifier of the Spark SQL session in which the user created the local relation. + SessionId string `protobuf:"bytes,2,opt,name=sessionId,proto3" json:"sessionId,omitempty"` + // (Required) A sha-256 hash of the serialized local relation in proto, see LocalRelation. + Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` +} + +func (x *CachedLocalRelation) Reset() { + *x = CachedLocalRelation{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CachedLocalRelation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CachedLocalRelation) ProtoMessage() {} + +func (x *CachedLocalRelation) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 CachedLocalRelation.ProtoReflect.Descriptor instead. +func (*CachedLocalRelation) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{17} +} + +func (x *CachedLocalRelation) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *CachedLocalRelation) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *CachedLocalRelation) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +// Relation of type [[Sample]] that samples a fraction of the dataset. +type Sample struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a Sample. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) lower bound. + LowerBound float64 `protobuf:"fixed64,2,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` + // (Required) upper bound. + UpperBound float64 `protobuf:"fixed64,3,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` + // (Optional) Whether to sample with replacement. + WithReplacement *bool `protobuf:"varint,4,opt,name=with_replacement,json=withReplacement,proto3,oneof" json:"with_replacement,omitempty"` + // (Optional) The random seed. + Seed *int64 `protobuf:"varint,5,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // (Required) Explicitly sort the underlying plan to make the ordering deterministic or cache it. + // This flag is true when invoking `dataframe.randomSplit` to randomly splits DataFrame with the + // provided weights. Otherwise, it is false. + DeterministicOrder bool `protobuf:"varint,6,opt,name=deterministic_order,json=deterministicOrder,proto3" json:"deterministic_order,omitempty"` +} + +func (x *Sample) Reset() { + *x = Sample{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sample) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sample) ProtoMessage() {} + +func (x *Sample) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Sample.ProtoReflect.Descriptor instead. +func (*Sample) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{18} +} + +func (x *Sample) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Sample) GetLowerBound() float64 { + if x != nil { + return x.LowerBound + } + return 0 +} + +func (x *Sample) GetUpperBound() float64 { + if x != nil { + return x.UpperBound + } + return 0 +} + +func (x *Sample) GetWithReplacement() bool { + if x != nil && x.WithReplacement != nil { + return *x.WithReplacement + } + return false +} + +func (x *Sample) GetSeed() int64 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *Sample) GetDeterministicOrder() bool { + if x != nil { + return x.DeterministicOrder + } + return false +} + +// Relation of type [[Range]] that generates a sequence of integers. +type Range struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) Default value = 0 + Start *int64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // (Required) + End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` + // (Required) + Step int64 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"` + // Optional. Default value is assigned by 1) SQL conf "spark.sql.leafNodeDefaultParallelism" if + // it is set, or 2) spark default parallelism. + NumPartitions *int32 `protobuf:"varint,4,opt,name=num_partitions,json=numPartitions,proto3,oneof" json:"num_partitions,omitempty"` +} + +func (x *Range) Reset() { + *x = Range{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Range) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Range) ProtoMessage() {} + +func (x *Range) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Range.ProtoReflect.Descriptor instead. +func (*Range) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{19} +} + +func (x *Range) GetStart() int64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *Range) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +func (x *Range) GetStep() int64 { + if x != nil { + return x.Step + } + return 0 +} + +func (x *Range) GetNumPartitions() int32 { + if x != nil && x.NumPartitions != nil { + return *x.NumPartitions + } + return 0 +} + +// Relation alias. +type SubqueryAlias struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation of SubqueryAlias. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The alias. + Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"` + // (Optional) Qualifier of the alias. + Qualifier []string `protobuf:"bytes,3,rep,name=qualifier,proto3" json:"qualifier,omitempty"` +} + +func (x *SubqueryAlias) Reset() { + *x = SubqueryAlias{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubqueryAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubqueryAlias) ProtoMessage() {} + +func (x *SubqueryAlias) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 SubqueryAlias.ProtoReflect.Descriptor instead. +func (*SubqueryAlias) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{20} +} + +func (x *SubqueryAlias) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *SubqueryAlias) GetAlias() string { + if x != nil { + return x.Alias + } + return "" +} + +func (x *SubqueryAlias) GetQualifier() []string { + if x != nil { + return x.Qualifier + } + return nil +} + +// Relation repartition. +type Repartition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation of Repartition. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Must be positive. + NumPartitions int32 `protobuf:"varint,2,opt,name=num_partitions,json=numPartitions,proto3" json:"num_partitions,omitempty"` + // (Optional) Default value is false. + Shuffle *bool `protobuf:"varint,3,opt,name=shuffle,proto3,oneof" json:"shuffle,omitempty"` +} + +func (x *Repartition) Reset() { + *x = Repartition{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Repartition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Repartition) ProtoMessage() {} + +func (x *Repartition) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_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 Repartition.ProtoReflect.Descriptor instead. +func (*Repartition) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{21} +} + +func (x *Repartition) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Repartition) GetNumPartitions() int32 { + if x != nil { + return x.NumPartitions + } + return 0 +} + +func (x *Repartition) GetShuffle() bool { + if x != nil && x.Shuffle != nil { + return *x.Shuffle + } + return false +} + +// Compose the string representing rows for output. +// It will invoke 'Dataset.showString' to compute the results. +type ShowString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Number of rows to show. + NumRows int32 `protobuf:"varint,2,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + // (Required) If set to more than 0, truncates strings to + // `truncate` characters and all cells will be aligned right. + Truncate int32 `protobuf:"varint,3,opt,name=truncate,proto3" json:"truncate,omitempty"` + // (Required) If set to true, prints output rows vertically (one line per column value). + Vertical bool `protobuf:"varint,4,opt,name=vertical,proto3" json:"vertical,omitempty"` +} + +func (x *ShowString) Reset() { + *x = ShowString{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShowString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowString) ProtoMessage() {} + +func (x *ShowString) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[22] + 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 ShowString.ProtoReflect.Descriptor instead. +func (*ShowString) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{22} +} + +func (x *ShowString) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *ShowString) GetNumRows() int32 { + if x != nil { + return x.NumRows + } + return 0 +} + +func (x *ShowString) GetTruncate() int32 { + if x != nil { + return x.Truncate + } + return 0 +} + +func (x *ShowString) GetVertical() bool { + if x != nil { + return x.Vertical + } + return false +} + +// Compose the string representing rows for output. +// It will invoke 'Dataset.htmlString' to compute the results. +type HtmlString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Number of rows to show. + NumRows int32 `protobuf:"varint,2,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + // (Required) If set to more than 0, truncates strings to + // `truncate` characters and all cells will be aligned right. + Truncate int32 `protobuf:"varint,3,opt,name=truncate,proto3" json:"truncate,omitempty"` +} + +func (x *HtmlString) Reset() { + *x = HtmlString{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HtmlString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HtmlString) ProtoMessage() {} + +func (x *HtmlString) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[23] + 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 HtmlString.ProtoReflect.Descriptor instead. +func (*HtmlString) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{23} +} + +func (x *HtmlString) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *HtmlString) GetNumRows() int32 { + if x != nil { + return x.NumRows + } + return 0 +} + +func (x *HtmlString) GetTruncate() int32 { + if x != nil { + return x.Truncate + } + return 0 +} + +// Computes specified statistics for numeric and string columns. +// It will invoke 'Dataset.summary' (same as 'StatFunctions.summary') +// to compute the results. +type StatSummary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Statistics from to be computed. + // + // Available statistics are: + // + // count + // mean + // stddev + // min + // max + // arbitrary approximate percentiles specified as a percentage (e.g. 75%) + // count_distinct + // approx_count_distinct + // + // If no statistics are given, this function computes 'count', 'mean', 'stddev', 'min', + // 'approximate quartiles' (percentiles at 25%, 50%, and 75%), and 'max'. + Statistics []string `protobuf:"bytes,2,rep,name=statistics,proto3" json:"statistics,omitempty"` +} + +func (x *StatSummary) Reset() { + *x = StatSummary{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatSummary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatSummary) ProtoMessage() {} + +func (x *StatSummary) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[24] + 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 StatSummary.ProtoReflect.Descriptor instead. +func (*StatSummary) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{24} +} + +func (x *StatSummary) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatSummary) GetStatistics() []string { + if x != nil { + return x.Statistics + } + return nil +} + +// Computes basic statistics for numeric and string columns, including count, mean, stddev, min, +// and max. If no columns are given, this function computes statistics for all numerical or +// string columns. +type StatDescribe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Columns to compute statistics on. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` +} + +func (x *StatDescribe) Reset() { + *x = StatDescribe{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatDescribe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatDescribe) ProtoMessage() {} + +func (x *StatDescribe) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[25] + 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 StatDescribe.ProtoReflect.Descriptor instead. +func (*StatDescribe) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{25} +} + +func (x *StatDescribe) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatDescribe) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +// Computes a pair-wise frequency table of the given columns. Also known as a contingency table. +// It will invoke 'Dataset.stat.crosstab' (same as 'StatFunctions.crossTabulate') +// to compute the results. +type StatCrosstab struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The name of the first column. + // + // Distinct items will make the first item of each row. + Col1 string `protobuf:"bytes,2,opt,name=col1,proto3" json:"col1,omitempty"` + // (Required) The name of the second column. + // + // Distinct items will make the column names of the DataFrame. + Col2 string `protobuf:"bytes,3,opt,name=col2,proto3" json:"col2,omitempty"` +} + +func (x *StatCrosstab) Reset() { + *x = StatCrosstab{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatCrosstab) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatCrosstab) ProtoMessage() {} + +func (x *StatCrosstab) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[26] + 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 StatCrosstab.ProtoReflect.Descriptor instead. +func (*StatCrosstab) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{26} +} + +func (x *StatCrosstab) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatCrosstab) GetCol1() string { + if x != nil { + return x.Col1 + } + return "" +} + +func (x *StatCrosstab) GetCol2() string { + if x != nil { + return x.Col2 + } + return "" +} + +// Calculate the sample covariance of two numerical columns of a DataFrame. +// It will invoke 'Dataset.stat.cov' (same as 'StatFunctions.calculateCov') to compute the results. +type StatCov struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The name of the first column. + Col1 string `protobuf:"bytes,2,opt,name=col1,proto3" json:"col1,omitempty"` + // (Required) The name of the second column. + Col2 string `protobuf:"bytes,3,opt,name=col2,proto3" json:"col2,omitempty"` +} + +func (x *StatCov) Reset() { + *x = StatCov{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatCov) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatCov) ProtoMessage() {} + +func (x *StatCov) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[27] + 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 StatCov.ProtoReflect.Descriptor instead. +func (*StatCov) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{27} +} + +func (x *StatCov) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatCov) GetCol1() string { + if x != nil { + return x.Col1 + } + return "" +} + +func (x *StatCov) GetCol2() string { + if x != nil { + return x.Col2 + } + return "" +} + +// Calculates the correlation of two columns of a DataFrame. Currently only supports the Pearson +// Correlation Coefficient. It will invoke 'Dataset.stat.corr' (same as +// 'StatFunctions.pearsonCorrelation') to compute the results. +type StatCorr struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The name of the first column. + Col1 string `protobuf:"bytes,2,opt,name=col1,proto3" json:"col1,omitempty"` + // (Required) The name of the second column. + Col2 string `protobuf:"bytes,3,opt,name=col2,proto3" json:"col2,omitempty"` + // (Optional) Default value is 'pearson'. + // + // Currently only supports the Pearson Correlation Coefficient. + Method *string `protobuf:"bytes,4,opt,name=method,proto3,oneof" json:"method,omitempty"` +} + +func (x *StatCorr) Reset() { + *x = StatCorr{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatCorr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatCorr) ProtoMessage() {} + +func (x *StatCorr) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[28] + 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 StatCorr.ProtoReflect.Descriptor instead. +func (*StatCorr) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{28} +} + +func (x *StatCorr) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatCorr) GetCol1() string { + if x != nil { + return x.Col1 + } + return "" +} + +func (x *StatCorr) GetCol2() string { + if x != nil { + return x.Col2 + } + return "" +} + +func (x *StatCorr) GetMethod() string { + if x != nil && x.Method != nil { + return *x.Method + } + return "" +} + +// Calculates the approximate quantiles of numerical columns of a DataFrame. +// It will invoke 'Dataset.stat.approxQuantile' (same as 'StatFunctions.approxQuantile') +// to compute the results. +type StatApproxQuantile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The names of the numerical columns. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` + // (Required) A list of quantile probabilities. + // + // Each number must belong to [0, 1]. + // For example 0 is the minimum, 0.5 is the median, 1 is the maximum. + Probabilities []float64 `protobuf:"fixed64,3,rep,packed,name=probabilities,proto3" json:"probabilities,omitempty"` + // (Required) The relative target precision to achieve (greater than or equal to 0). + // + // If set to zero, the exact quantiles are computed, which could be very expensive. + // Note that values greater than 1 are accepted but give the same result as 1. + RelativeError float64 `protobuf:"fixed64,4,opt,name=relative_error,json=relativeError,proto3" json:"relative_error,omitempty"` +} + +func (x *StatApproxQuantile) Reset() { + *x = StatApproxQuantile{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatApproxQuantile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatApproxQuantile) ProtoMessage() {} + +func (x *StatApproxQuantile) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[29] + 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 StatApproxQuantile.ProtoReflect.Descriptor instead. +func (*StatApproxQuantile) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{29} +} + +func (x *StatApproxQuantile) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatApproxQuantile) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +func (x *StatApproxQuantile) GetProbabilities() []float64 { + if x != nil { + return x.Probabilities + } + return nil +} + +func (x *StatApproxQuantile) GetRelativeError() float64 { + if x != nil { + return x.RelativeError + } + return 0 +} + +// Finding frequent items for columns, possibly with false positives. +// It will invoke 'Dataset.stat.freqItems' (same as 'StatFunctions.freqItems') +// to compute the results. +type StatFreqItems struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The names of the columns to search frequent items in. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` + // (Optional) The minimum frequency for an item to be considered `frequent`. + // Should be greater than 1e-4. + Support *float64 `protobuf:"fixed64,3,opt,name=support,proto3,oneof" json:"support,omitempty"` +} + +func (x *StatFreqItems) Reset() { + *x = StatFreqItems{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatFreqItems) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatFreqItems) ProtoMessage() {} + +func (x *StatFreqItems) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[30] + 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 StatFreqItems.ProtoReflect.Descriptor instead. +func (*StatFreqItems) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{30} +} + +func (x *StatFreqItems) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatFreqItems) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +func (x *StatFreqItems) GetSupport() float64 { + if x != nil && x.Support != nil { + return *x.Support + } + return 0 +} + +// Returns a stratified sample without replacement based on the fraction +// given on each stratum. +// It will invoke 'Dataset.stat.freqItems' (same as 'StatFunctions.freqItems') +// to compute the results. +type StatSampleBy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The column that defines strata. + Col *Expression `protobuf:"bytes,2,opt,name=col,proto3" json:"col,omitempty"` + // (Required) Sampling fraction for each stratum. + // + // If a stratum is not specified, we treat its fraction as zero. + Fractions []*StatSampleBy_Fraction `protobuf:"bytes,3,rep,name=fractions,proto3" json:"fractions,omitempty"` + // (Optional) The random seed. + Seed *int64 `protobuf:"varint,5,opt,name=seed,proto3,oneof" json:"seed,omitempty"` +} + +func (x *StatSampleBy) Reset() { + *x = StatSampleBy{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatSampleBy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatSampleBy) ProtoMessage() {} + +func (x *StatSampleBy) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[31] + 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 StatSampleBy.ProtoReflect.Descriptor instead. +func (*StatSampleBy) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{31} +} + +func (x *StatSampleBy) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *StatSampleBy) GetCol() *Expression { + if x != nil { + return x.Col + } + return nil +} + +func (x *StatSampleBy) GetFractions() []*StatSampleBy_Fraction { + if x != nil { + return x.Fractions + } + return nil +} + +func (x *StatSampleBy) GetSeed() int64 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +// Replaces null values. +// It will invoke 'Dataset.na.fill' (same as 'DataFrameNaFunctions.fill') to compute the results. +// Following 3 parameter combinations are supported: +// +// 1, 'values' only contains 1 item, 'cols' is empty: +// replaces null values in all type-compatible columns. +// 2, 'values' only contains 1 item, 'cols' is not empty: +// replaces null values in specified columns. +// 3, 'values' contains more than 1 items, then 'cols' is required to have the same length: +// replaces each specified column with corresponding value. +type NAFill struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Optional list of column names to consider. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` + // (Required) Values to replace null values with. + // + // Should contain at least 1 item. + // Only 4 data types are supported now: bool, long, double, string + Values []*Expression_Literal `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *NAFill) Reset() { + *x = NAFill{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NAFill) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NAFill) ProtoMessage() {} + +func (x *NAFill) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[32] + 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 NAFill.ProtoReflect.Descriptor instead. +func (*NAFill) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{32} +} + +func (x *NAFill) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *NAFill) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +func (x *NAFill) GetValues() []*Expression_Literal { + if x != nil { + return x.Values + } + return nil +} + +// Drop rows containing null values. +// It will invoke 'Dataset.na.drop' (same as 'DataFrameNaFunctions.drop') to compute the results. +type NADrop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) Optional list of column names to consider. + // + // When it is empty, all the columns in the input relation will be considered. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` + // (Optional) The minimum number of non-null and non-NaN values required to keep. + // + // When not set, it is equivalent to the number of considered columns, which means + // a row will be kept only if all columns are non-null. + // + // 'how' options ('all', 'any') can be easily converted to this field: + // - 'all' -> set 'min_non_nulls' 1; + // - 'any' -> keep 'min_non_nulls' unset; + MinNonNulls *int32 `protobuf:"varint,3,opt,name=min_non_nulls,json=minNonNulls,proto3,oneof" json:"min_non_nulls,omitempty"` +} + +func (x *NADrop) Reset() { + *x = NADrop{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NADrop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NADrop) ProtoMessage() {} + +func (x *NADrop) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[33] + 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 NADrop.ProtoReflect.Descriptor instead. +func (*NADrop) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{33} +} + +func (x *NADrop) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *NADrop) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +func (x *NADrop) GetMinNonNulls() int32 { + if x != nil && x.MinNonNulls != nil { + return *x.MinNonNulls + } + return 0 +} + +// Replaces old values with the corresponding values. +// It will invoke 'Dataset.na.replace' (same as 'DataFrameNaFunctions.replace') +// to compute the results. +type NAReplace struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Optional) List of column names to consider. + // + // When it is empty, all the type-compatible columns in the input relation will be considered. + Cols []string `protobuf:"bytes,2,rep,name=cols,proto3" json:"cols,omitempty"` + // (Optional) The value replacement mapping. + Replacements []*NAReplace_Replacement `protobuf:"bytes,3,rep,name=replacements,proto3" json:"replacements,omitempty"` +} + +func (x *NAReplace) Reset() { + *x = NAReplace{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NAReplace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NAReplace) ProtoMessage() {} + +func (x *NAReplace) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[34] + 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 NAReplace.ProtoReflect.Descriptor instead. +func (*NAReplace) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{34} +} + +func (x *NAReplace) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *NAReplace) GetCols() []string { + if x != nil { + return x.Cols + } + return nil +} + +func (x *NAReplace) GetReplacements() []*NAReplace_Replacement { + if x != nil { + return x.Replacements + } + return nil +} + +// Rename columns on the input relation by the same length of names. +type ToDF struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation of RenameColumnsBySameLengthNames. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) + // + // The number of columns of the input relation must be equal to the length + // of this field. If this is not true, an exception will be returned. + ColumnNames []string `protobuf:"bytes,2,rep,name=column_names,json=columnNames,proto3" json:"column_names,omitempty"` +} + +func (x *ToDF) Reset() { + *x = ToDF{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToDF) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToDF) ProtoMessage() {} + +func (x *ToDF) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[35] + 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 ToDF.ProtoReflect.Descriptor instead. +func (*ToDF) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{35} +} + +func (x *ToDF) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *ToDF) GetColumnNames() []string { + if x != nil { + return x.ColumnNames + } + return nil +} + +// Rename columns on the input relation by a map with name to name mapping. +type WithColumnsRenamed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) + // + // Renaming column names of input relation from A to B where A is the map key + // and B is the map value. This is a no-op if schema doesn't contain any A. It + // does not require that all input relation column names to present as keys. + // duplicated B are not allowed. + RenameColumnsMap map[string]string `protobuf:"bytes,2,rep,name=rename_columns_map,json=renameColumnsMap,proto3" json:"rename_columns_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *WithColumnsRenamed) Reset() { + *x = WithColumnsRenamed{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithColumnsRenamed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithColumnsRenamed) ProtoMessage() {} + +func (x *WithColumnsRenamed) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[36] + 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 WithColumnsRenamed.ProtoReflect.Descriptor instead. +func (*WithColumnsRenamed) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{36} +} + +func (x *WithColumnsRenamed) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WithColumnsRenamed) GetRenameColumnsMap() map[string]string { + if x != nil { + return x.RenameColumnsMap + } + return nil +} + +// Adding columns or replacing the existing columns that have the same names. +type WithColumns struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) + // + // Given a column name, apply the corresponding expression on the column. If column + // name exists in the input relation, then replace the column. If the column name + // does not exist in the input relation, then adds it as a new column. + // + // Only one name part is expected from each Expression.Alias. + // + // An exception is thrown when duplicated names are present in the mapping. + Aliases []*Expression_Alias `protobuf:"bytes,2,rep,name=aliases,proto3" json:"aliases,omitempty"` +} + +func (x *WithColumns) Reset() { + *x = WithColumns{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithColumns) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithColumns) ProtoMessage() {} + +func (x *WithColumns) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[37] + 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 WithColumns.ProtoReflect.Descriptor instead. +func (*WithColumns) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{37} +} + +func (x *WithColumns) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WithColumns) GetAliases() []*Expression_Alias { + if x != nil { + return x.Aliases + } + return nil +} + +type WithWatermark struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Name of the column containing event time. + EventTime string `protobuf:"bytes,2,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` + // (Required) + DelayThreshold string `protobuf:"bytes,3,opt,name=delay_threshold,json=delayThreshold,proto3" json:"delay_threshold,omitempty"` +} + +func (x *WithWatermark) Reset() { + *x = WithWatermark{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithWatermark) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithWatermark) ProtoMessage() {} + +func (x *WithWatermark) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[38] + 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 WithWatermark.ProtoReflect.Descriptor instead. +func (*WithWatermark) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{38} +} + +func (x *WithWatermark) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *WithWatermark) GetEventTime() string { + if x != nil { + return x.EventTime + } + return "" +} + +func (x *WithWatermark) GetDelayThreshold() string { + if x != nil { + return x.DelayThreshold + } + return "" +} + +// Specify a hint over a relation. Hint should have a name and optional parameters. +type Hint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Hint name. + // + // Supported Join hints include BROADCAST, MERGE, SHUFFLE_HASH, SHUFFLE_REPLICATE_NL. + // + // Supported partitioning hints include COALESCE, REPARTITION, REPARTITION_BY_RANGE. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // (Optional) Hint parameters. + Parameters []*Expression `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *Hint) Reset() { + *x = Hint{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Hint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Hint) ProtoMessage() {} + +func (x *Hint) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[39] + 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 Hint.ProtoReflect.Descriptor instead. +func (*Hint) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{39} +} + +func (x *Hint) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Hint) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Hint) GetParameters() []*Expression { + if x != nil { + return x.Parameters + } + return nil +} + +// Unpivot a DataFrame from wide format to long format, optionally leaving identifier columns set. +type Unpivot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Id columns. + Ids []*Expression `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` + // (Optional) Value columns to unpivot. + Values *Unpivot_Values `protobuf:"bytes,3,opt,name=values,proto3,oneof" json:"values,omitempty"` + // (Required) Name of the variable column. + VariableColumnName string `protobuf:"bytes,4,opt,name=variable_column_name,json=variableColumnName,proto3" json:"variable_column_name,omitempty"` + // (Required) Name of the value column. + ValueColumnName string `protobuf:"bytes,5,opt,name=value_column_name,json=valueColumnName,proto3" json:"value_column_name,omitempty"` +} + +func (x *Unpivot) Reset() { + *x = Unpivot{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Unpivot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Unpivot) ProtoMessage() {} + +func (x *Unpivot) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[40] + 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 Unpivot.ProtoReflect.Descriptor instead. +func (*Unpivot) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{40} +} + +func (x *Unpivot) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Unpivot) GetIds() []*Expression { + if x != nil { + return x.Ids + } + return nil +} + +func (x *Unpivot) GetValues() *Unpivot_Values { + if x != nil { + return x.Values + } + return nil +} + +func (x *Unpivot) GetVariableColumnName() string { + if x != nil { + return x.VariableColumnName + } + return "" +} + +func (x *Unpivot) GetValueColumnName() string { + if x != nil { + return x.ValueColumnName + } + return "" +} + +type ToSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The user provided schema. + // + // The Sever side will update the dataframe with this schema. + Schema *DataType `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` +} + +func (x *ToSchema) Reset() { + *x = ToSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToSchema) ProtoMessage() {} + +func (x *ToSchema) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[41] + 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 ToSchema.ProtoReflect.Descriptor instead. +func (*ToSchema) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{41} +} + +func (x *ToSchema) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *ToSchema) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +type RepartitionByExpression struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The partitioning expressions. + PartitionExprs []*Expression `protobuf:"bytes,2,rep,name=partition_exprs,json=partitionExprs,proto3" json:"partition_exprs,omitempty"` + // (Optional) number of partitions, must be positive. + NumPartitions *int32 `protobuf:"varint,3,opt,name=num_partitions,json=numPartitions,proto3,oneof" json:"num_partitions,omitempty"` +} + +func (x *RepartitionByExpression) Reset() { + *x = RepartitionByExpression{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepartitionByExpression) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepartitionByExpression) ProtoMessage() {} + +func (x *RepartitionByExpression) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[42] + 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 RepartitionByExpression.ProtoReflect.Descriptor instead. +func (*RepartitionByExpression) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{42} +} + +func (x *RepartitionByExpression) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *RepartitionByExpression) GetPartitionExprs() []*Expression { + if x != nil { + return x.PartitionExprs + } + return nil +} + +func (x *RepartitionByExpression) GetNumPartitions() int32 { + if x != nil && x.NumPartitions != nil { + return *x.NumPartitions + } + return 0 +} + +type MapPartitions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for a mapPartitions-equivalent API: mapInPandas, mapInArrow. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Input user-defined function. + Func *CommonInlineUserDefinedFunction `protobuf:"bytes,2,opt,name=func,proto3" json:"func,omitempty"` + // (Optional) Whether to use barrier mode execution or not. + IsBarrier *bool `protobuf:"varint,3,opt,name=is_barrier,json=isBarrier,proto3,oneof" json:"is_barrier,omitempty"` +} + +func (x *MapPartitions) Reset() { + *x = MapPartitions{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MapPartitions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MapPartitions) ProtoMessage() {} + +func (x *MapPartitions) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[43] + 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 MapPartitions.ProtoReflect.Descriptor instead. +func (*MapPartitions) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{43} +} + +func (x *MapPartitions) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *MapPartitions) GetFunc() *CommonInlineUserDefinedFunction { + if x != nil { + return x.Func + } + return nil +} + +func (x *MapPartitions) GetIsBarrier() bool { + if x != nil && x.IsBarrier != nil { + return *x.IsBarrier + } + return false +} + +type GroupMap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for Group Map API: apply, applyInPandas. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Expressions for grouping keys. + GroupingExpressions []*Expression `protobuf:"bytes,2,rep,name=grouping_expressions,json=groupingExpressions,proto3" json:"grouping_expressions,omitempty"` + // (Required) Input user-defined function. + Func *CommonInlineUserDefinedFunction `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` + // (Optional) Expressions for sorting. Only used by Scala Sorted Group Map API. + SortingExpressions []*Expression `protobuf:"bytes,4,rep,name=sorting_expressions,json=sortingExpressions,proto3" json:"sorting_expressions,omitempty"` +} + +func (x *GroupMap) Reset() { + *x = GroupMap{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMap) ProtoMessage() {} + +func (x *GroupMap) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[44] + 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 GroupMap.ProtoReflect.Descriptor instead. +func (*GroupMap) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{44} +} + +func (x *GroupMap) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *GroupMap) GetGroupingExpressions() []*Expression { + if x != nil { + return x.GroupingExpressions + } + return nil +} + +func (x *GroupMap) GetFunc() *CommonInlineUserDefinedFunction { + if x != nil { + return x.Func + } + return nil +} + +func (x *GroupMap) GetSortingExpressions() []*Expression { + if x != nil { + return x.SortingExpressions + } + return nil +} + +type CoGroupMap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) One input relation for CoGroup Map API - applyInPandas. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // Expressions for grouping keys of the first input relation. + InputGroupingExpressions []*Expression `protobuf:"bytes,2,rep,name=input_grouping_expressions,json=inputGroupingExpressions,proto3" json:"input_grouping_expressions,omitempty"` + // (Required) The other input relation. + Other *Relation `protobuf:"bytes,3,opt,name=other,proto3" json:"other,omitempty"` + // Expressions for grouping keys of the other input relation. + OtherGroupingExpressions []*Expression `protobuf:"bytes,4,rep,name=other_grouping_expressions,json=otherGroupingExpressions,proto3" json:"other_grouping_expressions,omitempty"` + // (Required) Input user-defined function. + Func *CommonInlineUserDefinedFunction `protobuf:"bytes,5,opt,name=func,proto3" json:"func,omitempty"` + // (Optional) Expressions for sorting. Only used by Scala Sorted CoGroup Map API. + InputSortingExpressions []*Expression `protobuf:"bytes,6,rep,name=input_sorting_expressions,json=inputSortingExpressions,proto3" json:"input_sorting_expressions,omitempty"` + // (Optional) Expressions for sorting. Only used by Scala Sorted CoGroup Map API. + OtherSortingExpressions []*Expression `protobuf:"bytes,7,rep,name=other_sorting_expressions,json=otherSortingExpressions,proto3" json:"other_sorting_expressions,omitempty"` +} + +func (x *CoGroupMap) Reset() { + *x = CoGroupMap{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoGroupMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoGroupMap) ProtoMessage() {} + +func (x *CoGroupMap) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[45] + 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 CoGroupMap.ProtoReflect.Descriptor instead. +func (*CoGroupMap) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{45} +} + +func (x *CoGroupMap) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *CoGroupMap) GetInputGroupingExpressions() []*Expression { + if x != nil { + return x.InputGroupingExpressions + } + return nil +} + +func (x *CoGroupMap) GetOther() *Relation { + if x != nil { + return x.Other + } + return nil +} + +func (x *CoGroupMap) GetOtherGroupingExpressions() []*Expression { + if x != nil { + return x.OtherGroupingExpressions + } + return nil +} + +func (x *CoGroupMap) GetFunc() *CommonInlineUserDefinedFunction { + if x != nil { + return x.Func + } + return nil +} + +func (x *CoGroupMap) GetInputSortingExpressions() []*Expression { + if x != nil { + return x.InputSortingExpressions + } + return nil +} + +func (x *CoGroupMap) GetOtherSortingExpressions() []*Expression { + if x != nil { + return x.OtherSortingExpressions + } + return nil +} + +type ApplyInPandasWithState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation for applyInPandasWithState. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Expressions for grouping keys. + GroupingExpressions []*Expression `protobuf:"bytes,2,rep,name=grouping_expressions,json=groupingExpressions,proto3" json:"grouping_expressions,omitempty"` + // (Required) Input user-defined function. + Func *CommonInlineUserDefinedFunction `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` + // (Required) Schema for the output DataFrame. + OutputSchema string `protobuf:"bytes,4,opt,name=output_schema,json=outputSchema,proto3" json:"output_schema,omitempty"` + // (Required) Schema for the state. + StateSchema string `protobuf:"bytes,5,opt,name=state_schema,json=stateSchema,proto3" json:"state_schema,omitempty"` + // (Required) The output mode of the function. + OutputMode string `protobuf:"bytes,6,opt,name=output_mode,json=outputMode,proto3" json:"output_mode,omitempty"` + // (Required) Timeout configuration for groups that do not receive data for a while. + TimeoutConf string `protobuf:"bytes,7,opt,name=timeout_conf,json=timeoutConf,proto3" json:"timeout_conf,omitempty"` +} + +func (x *ApplyInPandasWithState) Reset() { + *x = ApplyInPandasWithState{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplyInPandasWithState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyInPandasWithState) ProtoMessage() {} + +func (x *ApplyInPandasWithState) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[46] + 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 ApplyInPandasWithState.ProtoReflect.Descriptor instead. +func (*ApplyInPandasWithState) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{46} +} + +func (x *ApplyInPandasWithState) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *ApplyInPandasWithState) GetGroupingExpressions() []*Expression { + if x != nil { + return x.GroupingExpressions + } + return nil +} + +func (x *ApplyInPandasWithState) GetFunc() *CommonInlineUserDefinedFunction { + if x != nil { + return x.Func + } + return nil +} + +func (x *ApplyInPandasWithState) GetOutputSchema() string { + if x != nil { + return x.OutputSchema + } + return "" +} + +func (x *ApplyInPandasWithState) GetStateSchema() string { + if x != nil { + return x.StateSchema + } + return "" +} + +func (x *ApplyInPandasWithState) GetOutputMode() string { + if x != nil { + return x.OutputMode + } + return "" +} + +func (x *ApplyInPandasWithState) GetTimeoutConf() string { + if x != nil { + return x.TimeoutConf + } + return "" +} + +// Collect arbitrary (named) metrics from a dataset. +type CollectMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The input relation. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) Name of the metrics. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // (Required) The metric sequence. + Metrics []*Expression `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"` +} + +func (x *CollectMetrics) Reset() { + *x = CollectMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CollectMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CollectMetrics) ProtoMessage() {} + +func (x *CollectMetrics) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[47] + 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 CollectMetrics.ProtoReflect.Descriptor instead. +func (*CollectMetrics) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{47} +} + +func (x *CollectMetrics) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *CollectMetrics) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CollectMetrics) GetMetrics() []*Expression { + if x != nil { + return x.Metrics + } + return nil +} + +type Parse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Input relation to Parse. The input is expected to have single text column. + Input *Relation `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // (Required) The expected format of the text. + Format Parse_ParseFormat `protobuf:"varint,2,opt,name=format,proto3,enum=spark.connect.Parse_ParseFormat" json:"format,omitempty"` + // (Optional) DataType representing the schema. If not set, Spark will infer the schema. + Schema *DataType `protobuf:"bytes,3,opt,name=schema,proto3,oneof" json:"schema,omitempty"` + // Options for the csv/json parser. The map key is case insensitive. + Options map[string]string `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Parse) Reset() { + *x = Parse{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Parse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Parse) ProtoMessage() {} + +func (x *Parse) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[48] + 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 Parse.ProtoReflect.Descriptor instead. +func (*Parse) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{48} +} + +func (x *Parse) GetInput() *Relation { + if x != nil { + return x.Input + } + return nil +} + +func (x *Parse) GetFormat() Parse_ParseFormat { + if x != nil { + return x.Format + } + return Parse_PARSE_FORMAT_UNSPECIFIED +} + +func (x *Parse) GetSchema() *DataType { + if x != nil { + return x.Schema + } + return nil +} + +func (x *Parse) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +type Read_NamedTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) Unparsed identifier for the table. + UnparsedIdentifier string `protobuf:"bytes,1,opt,name=unparsed_identifier,json=unparsedIdentifier,proto3" json:"unparsed_identifier,omitempty"` + // Options for the named table. The map key is case insensitive. + Options map[string]string `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Read_NamedTable) Reset() { + *x = Read_NamedTable{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Read_NamedTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Read_NamedTable) ProtoMessage() {} + +func (x *Read_NamedTable) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[50] + 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 Read_NamedTable.ProtoReflect.Descriptor instead. +func (*Read_NamedTable) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *Read_NamedTable) GetUnparsedIdentifier() string { + if x != nil { + return x.UnparsedIdentifier + } + return "" +} + +func (x *Read_NamedTable) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +type Read_DataSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Optional) Supported formats include: parquet, orc, text, json, parquet, csv, avro. + // + // If not set, the value from SQL conf 'spark.sql.sources.default' will be used. + Format *string `protobuf:"bytes,1,opt,name=format,proto3,oneof" json:"format,omitempty"` + // (Optional) If not set, Spark will infer the schema. + // + // This schema string should be either DDL-formatted or JSON-formatted. + Schema *string `protobuf:"bytes,2,opt,name=schema,proto3,oneof" json:"schema,omitempty"` + // Options for the data source. The context of this map varies based on the + // data source format. This options could be empty for valid data source format. + // The map key is case insensitive. + Options map[string]string `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // (Optional) A list of path for file-system backed data sources. + Paths []string `protobuf:"bytes,4,rep,name=paths,proto3" json:"paths,omitempty"` + // (Optional) Condition in the where clause for each partition. + // + // This is only supported by the JDBC data source. + Predicates []string `protobuf:"bytes,5,rep,name=predicates,proto3" json:"predicates,omitempty"` +} + +func (x *Read_DataSource) Reset() { + *x = Read_DataSource{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Read_DataSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Read_DataSource) ProtoMessage() {} + +func (x *Read_DataSource) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[51] + 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 Read_DataSource.ProtoReflect.Descriptor instead. +func (*Read_DataSource) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{4, 1} +} + +func (x *Read_DataSource) GetFormat() string { + if x != nil && x.Format != nil { + return *x.Format + } + return "" +} + +func (x *Read_DataSource) GetSchema() string { + if x != nil && x.Schema != nil { + return *x.Schema + } + return "" +} + +func (x *Read_DataSource) GetOptions() map[string]string { + if x != nil { + return x.Options + } + return nil +} + +func (x *Read_DataSource) GetPaths() []string { + if x != nil { + return x.Paths + } + return nil +} + +func (x *Read_DataSource) GetPredicates() []string { + if x != nil { + return x.Predicates + } + return nil +} + +type Aggregate_Pivot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The column to pivot + Col *Expression `protobuf:"bytes,1,opt,name=col,proto3" json:"col,omitempty"` + // (Optional) List of values that will be translated to columns in the output DataFrame. + // + // Note that if it is empty, the server side will immediately trigger a job to collect + // the distinct values of the column. + Values []*Expression_Literal `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *Aggregate_Pivot) Reset() { + *x = Aggregate_Pivot{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Aggregate_Pivot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Aggregate_Pivot) ProtoMessage() {} + +func (x *Aggregate_Pivot) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[54] + 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 Aggregate_Pivot.ProtoReflect.Descriptor instead. +func (*Aggregate_Pivot) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *Aggregate_Pivot) GetCol() *Expression { + if x != nil { + return x.Col + } + return nil +} + +func (x *Aggregate_Pivot) GetValues() []*Expression_Literal { + if x != nil { + return x.Values + } + return nil +} + +type StatSampleBy_Fraction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The stratum. + Stratum *Expression_Literal `protobuf:"bytes,1,opt,name=stratum,proto3" json:"stratum,omitempty"` + // (Required) The fraction value. Must be in [0, 1]. + Fraction float64 `protobuf:"fixed64,2,opt,name=fraction,proto3" json:"fraction,omitempty"` +} + +func (x *StatSampleBy_Fraction) Reset() { + *x = StatSampleBy_Fraction{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatSampleBy_Fraction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatSampleBy_Fraction) ProtoMessage() {} + +func (x *StatSampleBy_Fraction) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[55] + 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 StatSampleBy_Fraction.ProtoReflect.Descriptor instead. +func (*StatSampleBy_Fraction) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{31, 0} +} + +func (x *StatSampleBy_Fraction) GetStratum() *Expression_Literal { + if x != nil { + return x.Stratum + } + return nil +} + +func (x *StatSampleBy_Fraction) GetFraction() float64 { + if x != nil { + return x.Fraction + } + return 0 +} + +type NAReplace_Replacement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The old value. + // + // Only 4 data types are supported now: null, bool, double, string. + OldValue *Expression_Literal `protobuf:"bytes,1,opt,name=old_value,json=oldValue,proto3" json:"old_value,omitempty"` + // (Required) The new value. + // + // Should be of the same data type with the old value. + NewValue *Expression_Literal `protobuf:"bytes,2,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +} + +func (x *NAReplace_Replacement) Reset() { + *x = NAReplace_Replacement{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NAReplace_Replacement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NAReplace_Replacement) ProtoMessage() {} + +func (x *NAReplace_Replacement) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[56] + 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 NAReplace_Replacement.ProtoReflect.Descriptor instead. +func (*NAReplace_Replacement) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{34, 0} +} + +func (x *NAReplace_Replacement) GetOldValue() *Expression_Literal { + if x != nil { + return x.OldValue + } + return nil +} + +func (x *NAReplace_Replacement) GetNewValue() *Expression_Literal { + if x != nil { + return x.NewValue + } + return nil +} + +type Unpivot_Values struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values []*Expression `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *Unpivot_Values) Reset() { + *x = Unpivot_Values{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_relations_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Unpivot_Values) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Unpivot_Values) ProtoMessage() {} + +func (x *Unpivot_Values) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_relations_proto_msgTypes[58] + 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 Unpivot_Values.ProtoReflect.Descriptor instead. +func (*Unpivot_Values) Descriptor() ([]byte, []int) { + return file_spark_connect_relations_proto_rawDescGZIP(), []int{40, 0} +} + +func (x *Unpivot_Values) GetValues() []*Expression { + if x != nil { + return x.Values + } + return nil +} + +var File_spark_connect_relations_proto protoreflect.FileDescriptor + +var file_spark_connect_relations_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x0d, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x19, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xf3, 0x16, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x61, + 0x64, 0x12, 0x32, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x6f, 0x69, + 0x6e, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x04, 0x73, 0x6f, + 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x38, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x73, 0x71, + 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x51, 0x4c, 0x48, 0x00, 0x52, 0x03, 0x73, + 0x71, 0x6c, 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, + 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, + 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x75, 0x62, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x53, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, + 0x00, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, + 0x12, 0x3e, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2a, 0x0a, 0x05, 0x74, 0x6f, 0x5f, 0x64, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x54, 0x6f, 0x44, 0x46, 0x48, 0x00, 0x52, 0x04, 0x74, 0x6f, 0x44, 0x66, 0x12, 0x55, 0x0a, 0x14, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, + 0x12, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x44, 0x72, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x12, 0x29, 0x0a, 0x04, + 0x74, 0x61, 0x69, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x61, 0x69, 0x6c, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x3f, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x69, 0x74, + 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x68, 0x69, 0x6e, 0x74, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x68, + 0x69, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x75, 0x6e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x6e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x48, 0x00, 0x52, 0x07, + 0x75, 0x6e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x6f, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x08, 0x74, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x64, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x79, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x61, + 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6d, + 0x61, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, + 0x70, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, + 0x48, 0x00, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x0c, + 0x63, 0x6f, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, + 0x0a, 0x63, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x21, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, + 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x74, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, + 0x72, 0x6b, 0x12, 0x63, 0x0a, 0x1a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x50, 0x61, + 0x6e, 0x64, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x16, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x50, 0x61, 0x6e, 0x64, 0x61, 0x73, 0x57, 0x69, + 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x68, 0x74, 0x6d, 0x6c, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x74, 0x6d, + 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x68, 0x74, 0x6d, 0x6c, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x58, 0x0a, 0x15, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x30, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x4e, 0x41, 0x46, 0x69, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x6c, 0x4e, + 0x61, 0x12, 0x30, 0x0a, 0x07, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x6e, 0x61, 0x18, 0x5b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x4e, 0x41, 0x44, 0x72, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x06, 0x64, 0x72, 0x6f, + 0x70, 0x4e, 0x61, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x5c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4e, 0x41, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x48, 0x00, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x74, 0x61, 0x62, 0x18, 0x65, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x74, 0x61, 0x62, + 0x48, 0x00, 0x52, 0x08, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x74, 0x61, 0x62, 0x12, 0x39, 0x0a, 0x08, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x63, 0x6f, 0x76, 0x18, 0x67, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x76, 0x48, 0x00, 0x52, 0x03, + 0x63, 0x6f, 0x76, 0x12, 0x2d, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x72, 0x18, 0x68, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, + 0x72, 0x72, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x48, 0x00, + 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, + 0x12, 0x3d, 0x0a, 0x0a, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x6a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x72, 0x65, 0x71, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x3a, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x18, 0x6b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x48, + 0x00, 0x52, 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 0x12, 0x35, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe6, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x72, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x09, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x22, 0x5b, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, + 0x22, 0xa9, 0x01, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x30, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x51, 0x4c, + 0x2e, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, + 0x1a, 0x5a, 0x0a, 0x09, 0x41, 0x72, 0x67, 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, + 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x05, 0x0a, + 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x2e, + 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x61, + 0x6d, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, + 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0xc0, + 0x01, 0x0a, 0x0a, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, + 0x13, 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x6e, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x61, 0x64, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x1a, 0x95, 0x02, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 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, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x75, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x0b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x70, 0x0a, + 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xd7, 0x03, 0x0a, 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x2e, 0x4a, + 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4e, 0x45, + 0x52, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x45, 0x52, + 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x4e, 0x54, 0x49, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x53, 0x45, + 0x4d, 0x49, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x10, 0x07, 0x22, 0xdf, 0x03, 0x0a, 0x0c, 0x53, 0x65, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x0b, + 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, + 0x65, 0x74, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x06, 0x62, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x13, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x22, 0x72, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, + 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x4f, 0x4e, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, + 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x4c, 0x0a, 0x05, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x4f, 0x0a, 0x06, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x4b, 0x0a, 0x04, 0x54, 0x61, + 0x69, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xc6, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x15, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x14, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x50, + 0x69, 0x76, 0x6f, 0x74, 0x52, 0x05, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x1a, 0x6f, 0x0a, 0x05, 0x50, + 0x69, 0x76, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x63, 0x6f, + 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, + 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x42, 0x59, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x4c, + 0x4c, 0x55, 0x50, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x42, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x56, 0x4f, 0x54, 0x10, 0x04, + 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x69, 0x73, 0x47, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x73, 0x5f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x04, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x41, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x6c, + 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x59, 0x0a, 0x0d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x22, 0x91, 0x02, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x2d, 0x0a, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, + 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x65, + 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0d, 0x6e, 0x75, 0x6d, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x72, 0x0a, 0x0d, 0x53, 0x75, + 0x62, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x8e, + 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x22, + 0x8e, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2d, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x22, 0x72, 0x0a, 0x0a, 0x48, 0x74, 0x6d, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2d, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x22, 0x5c, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x22, 0x51, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x22, 0x65, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x74, 0x61, 0x62, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x31, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x32, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x32, 0x22, 0x60, 0x0a, 0x07, + 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x76, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x31, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x6c, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x32, 0x22, 0x89, + 0x01, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x72, 0x72, 0x12, 0x2d, 0x0a, 0x05, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x6c, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x31, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x6c, 0x32, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x53, + 0x74, 0x61, 0x74, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, + 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x72, 0x6f, + 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0x7d, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x46, 0x72, 0x65, 0x71, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x22, 0xb5, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, + 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x2b, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x63, 0x6f, 0x6c, 0x12, 0x42, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x2e, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x00, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x63, 0x0a, 0x08, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x61, 0x74, 0x75, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x4e, 0x41, 0x46, + 0x69, 0x6c, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x4e, 0x41, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x12, + 0x27, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x6e, + 0x4e, 0x75, 0x6c, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x73, 0x22, 0xa8, 0x02, 0x0a, 0x09, 0x4e, + 0x41, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0c, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x4e, 0x41, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x8d, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x08, 0x6f, 0x6c, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x08, 0x6e, 0x65, 0x77, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x58, 0x0a, 0x04, 0x54, 0x6f, 0x44, 0x46, 0x12, 0x2d, 0x0a, + 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0xef, 0x01, 0x0a, 0x12, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x65, 0x0a, 0x12, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x4d, 0x61, 0x70, 0x1a, 0x43, 0x0a, 0x15, + 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x4d, 0x61, 0x70, + 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, 0x77, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x39, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x69, 0x61, + 0x73, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x57, + 0x69, 0x74, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xc7, 0x02, 0x0a, 0x07, 0x55, + 0x6e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x69, + 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x55, 0x6e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x14, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x06, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x08, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x2f, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x73, 0x12, + 0x2a, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb5, + 0x01, 0x0a, 0x0d, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x42, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, + 0x75, 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x69, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x69, 0x73, 0x42, 0x61, 0x72, + 0x72, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x73, 0x5f, 0x62, + 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x61, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x42, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, + 0x66, 0x75, 0x6e, 0x63, 0x12, 0x4a, 0x0a, 0x13, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x8e, 0x04, 0x0a, 0x0a, 0x43, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x70, 0x12, + 0x2d, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x57, + 0x0a, 0x1a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x1a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x42, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, + 0x75, 0x6e, 0x63, 0x12, 0x55, 0x0a, 0x19, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x19, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x50, 0x61, 0x6e, + 0x64, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x04, 0x66, 0x75, 0x6e, + 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x23, 0x0a, + 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x05, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x33, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x22, 0x84, 0x03, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x73, 0x65, 0x12, 0x2d, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x38, 0x0a, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x61, + 0x72, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x50, + 0x61, 0x72, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x58, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x73, 0x65, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, 0x4f, 0x52, + 0x4d, 0x41, 0x54, 0x5f, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x52, + 0x53, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x36, 0x0a, 0x1e, 0x6f, + 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_relations_proto_rawDescOnce sync.Once + file_spark_connect_relations_proto_rawDescData = file_spark_connect_relations_proto_rawDesc +) + +func file_spark_connect_relations_proto_rawDescGZIP() []byte { + file_spark_connect_relations_proto_rawDescOnce.Do(func() { + file_spark_connect_relations_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_relations_proto_rawDescData) + }) + return file_spark_connect_relations_proto_rawDescData +} + +var file_spark_connect_relations_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_spark_connect_relations_proto_msgTypes = make([]protoimpl.MessageInfo, 60) +var file_spark_connect_relations_proto_goTypes = []interface{}{ + (Join_JoinType)(0), // 0: spark.connect.Join.JoinType + (SetOperation_SetOpType)(0), // 1: spark.connect.SetOperation.SetOpType + (Aggregate_GroupType)(0), // 2: spark.connect.Aggregate.GroupType + (Parse_ParseFormat)(0), // 3: spark.connect.Parse.ParseFormat + (*Relation)(nil), // 4: spark.connect.Relation + (*Unknown)(nil), // 5: spark.connect.Unknown + (*RelationCommon)(nil), // 6: spark.connect.RelationCommon + (*SQL)(nil), // 7: spark.connect.SQL + (*Read)(nil), // 8: spark.connect.Read + (*Project)(nil), // 9: spark.connect.Project + (*Filter)(nil), // 10: spark.connect.Filter + (*Join)(nil), // 11: spark.connect.Join + (*SetOperation)(nil), // 12: spark.connect.SetOperation + (*Limit)(nil), // 13: spark.connect.Limit + (*Offset)(nil), // 14: spark.connect.Offset + (*Tail)(nil), // 15: spark.connect.Tail + (*Aggregate)(nil), // 16: spark.connect.Aggregate + (*Sort)(nil), // 17: spark.connect.Sort + (*Drop)(nil), // 18: spark.connect.Drop + (*Deduplicate)(nil), // 19: spark.connect.Deduplicate + (*LocalRelation)(nil), // 20: spark.connect.LocalRelation + (*CachedLocalRelation)(nil), // 21: spark.connect.CachedLocalRelation + (*Sample)(nil), // 22: spark.connect.Sample + (*Range)(nil), // 23: spark.connect.Range + (*SubqueryAlias)(nil), // 24: spark.connect.SubqueryAlias + (*Repartition)(nil), // 25: spark.connect.Repartition + (*ShowString)(nil), // 26: spark.connect.ShowString + (*HtmlString)(nil), // 27: spark.connect.HtmlString + (*StatSummary)(nil), // 28: spark.connect.StatSummary + (*StatDescribe)(nil), // 29: spark.connect.StatDescribe + (*StatCrosstab)(nil), // 30: spark.connect.StatCrosstab + (*StatCov)(nil), // 31: spark.connect.StatCov + (*StatCorr)(nil), // 32: spark.connect.StatCorr + (*StatApproxQuantile)(nil), // 33: spark.connect.StatApproxQuantile + (*StatFreqItems)(nil), // 34: spark.connect.StatFreqItems + (*StatSampleBy)(nil), // 35: spark.connect.StatSampleBy + (*NAFill)(nil), // 36: spark.connect.NAFill + (*NADrop)(nil), // 37: spark.connect.NADrop + (*NAReplace)(nil), // 38: spark.connect.NAReplace + (*ToDF)(nil), // 39: spark.connect.ToDF + (*WithColumnsRenamed)(nil), // 40: spark.connect.WithColumnsRenamed + (*WithColumns)(nil), // 41: spark.connect.WithColumns + (*WithWatermark)(nil), // 42: spark.connect.WithWatermark + (*Hint)(nil), // 43: spark.connect.Hint + (*Unpivot)(nil), // 44: spark.connect.Unpivot + (*ToSchema)(nil), // 45: spark.connect.ToSchema + (*RepartitionByExpression)(nil), // 46: spark.connect.RepartitionByExpression + (*MapPartitions)(nil), // 47: spark.connect.MapPartitions + (*GroupMap)(nil), // 48: spark.connect.GroupMap + (*CoGroupMap)(nil), // 49: spark.connect.CoGroupMap + (*ApplyInPandasWithState)(nil), // 50: spark.connect.ApplyInPandasWithState + (*CollectMetrics)(nil), // 51: spark.connect.CollectMetrics + (*Parse)(nil), // 52: spark.connect.Parse + nil, // 53: spark.connect.SQL.ArgsEntry + (*Read_NamedTable)(nil), // 54: spark.connect.Read.NamedTable + (*Read_DataSource)(nil), // 55: spark.connect.Read.DataSource + nil, // 56: spark.connect.Read.NamedTable.OptionsEntry + nil, // 57: spark.connect.Read.DataSource.OptionsEntry + (*Aggregate_Pivot)(nil), // 58: spark.connect.Aggregate.Pivot + (*StatSampleBy_Fraction)(nil), // 59: spark.connect.StatSampleBy.Fraction + (*NAReplace_Replacement)(nil), // 60: spark.connect.NAReplace.Replacement + nil, // 61: spark.connect.WithColumnsRenamed.RenameColumnsMapEntry + (*Unpivot_Values)(nil), // 62: spark.connect.Unpivot.Values + nil, // 63: spark.connect.Parse.OptionsEntry + (*Catalog)(nil), // 64: spark.connect.Catalog + (*anypb.Any)(nil), // 65: google.protobuf.Any + (*Expression)(nil), // 66: spark.connect.Expression + (*Expression_SortOrder)(nil), // 67: spark.connect.Expression.SortOrder + (*Expression_Literal)(nil), // 68: spark.connect.Expression.Literal + (*Expression_Alias)(nil), // 69: spark.connect.Expression.Alias + (*DataType)(nil), // 70: spark.connect.DataType + (*CommonInlineUserDefinedFunction)(nil), // 71: spark.connect.CommonInlineUserDefinedFunction +} +var file_spark_connect_relations_proto_depIdxs = []int32{ + 6, // 0: spark.connect.Relation.common:type_name -> spark.connect.RelationCommon + 8, // 1: spark.connect.Relation.read:type_name -> spark.connect.Read + 9, // 2: spark.connect.Relation.project:type_name -> spark.connect.Project + 10, // 3: spark.connect.Relation.filter:type_name -> spark.connect.Filter + 11, // 4: spark.connect.Relation.join:type_name -> spark.connect.Join + 12, // 5: spark.connect.Relation.set_op:type_name -> spark.connect.SetOperation + 17, // 6: spark.connect.Relation.sort:type_name -> spark.connect.Sort + 13, // 7: spark.connect.Relation.limit:type_name -> spark.connect.Limit + 16, // 8: spark.connect.Relation.aggregate:type_name -> spark.connect.Aggregate + 7, // 9: spark.connect.Relation.sql:type_name -> spark.connect.SQL + 20, // 10: spark.connect.Relation.local_relation:type_name -> spark.connect.LocalRelation + 22, // 11: spark.connect.Relation.sample:type_name -> spark.connect.Sample + 14, // 12: spark.connect.Relation.offset:type_name -> spark.connect.Offset + 19, // 13: spark.connect.Relation.deduplicate:type_name -> spark.connect.Deduplicate + 23, // 14: spark.connect.Relation.range:type_name -> spark.connect.Range + 24, // 15: spark.connect.Relation.subquery_alias:type_name -> spark.connect.SubqueryAlias + 25, // 16: spark.connect.Relation.repartition:type_name -> spark.connect.Repartition + 39, // 17: spark.connect.Relation.to_df:type_name -> spark.connect.ToDF + 40, // 18: spark.connect.Relation.with_columns_renamed:type_name -> spark.connect.WithColumnsRenamed + 26, // 19: spark.connect.Relation.show_string:type_name -> spark.connect.ShowString + 18, // 20: spark.connect.Relation.drop:type_name -> spark.connect.Drop + 15, // 21: spark.connect.Relation.tail:type_name -> spark.connect.Tail + 41, // 22: spark.connect.Relation.with_columns:type_name -> spark.connect.WithColumns + 43, // 23: spark.connect.Relation.hint:type_name -> spark.connect.Hint + 44, // 24: spark.connect.Relation.unpivot:type_name -> spark.connect.Unpivot + 45, // 25: spark.connect.Relation.to_schema:type_name -> spark.connect.ToSchema + 46, // 26: spark.connect.Relation.repartition_by_expression:type_name -> spark.connect.RepartitionByExpression + 47, // 27: spark.connect.Relation.map_partitions:type_name -> spark.connect.MapPartitions + 51, // 28: spark.connect.Relation.collect_metrics:type_name -> spark.connect.CollectMetrics + 52, // 29: spark.connect.Relation.parse:type_name -> spark.connect.Parse + 48, // 30: spark.connect.Relation.group_map:type_name -> spark.connect.GroupMap + 49, // 31: spark.connect.Relation.co_group_map:type_name -> spark.connect.CoGroupMap + 42, // 32: spark.connect.Relation.with_watermark:type_name -> spark.connect.WithWatermark + 50, // 33: spark.connect.Relation.apply_in_pandas_with_state:type_name -> spark.connect.ApplyInPandasWithState + 27, // 34: spark.connect.Relation.html_string:type_name -> spark.connect.HtmlString + 21, // 35: spark.connect.Relation.cached_local_relation:type_name -> spark.connect.CachedLocalRelation + 36, // 36: spark.connect.Relation.fill_na:type_name -> spark.connect.NAFill + 37, // 37: spark.connect.Relation.drop_na:type_name -> spark.connect.NADrop + 38, // 38: spark.connect.Relation.replace:type_name -> spark.connect.NAReplace + 28, // 39: spark.connect.Relation.summary:type_name -> spark.connect.StatSummary + 30, // 40: spark.connect.Relation.crosstab:type_name -> spark.connect.StatCrosstab + 29, // 41: spark.connect.Relation.describe:type_name -> spark.connect.StatDescribe + 31, // 42: spark.connect.Relation.cov:type_name -> spark.connect.StatCov + 32, // 43: spark.connect.Relation.corr:type_name -> spark.connect.StatCorr + 33, // 44: spark.connect.Relation.approx_quantile:type_name -> spark.connect.StatApproxQuantile + 34, // 45: spark.connect.Relation.freq_items:type_name -> spark.connect.StatFreqItems + 35, // 46: spark.connect.Relation.sample_by:type_name -> spark.connect.StatSampleBy + 64, // 47: spark.connect.Relation.catalog:type_name -> spark.connect.Catalog + 65, // 48: spark.connect.Relation.extension:type_name -> google.protobuf.Any + 5, // 49: spark.connect.Relation.unknown:type_name -> spark.connect.Unknown + 53, // 50: spark.connect.SQL.args:type_name -> spark.connect.SQL.ArgsEntry + 54, // 51: spark.connect.Read.named_table:type_name -> spark.connect.Read.NamedTable + 55, // 52: spark.connect.Read.data_source:type_name -> spark.connect.Read.DataSource + 4, // 53: spark.connect.Project.input:type_name -> spark.connect.Relation + 66, // 54: spark.connect.Project.expressions:type_name -> spark.connect.Expression + 4, // 55: spark.connect.Filter.input:type_name -> spark.connect.Relation + 66, // 56: spark.connect.Filter.condition:type_name -> spark.connect.Expression + 4, // 57: spark.connect.Join.left:type_name -> spark.connect.Relation + 4, // 58: spark.connect.Join.right:type_name -> spark.connect.Relation + 66, // 59: spark.connect.Join.join_condition:type_name -> spark.connect.Expression + 0, // 60: spark.connect.Join.join_type:type_name -> spark.connect.Join.JoinType + 4, // 61: spark.connect.SetOperation.left_input:type_name -> spark.connect.Relation + 4, // 62: spark.connect.SetOperation.right_input:type_name -> spark.connect.Relation + 1, // 63: spark.connect.SetOperation.set_op_type:type_name -> spark.connect.SetOperation.SetOpType + 4, // 64: spark.connect.Limit.input:type_name -> spark.connect.Relation + 4, // 65: spark.connect.Offset.input:type_name -> spark.connect.Relation + 4, // 66: spark.connect.Tail.input:type_name -> spark.connect.Relation + 4, // 67: spark.connect.Aggregate.input:type_name -> spark.connect.Relation + 2, // 68: spark.connect.Aggregate.group_type:type_name -> spark.connect.Aggregate.GroupType + 66, // 69: spark.connect.Aggregate.grouping_expressions:type_name -> spark.connect.Expression + 66, // 70: spark.connect.Aggregate.aggregate_expressions:type_name -> spark.connect.Expression + 58, // 71: spark.connect.Aggregate.pivot:type_name -> spark.connect.Aggregate.Pivot + 4, // 72: spark.connect.Sort.input:type_name -> spark.connect.Relation + 67, // 73: spark.connect.Sort.order:type_name -> spark.connect.Expression.SortOrder + 4, // 74: spark.connect.Drop.input:type_name -> spark.connect.Relation + 66, // 75: spark.connect.Drop.columns:type_name -> spark.connect.Expression + 4, // 76: spark.connect.Deduplicate.input:type_name -> spark.connect.Relation + 4, // 77: spark.connect.Sample.input:type_name -> spark.connect.Relation + 4, // 78: spark.connect.SubqueryAlias.input:type_name -> spark.connect.Relation + 4, // 79: spark.connect.Repartition.input:type_name -> spark.connect.Relation + 4, // 80: spark.connect.ShowString.input:type_name -> spark.connect.Relation + 4, // 81: spark.connect.HtmlString.input:type_name -> spark.connect.Relation + 4, // 82: spark.connect.StatSummary.input:type_name -> spark.connect.Relation + 4, // 83: spark.connect.StatDescribe.input:type_name -> spark.connect.Relation + 4, // 84: spark.connect.StatCrosstab.input:type_name -> spark.connect.Relation + 4, // 85: spark.connect.StatCov.input:type_name -> spark.connect.Relation + 4, // 86: spark.connect.StatCorr.input:type_name -> spark.connect.Relation + 4, // 87: spark.connect.StatApproxQuantile.input:type_name -> spark.connect.Relation + 4, // 88: spark.connect.StatFreqItems.input:type_name -> spark.connect.Relation + 4, // 89: spark.connect.StatSampleBy.input:type_name -> spark.connect.Relation + 66, // 90: spark.connect.StatSampleBy.col:type_name -> spark.connect.Expression + 59, // 91: spark.connect.StatSampleBy.fractions:type_name -> spark.connect.StatSampleBy.Fraction + 4, // 92: spark.connect.NAFill.input:type_name -> spark.connect.Relation + 68, // 93: spark.connect.NAFill.values:type_name -> spark.connect.Expression.Literal + 4, // 94: spark.connect.NADrop.input:type_name -> spark.connect.Relation + 4, // 95: spark.connect.NAReplace.input:type_name -> spark.connect.Relation + 60, // 96: spark.connect.NAReplace.replacements:type_name -> spark.connect.NAReplace.Replacement + 4, // 97: spark.connect.ToDF.input:type_name -> spark.connect.Relation + 4, // 98: spark.connect.WithColumnsRenamed.input:type_name -> spark.connect.Relation + 61, // 99: spark.connect.WithColumnsRenamed.rename_columns_map:type_name -> spark.connect.WithColumnsRenamed.RenameColumnsMapEntry + 4, // 100: spark.connect.WithColumns.input:type_name -> spark.connect.Relation + 69, // 101: spark.connect.WithColumns.aliases:type_name -> spark.connect.Expression.Alias + 4, // 102: spark.connect.WithWatermark.input:type_name -> spark.connect.Relation + 4, // 103: spark.connect.Hint.input:type_name -> spark.connect.Relation + 66, // 104: spark.connect.Hint.parameters:type_name -> spark.connect.Expression + 4, // 105: spark.connect.Unpivot.input:type_name -> spark.connect.Relation + 66, // 106: spark.connect.Unpivot.ids:type_name -> spark.connect.Expression + 62, // 107: spark.connect.Unpivot.values:type_name -> spark.connect.Unpivot.Values + 4, // 108: spark.connect.ToSchema.input:type_name -> spark.connect.Relation + 70, // 109: spark.connect.ToSchema.schema:type_name -> spark.connect.DataType + 4, // 110: spark.connect.RepartitionByExpression.input:type_name -> spark.connect.Relation + 66, // 111: spark.connect.RepartitionByExpression.partition_exprs:type_name -> spark.connect.Expression + 4, // 112: spark.connect.MapPartitions.input:type_name -> spark.connect.Relation + 71, // 113: spark.connect.MapPartitions.func:type_name -> spark.connect.CommonInlineUserDefinedFunction + 4, // 114: spark.connect.GroupMap.input:type_name -> spark.connect.Relation + 66, // 115: spark.connect.GroupMap.grouping_expressions:type_name -> spark.connect.Expression + 71, // 116: spark.connect.GroupMap.func:type_name -> spark.connect.CommonInlineUserDefinedFunction + 66, // 117: spark.connect.GroupMap.sorting_expressions:type_name -> spark.connect.Expression + 4, // 118: spark.connect.CoGroupMap.input:type_name -> spark.connect.Relation + 66, // 119: spark.connect.CoGroupMap.input_grouping_expressions:type_name -> spark.connect.Expression + 4, // 120: spark.connect.CoGroupMap.other:type_name -> spark.connect.Relation + 66, // 121: spark.connect.CoGroupMap.other_grouping_expressions:type_name -> spark.connect.Expression + 71, // 122: spark.connect.CoGroupMap.func:type_name -> spark.connect.CommonInlineUserDefinedFunction + 66, // 123: spark.connect.CoGroupMap.input_sorting_expressions:type_name -> spark.connect.Expression + 66, // 124: spark.connect.CoGroupMap.other_sorting_expressions:type_name -> spark.connect.Expression + 4, // 125: spark.connect.ApplyInPandasWithState.input:type_name -> spark.connect.Relation + 66, // 126: spark.connect.ApplyInPandasWithState.grouping_expressions:type_name -> spark.connect.Expression + 71, // 127: spark.connect.ApplyInPandasWithState.func:type_name -> spark.connect.CommonInlineUserDefinedFunction + 4, // 128: spark.connect.CollectMetrics.input:type_name -> spark.connect.Relation + 66, // 129: spark.connect.CollectMetrics.metrics:type_name -> spark.connect.Expression + 4, // 130: spark.connect.Parse.input:type_name -> spark.connect.Relation + 3, // 131: spark.connect.Parse.format:type_name -> spark.connect.Parse.ParseFormat + 70, // 132: spark.connect.Parse.schema:type_name -> spark.connect.DataType + 63, // 133: spark.connect.Parse.options:type_name -> spark.connect.Parse.OptionsEntry + 68, // 134: spark.connect.SQL.ArgsEntry.value:type_name -> spark.connect.Expression.Literal + 56, // 135: spark.connect.Read.NamedTable.options:type_name -> spark.connect.Read.NamedTable.OptionsEntry + 57, // 136: spark.connect.Read.DataSource.options:type_name -> spark.connect.Read.DataSource.OptionsEntry + 66, // 137: spark.connect.Aggregate.Pivot.col:type_name -> spark.connect.Expression + 68, // 138: spark.connect.Aggregate.Pivot.values:type_name -> spark.connect.Expression.Literal + 68, // 139: spark.connect.StatSampleBy.Fraction.stratum:type_name -> spark.connect.Expression.Literal + 68, // 140: spark.connect.NAReplace.Replacement.old_value:type_name -> spark.connect.Expression.Literal + 68, // 141: spark.connect.NAReplace.Replacement.new_value:type_name -> spark.connect.Expression.Literal + 66, // 142: spark.connect.Unpivot.Values.values:type_name -> spark.connect.Expression + 143, // [143:143] is the sub-list for method output_type + 143, // [143:143] is the sub-list for method input_type + 143, // [143:143] is the sub-list for extension type_name + 143, // [143:143] is the sub-list for extension extendee + 0, // [0:143] is the sub-list for field type_name +} + +func init() { file_spark_connect_relations_proto_init() } +func file_spark_connect_relations_proto_init() { + if File_spark_connect_relations_proto != nil { + return + } + file_spark_connect_expressions_proto_init() + file_spark_connect_types_proto_init() + file_spark_connect_catalog_proto_init() + if !protoimpl.UnsafeEnabled { + file_spark_connect_relations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Relation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Unknown); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RelationCommon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SQL); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Read); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Filter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Join); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetOperation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Limit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Offset); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Aggregate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Drop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Deduplicate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LocalRelation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CachedLocalRelation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sample); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Range); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubqueryAlias); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Repartition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HtmlString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatSummary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatDescribe); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatCrosstab); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatCov); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatCorr); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatApproxQuantile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatFreqItems); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatSampleBy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NAFill); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NADrop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NAReplace); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToDF); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithColumnsRenamed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithColumns); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithWatermark); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Hint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Unpivot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepartitionByExpression); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MapPartitions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CoGroupMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyInPandasWithState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CollectMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Read_NamedTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Read_DataSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Aggregate_Pivot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatSampleBy_Fraction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NAReplace_Replacement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_relations_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Unpivot_Values); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_relations_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Relation_Read)(nil), + (*Relation_Project)(nil), + (*Relation_Filter)(nil), + (*Relation_Join)(nil), + (*Relation_SetOp)(nil), + (*Relation_Sort)(nil), + (*Relation_Limit)(nil), + (*Relation_Aggregate)(nil), + (*Relation_Sql)(nil), + (*Relation_LocalRelation)(nil), + (*Relation_Sample)(nil), + (*Relation_Offset)(nil), + (*Relation_Deduplicate)(nil), + (*Relation_Range)(nil), + (*Relation_SubqueryAlias)(nil), + (*Relation_Repartition)(nil), + (*Relation_ToDf)(nil), + (*Relation_WithColumnsRenamed)(nil), + (*Relation_ShowString)(nil), + (*Relation_Drop)(nil), + (*Relation_Tail)(nil), + (*Relation_WithColumns)(nil), + (*Relation_Hint)(nil), + (*Relation_Unpivot)(nil), + (*Relation_ToSchema)(nil), + (*Relation_RepartitionByExpression)(nil), + (*Relation_MapPartitions)(nil), + (*Relation_CollectMetrics)(nil), + (*Relation_Parse)(nil), + (*Relation_GroupMap)(nil), + (*Relation_CoGroupMap)(nil), + (*Relation_WithWatermark)(nil), + (*Relation_ApplyInPandasWithState)(nil), + (*Relation_HtmlString)(nil), + (*Relation_CachedLocalRelation)(nil), + (*Relation_FillNa)(nil), + (*Relation_DropNa)(nil), + (*Relation_Replace)(nil), + (*Relation_Summary)(nil), + (*Relation_Crosstab)(nil), + (*Relation_Describe)(nil), + (*Relation_Cov)(nil), + (*Relation_Corr)(nil), + (*Relation_ApproxQuantile)(nil), + (*Relation_FreqItems)(nil), + (*Relation_SampleBy)(nil), + (*Relation_Catalog)(nil), + (*Relation_Extension)(nil), + (*Relation_Unknown)(nil), + } + file_spark_connect_relations_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*Read_NamedTable_)(nil), + (*Read_DataSource_)(nil), + } + file_spark_connect_relations_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[40].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[42].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[43].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[48].OneofWrappers = []interface{}{} + file_spark_connect_relations_proto_msgTypes[51].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_relations_proto_rawDesc, + NumEnums: 4, + NumMessages: 60, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_relations_proto_goTypes, + DependencyIndexes: file_spark_connect_relations_proto_depIdxs, + EnumInfos: file_spark_connect_relations_proto_enumTypes, + MessageInfos: file_spark_connect_relations_proto_msgTypes, + }.Build() + File_spark_connect_relations_proto = out.File + file_spark_connect_relations_proto_rawDesc = nil + file_spark_connect_relations_proto_goTypes = nil + file_spark_connect_relations_proto_depIdxs = nil +} diff --git a/internal/generated/types.pb.go b/internal/generated/types.pb.go new file mode 100644 index 0000000..da195d5 --- /dev/null +++ b/internal/generated/types.pb.go @@ -0,0 +1,2502 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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.30.0 +// protoc (unknown) +// source: spark/connect/types.proto + +package generated + +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) +) + +// This message describes the logical [[DataType]] of something. It does not carry the value +// itself but only describes it. +type DataType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Kind: + // + // *DataType_Null + // *DataType_Binary_ + // *DataType_Boolean_ + // *DataType_Byte_ + // *DataType_Short_ + // *DataType_Integer_ + // *DataType_Long_ + // *DataType_Float_ + // *DataType_Double_ + // *DataType_Decimal_ + // *DataType_String_ + // *DataType_Char_ + // *DataType_VarChar_ + // *DataType_Date_ + // *DataType_Timestamp_ + // *DataType_TimestampNtz + // *DataType_CalendarInterval_ + // *DataType_YearMonthInterval_ + // *DataType_DayTimeInterval_ + // *DataType_Array_ + // *DataType_Struct_ + // *DataType_Map_ + // *DataType_Udt + // *DataType_Unparsed_ + Kind isDataType_Kind `protobuf_oneof:"kind"` +} + +func (x *DataType) Reset() { + *x = DataType{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType) ProtoMessage() {} + +func (x *DataType) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType.ProtoReflect.Descriptor instead. +func (*DataType) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0} +} + +func (m *DataType) GetKind() isDataType_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (x *DataType) GetNull() *DataType_NULL { + if x, ok := x.GetKind().(*DataType_Null); ok { + return x.Null + } + return nil +} + +func (x *DataType) GetBinary() *DataType_Binary { + if x, ok := x.GetKind().(*DataType_Binary_); ok { + return x.Binary + } + return nil +} + +func (x *DataType) GetBoolean() *DataType_Boolean { + if x, ok := x.GetKind().(*DataType_Boolean_); ok { + return x.Boolean + } + return nil +} + +func (x *DataType) GetByte() *DataType_Byte { + if x, ok := x.GetKind().(*DataType_Byte_); ok { + return x.Byte + } + return nil +} + +func (x *DataType) GetShort() *DataType_Short { + if x, ok := x.GetKind().(*DataType_Short_); ok { + return x.Short + } + return nil +} + +func (x *DataType) GetInteger() *DataType_Integer { + if x, ok := x.GetKind().(*DataType_Integer_); ok { + return x.Integer + } + return nil +} + +func (x *DataType) GetLong() *DataType_Long { + if x, ok := x.GetKind().(*DataType_Long_); ok { + return x.Long + } + return nil +} + +func (x *DataType) GetFloat() *DataType_Float { + if x, ok := x.GetKind().(*DataType_Float_); ok { + return x.Float + } + return nil +} + +func (x *DataType) GetDouble() *DataType_Double { + if x, ok := x.GetKind().(*DataType_Double_); ok { + return x.Double + } + return nil +} + +func (x *DataType) GetDecimal() *DataType_Decimal { + if x, ok := x.GetKind().(*DataType_Decimal_); ok { + return x.Decimal + } + return nil +} + +func (x *DataType) GetString_() *DataType_String { + if x, ok := x.GetKind().(*DataType_String_); ok { + return x.String_ + } + return nil +} + +func (x *DataType) GetChar() *DataType_Char { + if x, ok := x.GetKind().(*DataType_Char_); ok { + return x.Char + } + return nil +} + +func (x *DataType) GetVarChar() *DataType_VarChar { + if x, ok := x.GetKind().(*DataType_VarChar_); ok { + return x.VarChar + } + return nil +} + +func (x *DataType) GetDate() *DataType_Date { + if x, ok := x.GetKind().(*DataType_Date_); ok { + return x.Date + } + return nil +} + +func (x *DataType) GetTimestamp() *DataType_Timestamp { + if x, ok := x.GetKind().(*DataType_Timestamp_); ok { + return x.Timestamp + } + return nil +} + +func (x *DataType) GetTimestampNtz() *DataType_TimestampNTZ { + if x, ok := x.GetKind().(*DataType_TimestampNtz); ok { + return x.TimestampNtz + } + return nil +} + +func (x *DataType) GetCalendarInterval() *DataType_CalendarInterval { + if x, ok := x.GetKind().(*DataType_CalendarInterval_); ok { + return x.CalendarInterval + } + return nil +} + +func (x *DataType) GetYearMonthInterval() *DataType_YearMonthInterval { + if x, ok := x.GetKind().(*DataType_YearMonthInterval_); ok { + return x.YearMonthInterval + } + return nil +} + +func (x *DataType) GetDayTimeInterval() *DataType_DayTimeInterval { + if x, ok := x.GetKind().(*DataType_DayTimeInterval_); ok { + return x.DayTimeInterval + } + return nil +} + +func (x *DataType) GetArray() *DataType_Array { + if x, ok := x.GetKind().(*DataType_Array_); ok { + return x.Array + } + return nil +} + +func (x *DataType) GetStruct() *DataType_Struct { + if x, ok := x.GetKind().(*DataType_Struct_); ok { + return x.Struct + } + return nil +} + +func (x *DataType) GetMap() *DataType_Map { + if x, ok := x.GetKind().(*DataType_Map_); ok { + return x.Map + } + return nil +} + +func (x *DataType) GetUdt() *DataType_UDT { + if x, ok := x.GetKind().(*DataType_Udt); ok { + return x.Udt + } + return nil +} + +func (x *DataType) GetUnparsed() *DataType_Unparsed { + if x, ok := x.GetKind().(*DataType_Unparsed_); ok { + return x.Unparsed + } + return nil +} + +type isDataType_Kind interface { + isDataType_Kind() +} + +type DataType_Null struct { + Null *DataType_NULL `protobuf:"bytes,1,opt,name=null,proto3,oneof"` +} + +type DataType_Binary_ struct { + Binary *DataType_Binary `protobuf:"bytes,2,opt,name=binary,proto3,oneof"` +} + +type DataType_Boolean_ struct { + Boolean *DataType_Boolean `protobuf:"bytes,3,opt,name=boolean,proto3,oneof"` +} + +type DataType_Byte_ struct { + // Numeric types + Byte *DataType_Byte `protobuf:"bytes,4,opt,name=byte,proto3,oneof"` +} + +type DataType_Short_ struct { + Short *DataType_Short `protobuf:"bytes,5,opt,name=short,proto3,oneof"` +} + +type DataType_Integer_ struct { + Integer *DataType_Integer `protobuf:"bytes,6,opt,name=integer,proto3,oneof"` +} + +type DataType_Long_ struct { + Long *DataType_Long `protobuf:"bytes,7,opt,name=long,proto3,oneof"` +} + +type DataType_Float_ struct { + Float *DataType_Float `protobuf:"bytes,8,opt,name=float,proto3,oneof"` +} + +type DataType_Double_ struct { + Double *DataType_Double `protobuf:"bytes,9,opt,name=double,proto3,oneof"` +} + +type DataType_Decimal_ struct { + Decimal *DataType_Decimal `protobuf:"bytes,10,opt,name=decimal,proto3,oneof"` +} + +type DataType_String_ struct { + // String types + String_ *DataType_String `protobuf:"bytes,11,opt,name=string,proto3,oneof"` +} + +type DataType_Char_ struct { + Char *DataType_Char `protobuf:"bytes,12,opt,name=char,proto3,oneof"` +} + +type DataType_VarChar_ struct { + VarChar *DataType_VarChar `protobuf:"bytes,13,opt,name=var_char,json=varChar,proto3,oneof"` +} + +type DataType_Date_ struct { + // Datatime types + Date *DataType_Date `protobuf:"bytes,14,opt,name=date,proto3,oneof"` +} + +type DataType_Timestamp_ struct { + Timestamp *DataType_Timestamp `protobuf:"bytes,15,opt,name=timestamp,proto3,oneof"` +} + +type DataType_TimestampNtz struct { + TimestampNtz *DataType_TimestampNTZ `protobuf:"bytes,16,opt,name=timestamp_ntz,json=timestampNtz,proto3,oneof"` +} + +type DataType_CalendarInterval_ struct { + // Interval types + CalendarInterval *DataType_CalendarInterval `protobuf:"bytes,17,opt,name=calendar_interval,json=calendarInterval,proto3,oneof"` +} + +type DataType_YearMonthInterval_ struct { + YearMonthInterval *DataType_YearMonthInterval `protobuf:"bytes,18,opt,name=year_month_interval,json=yearMonthInterval,proto3,oneof"` +} + +type DataType_DayTimeInterval_ struct { + DayTimeInterval *DataType_DayTimeInterval `protobuf:"bytes,19,opt,name=day_time_interval,json=dayTimeInterval,proto3,oneof"` +} + +type DataType_Array_ struct { + // Complex types + Array *DataType_Array `protobuf:"bytes,20,opt,name=array,proto3,oneof"` +} + +type DataType_Struct_ struct { + Struct *DataType_Struct `protobuf:"bytes,21,opt,name=struct,proto3,oneof"` +} + +type DataType_Map_ struct { + Map *DataType_Map `protobuf:"bytes,22,opt,name=map,proto3,oneof"` +} + +type DataType_Udt struct { + // UserDefinedType + Udt *DataType_UDT `protobuf:"bytes,23,opt,name=udt,proto3,oneof"` +} + +type DataType_Unparsed_ struct { + // UnparsedDataType + Unparsed *DataType_Unparsed `protobuf:"bytes,24,opt,name=unparsed,proto3,oneof"` +} + +func (*DataType_Null) isDataType_Kind() {} + +func (*DataType_Binary_) isDataType_Kind() {} + +func (*DataType_Boolean_) isDataType_Kind() {} + +func (*DataType_Byte_) isDataType_Kind() {} + +func (*DataType_Short_) isDataType_Kind() {} + +func (*DataType_Integer_) isDataType_Kind() {} + +func (*DataType_Long_) isDataType_Kind() {} + +func (*DataType_Float_) isDataType_Kind() {} + +func (*DataType_Double_) isDataType_Kind() {} + +func (*DataType_Decimal_) isDataType_Kind() {} + +func (*DataType_String_) isDataType_Kind() {} + +func (*DataType_Char_) isDataType_Kind() {} + +func (*DataType_VarChar_) isDataType_Kind() {} + +func (*DataType_Date_) isDataType_Kind() {} + +func (*DataType_Timestamp_) isDataType_Kind() {} + +func (*DataType_TimestampNtz) isDataType_Kind() {} + +func (*DataType_CalendarInterval_) isDataType_Kind() {} + +func (*DataType_YearMonthInterval_) isDataType_Kind() {} + +func (*DataType_DayTimeInterval_) isDataType_Kind() {} + +func (*DataType_Array_) isDataType_Kind() {} + +func (*DataType_Struct_) isDataType_Kind() {} + +func (*DataType_Map_) isDataType_Kind() {} + +func (*DataType_Udt) isDataType_Kind() {} + +func (*DataType_Unparsed_) isDataType_Kind() {} + +type DataType_Boolean struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Boolean) Reset() { + *x = DataType_Boolean{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Boolean) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Boolean) ProtoMessage() {} + +func (x *DataType_Boolean) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Boolean.ProtoReflect.Descriptor instead. +func (*DataType_Boolean) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DataType_Boolean) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Byte struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Byte) Reset() { + *x = DataType_Byte{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Byte) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Byte) ProtoMessage() {} + +func (x *DataType_Byte) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Byte.ProtoReflect.Descriptor instead. +func (*DataType_Byte) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *DataType_Byte) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Short struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Short) Reset() { + *x = DataType_Short{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Short) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Short) ProtoMessage() {} + +func (x *DataType_Short) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Short.ProtoReflect.Descriptor instead. +func (*DataType_Short) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *DataType_Short) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Integer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Integer) Reset() { + *x = DataType_Integer{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Integer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Integer) ProtoMessage() {} + +func (x *DataType_Integer) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Integer.ProtoReflect.Descriptor instead. +func (*DataType_Integer) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *DataType_Integer) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Long struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Long) Reset() { + *x = DataType_Long{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Long) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Long) ProtoMessage() {} + +func (x *DataType_Long) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Long.ProtoReflect.Descriptor instead. +func (*DataType_Long) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *DataType_Long) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Float struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Float) Reset() { + *x = DataType_Float{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Float) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Float) ProtoMessage() {} + +func (x *DataType_Float) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Float.ProtoReflect.Descriptor instead. +func (*DataType_Float) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *DataType_Float) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Double struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Double) Reset() { + *x = DataType_Double{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Double) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Double) ProtoMessage() {} + +func (x *DataType_Double) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Double.ProtoReflect.Descriptor instead. +func (*DataType_Double) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 6} +} + +func (x *DataType_Double) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_String struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_String) Reset() { + *x = DataType_String{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_String) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_String) ProtoMessage() {} + +func (x *DataType_String) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_String.ProtoReflect.Descriptor instead. +func (*DataType_String) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 7} +} + +func (x *DataType_String) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Binary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Binary) Reset() { + *x = DataType_Binary{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Binary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Binary) ProtoMessage() {} + +func (x *DataType_Binary) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Binary.ProtoReflect.Descriptor instead. +func (*DataType_Binary) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 8} +} + +func (x *DataType_Binary) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_NULL struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_NULL) Reset() { + *x = DataType_NULL{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_NULL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_NULL) ProtoMessage() {} + +func (x *DataType_NULL) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_NULL.ProtoReflect.Descriptor instead. +func (*DataType_NULL) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 9} +} + +func (x *DataType_NULL) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Timestamp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Timestamp) Reset() { + *x = DataType_Timestamp{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Timestamp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Timestamp) ProtoMessage() {} + +func (x *DataType_Timestamp) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Timestamp.ProtoReflect.Descriptor instead. +func (*DataType_Timestamp) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 10} +} + +func (x *DataType_Timestamp) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Date struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Date) Reset() { + *x = DataType_Date{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Date) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Date) ProtoMessage() {} + +func (x *DataType_Date) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Date.ProtoReflect.Descriptor instead. +func (*DataType_Date) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 11} +} + +func (x *DataType_Date) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_TimestampNTZ struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_TimestampNTZ) Reset() { + *x = DataType_TimestampNTZ{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_TimestampNTZ) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_TimestampNTZ) ProtoMessage() {} + +func (x *DataType_TimestampNTZ) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_TimestampNTZ.ProtoReflect.Descriptor instead. +func (*DataType_TimestampNTZ) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 12} +} + +func (x *DataType_TimestampNTZ) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_CalendarInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeVariationReference uint32 `protobuf:"varint,1,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_CalendarInterval) Reset() { + *x = DataType_CalendarInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_CalendarInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_CalendarInterval) ProtoMessage() {} + +func (x *DataType_CalendarInterval) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_CalendarInterval.ProtoReflect.Descriptor instead. +func (*DataType_CalendarInterval) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 13} +} + +func (x *DataType_CalendarInterval) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_YearMonthInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartField *int32 `protobuf:"varint,1,opt,name=start_field,json=startField,proto3,oneof" json:"start_field,omitempty"` + EndField *int32 `protobuf:"varint,2,opt,name=end_field,json=endField,proto3,oneof" json:"end_field,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,3,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_YearMonthInterval) Reset() { + *x = DataType_YearMonthInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_YearMonthInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_YearMonthInterval) ProtoMessage() {} + +func (x *DataType_YearMonthInterval) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_YearMonthInterval.ProtoReflect.Descriptor instead. +func (*DataType_YearMonthInterval) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 14} +} + +func (x *DataType_YearMonthInterval) GetStartField() int32 { + if x != nil && x.StartField != nil { + return *x.StartField + } + return 0 +} + +func (x *DataType_YearMonthInterval) GetEndField() int32 { + if x != nil && x.EndField != nil { + return *x.EndField + } + return 0 +} + +func (x *DataType_YearMonthInterval) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_DayTimeInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartField *int32 `protobuf:"varint,1,opt,name=start_field,json=startField,proto3,oneof" json:"start_field,omitempty"` + EndField *int32 `protobuf:"varint,2,opt,name=end_field,json=endField,proto3,oneof" json:"end_field,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,3,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_DayTimeInterval) Reset() { + *x = DataType_DayTimeInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_DayTimeInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_DayTimeInterval) ProtoMessage() {} + +func (x *DataType_DayTimeInterval) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_DayTimeInterval.ProtoReflect.Descriptor instead. +func (*DataType_DayTimeInterval) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 15} +} + +func (x *DataType_DayTimeInterval) GetStartField() int32 { + if x != nil && x.StartField != nil { + return *x.StartField + } + return 0 +} + +func (x *DataType_DayTimeInterval) GetEndField() int32 { + if x != nil && x.EndField != nil { + return *x.EndField + } + return 0 +} + +func (x *DataType_DayTimeInterval) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +// Start compound types. +type DataType_Char struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,2,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Char) Reset() { + *x = DataType_Char{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Char) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Char) ProtoMessage() {} + +func (x *DataType_Char) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Char.ProtoReflect.Descriptor instead. +func (*DataType_Char) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 16} +} + +func (x *DataType_Char) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *DataType_Char) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_VarChar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,2,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_VarChar) Reset() { + *x = DataType_VarChar{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_VarChar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_VarChar) ProtoMessage() {} + +func (x *DataType_VarChar) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_VarChar.ProtoReflect.Descriptor instead. +func (*DataType_VarChar) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 17} +} + +func (x *DataType_VarChar) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *DataType_VarChar) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Decimal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Scale *int32 `protobuf:"varint,1,opt,name=scale,proto3,oneof" json:"scale,omitempty"` + Precision *int32 `protobuf:"varint,2,opt,name=precision,proto3,oneof" json:"precision,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,3,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Decimal) Reset() { + *x = DataType_Decimal{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Decimal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Decimal) ProtoMessage() {} + +func (x *DataType_Decimal) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Decimal.ProtoReflect.Descriptor instead. +func (*DataType_Decimal) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 18} +} + +func (x *DataType_Decimal) GetScale() int32 { + if x != nil && x.Scale != nil { + return *x.Scale + } + return 0 +} + +func (x *DataType_Decimal) GetPrecision() int32 { + if x != nil && x.Precision != nil { + return *x.Precision + } + return 0 +} + +func (x *DataType_Decimal) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_StructField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + DataType *DataType `protobuf:"bytes,2,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"` + Nullable bool `protobuf:"varint,3,opt,name=nullable,proto3" json:"nullable,omitempty"` + Metadata *string `protobuf:"bytes,4,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` +} + +func (x *DataType_StructField) Reset() { + *x = DataType_StructField{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_StructField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_StructField) ProtoMessage() {} + +func (x *DataType_StructField) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_StructField.ProtoReflect.Descriptor instead. +func (*DataType_StructField) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 19} +} + +func (x *DataType_StructField) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataType_StructField) GetDataType() *DataType { + if x != nil { + return x.DataType + } + return nil +} + +func (x *DataType_StructField) GetNullable() bool { + if x != nil { + return x.Nullable + } + return false +} + +func (x *DataType_StructField) GetMetadata() string { + if x != nil && x.Metadata != nil { + return *x.Metadata + } + return "" +} + +type DataType_Struct struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fields []*DataType_StructField `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,2,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Struct) Reset() { + *x = DataType_Struct{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Struct) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Struct) ProtoMessage() {} + +func (x *DataType_Struct) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_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 DataType_Struct.ProtoReflect.Descriptor instead. +func (*DataType_Struct) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 20} +} + +func (x *DataType_Struct) GetFields() []*DataType_StructField { + if x != nil { + return x.Fields + } + return nil +} + +func (x *DataType_Struct) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Array struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ElementType *DataType `protobuf:"bytes,1,opt,name=element_type,json=elementType,proto3" json:"element_type,omitempty"` + ContainsNull bool `protobuf:"varint,2,opt,name=contains_null,json=containsNull,proto3" json:"contains_null,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,3,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Array) Reset() { + *x = DataType_Array{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Array) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Array) ProtoMessage() {} + +func (x *DataType_Array) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_proto_msgTypes[22] + 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 DataType_Array.ProtoReflect.Descriptor instead. +func (*DataType_Array) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 21} +} + +func (x *DataType_Array) GetElementType() *DataType { + if x != nil { + return x.ElementType + } + return nil +} + +func (x *DataType_Array) GetContainsNull() bool { + if x != nil { + return x.ContainsNull + } + return false +} + +func (x *DataType_Array) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_Map struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyType *DataType `protobuf:"bytes,1,opt,name=key_type,json=keyType,proto3" json:"key_type,omitempty"` + ValueType *DataType `protobuf:"bytes,2,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"` + ValueContainsNull bool `protobuf:"varint,3,opt,name=value_contains_null,json=valueContainsNull,proto3" json:"value_contains_null,omitempty"` + TypeVariationReference uint32 `protobuf:"varint,4,opt,name=type_variation_reference,json=typeVariationReference,proto3" json:"type_variation_reference,omitempty"` +} + +func (x *DataType_Map) Reset() { + *x = DataType_Map{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Map) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Map) ProtoMessage() {} + +func (x *DataType_Map) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_proto_msgTypes[23] + 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 DataType_Map.ProtoReflect.Descriptor instead. +func (*DataType_Map) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 22} +} + +func (x *DataType_Map) GetKeyType() *DataType { + if x != nil { + return x.KeyType + } + return nil +} + +func (x *DataType_Map) GetValueType() *DataType { + if x != nil { + return x.ValueType + } + return nil +} + +func (x *DataType_Map) GetValueContainsNull() bool { + if x != nil { + return x.ValueContainsNull + } + return false +} + +func (x *DataType_Map) GetTypeVariationReference() uint32 { + if x != nil { + return x.TypeVariationReference + } + return 0 +} + +type DataType_UDT struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + JvmClass *string `protobuf:"bytes,2,opt,name=jvm_class,json=jvmClass,proto3,oneof" json:"jvm_class,omitempty"` + PythonClass *string `protobuf:"bytes,3,opt,name=python_class,json=pythonClass,proto3,oneof" json:"python_class,omitempty"` + SerializedPythonClass *string `protobuf:"bytes,4,opt,name=serialized_python_class,json=serializedPythonClass,proto3,oneof" json:"serialized_python_class,omitempty"` + SqlType *DataType `protobuf:"bytes,5,opt,name=sql_type,json=sqlType,proto3" json:"sql_type,omitempty"` +} + +func (x *DataType_UDT) Reset() { + *x = DataType_UDT{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_UDT) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_UDT) ProtoMessage() {} + +func (x *DataType_UDT) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_proto_msgTypes[24] + 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 DataType_UDT.ProtoReflect.Descriptor instead. +func (*DataType_UDT) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 23} +} + +func (x *DataType_UDT) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *DataType_UDT) GetJvmClass() string { + if x != nil && x.JvmClass != nil { + return *x.JvmClass + } + return "" +} + +func (x *DataType_UDT) GetPythonClass() string { + if x != nil && x.PythonClass != nil { + return *x.PythonClass + } + return "" +} + +func (x *DataType_UDT) GetSerializedPythonClass() string { + if x != nil && x.SerializedPythonClass != nil { + return *x.SerializedPythonClass + } + return "" +} + +func (x *DataType_UDT) GetSqlType() *DataType { + if x != nil { + return x.SqlType + } + return nil +} + +type DataType_Unparsed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // (Required) The unparsed data type string + DataTypeString string `protobuf:"bytes,1,opt,name=data_type_string,json=dataTypeString,proto3" json:"data_type_string,omitempty"` +} + +func (x *DataType_Unparsed) Reset() { + *x = DataType_Unparsed{} + if protoimpl.UnsafeEnabled { + mi := &file_spark_connect_types_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataType_Unparsed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataType_Unparsed) ProtoMessage() {} + +func (x *DataType_Unparsed) ProtoReflect() protoreflect.Message { + mi := &file_spark_connect_types_proto_msgTypes[25] + 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 DataType_Unparsed.ProtoReflect.Descriptor instead. +func (*DataType_Unparsed) Descriptor() ([]byte, []int) { + return file_spark_connect_types_proto_rawDescGZIP(), []int{0, 24} +} + +func (x *DataType_Unparsed) GetDataTypeString() string { + if x != nil { + return x.DataTypeString + } + return "" +} + +var File_spark_connect_types_proto protoreflect.FileDescriptor + +var file_spark_connect_types_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xc7, 0x20, 0x0a, 0x08, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4e, + 0x55, 0x4c, 0x4c, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x06, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, + 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x62, 0x79, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, + 0x68, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x3b, 0x0a, + 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x6f, + 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x12, 0x35, + 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, + 0x3b, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x68, 0x61, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x61, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x68, 0x61, 0x72, 0x12, 0x3c, 0x0a, 0x08, 0x76, 0x61, + 0x72, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x48, 0x00, 0x52, + 0x07, 0x76, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x4b, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x74, 0x7a, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x54, 0x5a, 0x48, 0x00, 0x52, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x74, 0x7a, 0x12, 0x57, 0x0a, 0x11, + 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x48, 0x00, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x5b, 0x0a, 0x13, 0x79, 0x65, 0x61, 0x72, 0x5f, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x59, 0x65, 0x61, 0x72, + 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, + 0x11, 0x79, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x11, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x03, 0x6d, 0x61, + 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2f, 0x0a, 0x03, 0x75, + 0x64, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x55, 0x44, 0x54, 0x48, 0x00, 0x52, 0x03, 0x75, 0x64, 0x74, 0x12, 0x3e, 0x0a, 0x08, + 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x55, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x08, 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x1a, 0x43, 0x0a, 0x07, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x1a, 0x40, 0x0a, 0x04, 0x42, 0x79, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, + 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x1a, 0x41, 0x0a, 0x05, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x38, 0x0a, 0x18, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, + 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x43, 0x0a, 0x07, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x40, 0x0a, 0x04, 0x4c, + 0x6f, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x41, 0x0a, + 0x05, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x1a, 0x42, 0x0a, 0x06, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, + 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x42, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x38, + 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x42, 0x0a, 0x06, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x40, 0x0a, 0x04, + 0x4e, 0x55, 0x4c, 0x4c, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x45, + 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x40, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, + 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x48, 0x0a, 0x0c, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x54, 0x5a, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x1a, 0x4c, 0x0a, 0x10, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, + 0xb3, 0x01, 0x0a, 0x11, 0x59, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, + 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x08, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0xb1, 0x01, 0x0a, 0x0f, 0x44, 0x61, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x65, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x58, 0x0a, 0x04, 0x43, 0x68, 0x61, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, + 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x1a, 0x5b, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x43, 0x68, 0x61, 0x72, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x1a, 0x99, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, + 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xa1, 0x01, 0x0a, + 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x34, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0x7f, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, 0x70, 0x65, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x1a, 0xa2, 0x01, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x3a, 0x0a, 0x0c, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x38, 0x0a, 0x18, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, + 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0xdb, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x32, + 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f, 0x6e, 0x75, 0x6c, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x74, 0x79, + 0x70, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x8f, 0x02, 0x0a, 0x03, 0x55, 0x44, 0x54, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x09, 0x6a, 0x76, 0x6d, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6a, 0x76, 0x6d, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x73, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x15, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x71, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x72, + 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x07, 0x73, 0x71, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6a, 0x76, 0x6d, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x79, + 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0x34, 0x0a, 0x08, 0x55, 0x6e, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x06, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x42, 0x36, 0x0a, 0x1e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spark_connect_types_proto_rawDescOnce sync.Once + file_spark_connect_types_proto_rawDescData = file_spark_connect_types_proto_rawDesc +) + +func file_spark_connect_types_proto_rawDescGZIP() []byte { + file_spark_connect_types_proto_rawDescOnce.Do(func() { + file_spark_connect_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_spark_connect_types_proto_rawDescData) + }) + return file_spark_connect_types_proto_rawDescData +} + +var file_spark_connect_types_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_spark_connect_types_proto_goTypes = []interface{}{ + (*DataType)(nil), // 0: spark.connect.DataType + (*DataType_Boolean)(nil), // 1: spark.connect.DataType.Boolean + (*DataType_Byte)(nil), // 2: spark.connect.DataType.Byte + (*DataType_Short)(nil), // 3: spark.connect.DataType.Short + (*DataType_Integer)(nil), // 4: spark.connect.DataType.Integer + (*DataType_Long)(nil), // 5: spark.connect.DataType.Long + (*DataType_Float)(nil), // 6: spark.connect.DataType.Float + (*DataType_Double)(nil), // 7: spark.connect.DataType.Double + (*DataType_String)(nil), // 8: spark.connect.DataType.String + (*DataType_Binary)(nil), // 9: spark.connect.DataType.Binary + (*DataType_NULL)(nil), // 10: spark.connect.DataType.NULL + (*DataType_Timestamp)(nil), // 11: spark.connect.DataType.Timestamp + (*DataType_Date)(nil), // 12: spark.connect.DataType.Date + (*DataType_TimestampNTZ)(nil), // 13: spark.connect.DataType.TimestampNTZ + (*DataType_CalendarInterval)(nil), // 14: spark.connect.DataType.CalendarInterval + (*DataType_YearMonthInterval)(nil), // 15: spark.connect.DataType.YearMonthInterval + (*DataType_DayTimeInterval)(nil), // 16: spark.connect.DataType.DayTimeInterval + (*DataType_Char)(nil), // 17: spark.connect.DataType.Char + (*DataType_VarChar)(nil), // 18: spark.connect.DataType.VarChar + (*DataType_Decimal)(nil), // 19: spark.connect.DataType.Decimal + (*DataType_StructField)(nil), // 20: spark.connect.DataType.StructField + (*DataType_Struct)(nil), // 21: spark.connect.DataType.Struct + (*DataType_Array)(nil), // 22: spark.connect.DataType.Array + (*DataType_Map)(nil), // 23: spark.connect.DataType.Map + (*DataType_UDT)(nil), // 24: spark.connect.DataType.UDT + (*DataType_Unparsed)(nil), // 25: spark.connect.DataType.Unparsed +} +var file_spark_connect_types_proto_depIdxs = []int32{ + 10, // 0: spark.connect.DataType.null:type_name -> spark.connect.DataType.NULL + 9, // 1: spark.connect.DataType.binary:type_name -> spark.connect.DataType.Binary + 1, // 2: spark.connect.DataType.boolean:type_name -> spark.connect.DataType.Boolean + 2, // 3: spark.connect.DataType.byte:type_name -> spark.connect.DataType.Byte + 3, // 4: spark.connect.DataType.short:type_name -> spark.connect.DataType.Short + 4, // 5: spark.connect.DataType.integer:type_name -> spark.connect.DataType.Integer + 5, // 6: spark.connect.DataType.long:type_name -> spark.connect.DataType.Long + 6, // 7: spark.connect.DataType.float:type_name -> spark.connect.DataType.Float + 7, // 8: spark.connect.DataType.double:type_name -> spark.connect.DataType.Double + 19, // 9: spark.connect.DataType.decimal:type_name -> spark.connect.DataType.Decimal + 8, // 10: spark.connect.DataType.string:type_name -> spark.connect.DataType.String + 17, // 11: spark.connect.DataType.char:type_name -> spark.connect.DataType.Char + 18, // 12: spark.connect.DataType.var_char:type_name -> spark.connect.DataType.VarChar + 12, // 13: spark.connect.DataType.date:type_name -> spark.connect.DataType.Date + 11, // 14: spark.connect.DataType.timestamp:type_name -> spark.connect.DataType.Timestamp + 13, // 15: spark.connect.DataType.timestamp_ntz:type_name -> spark.connect.DataType.TimestampNTZ + 14, // 16: spark.connect.DataType.calendar_interval:type_name -> spark.connect.DataType.CalendarInterval + 15, // 17: spark.connect.DataType.year_month_interval:type_name -> spark.connect.DataType.YearMonthInterval + 16, // 18: spark.connect.DataType.day_time_interval:type_name -> spark.connect.DataType.DayTimeInterval + 22, // 19: spark.connect.DataType.array:type_name -> spark.connect.DataType.Array + 21, // 20: spark.connect.DataType.struct:type_name -> spark.connect.DataType.Struct + 23, // 21: spark.connect.DataType.map:type_name -> spark.connect.DataType.Map + 24, // 22: spark.connect.DataType.udt:type_name -> spark.connect.DataType.UDT + 25, // 23: spark.connect.DataType.unparsed:type_name -> spark.connect.DataType.Unparsed + 0, // 24: spark.connect.DataType.StructField.data_type:type_name -> spark.connect.DataType + 20, // 25: spark.connect.DataType.Struct.fields:type_name -> spark.connect.DataType.StructField + 0, // 26: spark.connect.DataType.Array.element_type:type_name -> spark.connect.DataType + 0, // 27: spark.connect.DataType.Map.key_type:type_name -> spark.connect.DataType + 0, // 28: spark.connect.DataType.Map.value_type:type_name -> spark.connect.DataType + 0, // 29: spark.connect.DataType.UDT.sql_type:type_name -> spark.connect.DataType + 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_spark_connect_types_proto_init() } +func file_spark_connect_types_proto_init() { + if File_spark_connect_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_spark_connect_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Boolean); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Byte); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Short); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Integer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Long); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Float); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Double); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_String); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Binary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_NULL); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Timestamp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Date); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_TimestampNTZ); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_CalendarInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_YearMonthInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_DayTimeInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Char); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_VarChar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Decimal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_StructField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Struct); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Array); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Map); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_UDT); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spark_connect_types_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataType_Unparsed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_spark_connect_types_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*DataType_Null)(nil), + (*DataType_Binary_)(nil), + (*DataType_Boolean_)(nil), + (*DataType_Byte_)(nil), + (*DataType_Short_)(nil), + (*DataType_Integer_)(nil), + (*DataType_Long_)(nil), + (*DataType_Float_)(nil), + (*DataType_Double_)(nil), + (*DataType_Decimal_)(nil), + (*DataType_String_)(nil), + (*DataType_Char_)(nil), + (*DataType_VarChar_)(nil), + (*DataType_Date_)(nil), + (*DataType_Timestamp_)(nil), + (*DataType_TimestampNtz)(nil), + (*DataType_CalendarInterval_)(nil), + (*DataType_YearMonthInterval_)(nil), + (*DataType_DayTimeInterval_)(nil), + (*DataType_Array_)(nil), + (*DataType_Struct_)(nil), + (*DataType_Map_)(nil), + (*DataType_Udt)(nil), + (*DataType_Unparsed_)(nil), + } + file_spark_connect_types_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_spark_connect_types_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_spark_connect_types_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_spark_connect_types_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_spark_connect_types_proto_msgTypes[24].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spark_connect_types_proto_rawDesc, + NumEnums: 0, + NumMessages: 26, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spark_connect_types_proto_goTypes, + DependencyIndexes: file_spark_connect_types_proto_depIdxs, + MessageInfos: file_spark_connect_types_proto_msgTypes, + }.Build() + File_spark_connect_types_proto = out.File + file_spark_connect_types_proto_rawDesc = nil + file_spark_connect_types_proto_goTypes = nil + file_spark_connect_types_proto_depIdxs = nil +}