diff --git a/api/machine/machine.proto b/api/machine/machine.proto index 5eb07d983..341d5d6a4 100644 --- a/api/machine/machine.proto +++ b/api/machine/machine.proto @@ -51,6 +51,25 @@ service MachineService { // // This method is available only on control plane nodes (which run etcd). rpc EtcdSnapshot(EtcdSnapshotRequest) returns (stream common.Data); + // EtcdAlarmList lists etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + rpc EtcdAlarmList(google.protobuf.Empty) returns (EtcdAlarmListResponse); + // EtcdAlarmDisarm disarms etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + rpc EtcdAlarmDisarm(google.protobuf.Empty) returns (EtcdAlarmDisarmResponse); + // EtcdDefragment defragments etcd data directory for the current node. + // + // Defragmentation is a resource-heavy operation, so it should only run on a specific + // node. + // + // This method is available only on control plane nodes (which run etcd). + rpc EtcdDefragment(google.protobuf.Empty) returns (EtcdDefragmentResponse); + // EtcdStatus returns etcd status for the current member. + // + // This method is available only on control plane nodes (which run etcd). + rpc EtcdStatus(google.protobuf.Empty) returns (EtcdStatusResponse); rpc GenerateConfiguration(GenerateConfigurationRequest) returns (GenerateConfigurationResponse); rpc Hostname(google.protobuf.Empty) returns (HostnameResponse); rpc Kubeconfig(google.protobuf.Empty) returns (stream common.Data); @@ -982,6 +1001,64 @@ message EtcdRecoverResponse { repeated EtcdRecover messages = 1; } +message EtcdAlarmListResponse { + repeated EtcdAlarm messages = 1; +} + +message EtcdAlarm { + common.Metadata metadata = 1; + repeated EtcdMemberAlarm member_alarms = 2; +} + +message EtcdMemberAlarm { + enum AlarmType { + NONE = 0; + NOSPACE = 1; + CORRUPT = 2; + } + uint64 member_id = 1; + AlarmType alarm = 2; +} + +message EtcdAlarmDisarmResponse { + repeated EtcdAlarmDisarm messages = 1; +} + +message EtcdAlarmDisarm { + common.Metadata metadata = 1; + repeated EtcdMemberAlarm member_alarms = 2; +} + +message EtcdDefragmentResponse { + repeated EtcdDefragment messages = 1; +} + +message EtcdDefragment { + common.Metadata metadata = 1; +} + +message EtcdStatusResponse { + repeated EtcdStatus messages = 1; +} + +message EtcdStatus { + common.Metadata metadata = 1; + EtcdMemberStatus member_status = 2; +} + +message EtcdMemberStatus { + uint64 member_id = 10; + string protocol_version = 1; + int64 db_size = 2; + int64 db_size_in_use = 3; + uint64 leader = 4; + uint64 raft_index = 5; + uint64 raft_term = 6; + uint64 raft_applied_index = 7; + repeated string errors = 8; + bool is_learner = 9; +} + // rpc generateConfiguration message RouteConfig { diff --git a/cmd/talosctl/cmd/talos/etcd.go b/cmd/talosctl/cmd/talos/etcd.go index 495952eea..d84a3f6c2 100644 --- a/cmd/talosctl/cmd/talos/etcd.go +++ b/cmd/talosctl/cmd/talos/etcd.go @@ -14,6 +14,8 @@ import ( "sync" "text/tabwriter" + "github.com/dustin/go-humanize" + "github.com/siderolabs/gen/slices" "github.com/spf13/cobra" snapshot "go.etcd.io/etcd/etcdutl/v3/snapshot" "google.golang.org/grpc/codes" @@ -21,6 +23,7 @@ import ( "github.com/siderolabs/talos/cmd/talosctl/pkg/talos/helpers" "github.com/siderolabs/talos/pkg/cli" "github.com/siderolabs/talos/pkg/logging" + "github.com/siderolabs/talos/pkg/machinery/api/common" "github.com/siderolabs/talos/pkg/machinery/api/machine" "github.com/siderolabs/talos/pkg/machinery/client" etcdresource "github.com/siderolabs/talos/pkg/machinery/resources/etcd" @@ -33,12 +36,127 @@ var etcdCmd = &cobra.Command{ Long: ``, } +// etcdAlarmCmd represents the etcd alarm command. +var etcdAlarmCmd = &cobra.Command{ + Use: "alarm", + Short: "Manage etcd alarms", + Long: ``, +} + +type alarmMessage interface { + GetMetadata() *common.Metadata + GetMemberAlarms() []*machine.EtcdMemberAlarm +} + +func displayAlarms(messages []alarmMessage) error { + w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0) + node := "" + pattern := "%s\t%s\n" + header := "MEMBER\tALARM" + + for i, message := range messages { + if message.GetMetadata() != nil && message.GetMetadata().GetHostname() != "" { + node = message.GetMetadata().GetHostname() + } + + for j, alarm := range message.GetMemberAlarms() { + if i == 0 && j == 0 { + if node != "" { + header = "NODE\t" + header + pattern = "%s\t" + pattern + } + + fmt.Fprintln(w, header) + } + + args := []interface{}{ + etcdresource.FormatMemberID(alarm.GetMemberId()), + alarm.GetAlarm().String(), + } + if node != "" { + args = append([]interface{}{node}, args...) + } + + fmt.Fprintf(w, pattern, args...) + } + } + + return w.Flush() +} + +// etcdAlarmListCmd represents the etcd alarm list command. +var etcdAlarmListCmd = &cobra.Command{ + Use: "list", + Short: "List the etcd alarms for the node.", + Long: ``, + RunE: func(cmd *cobra.Command, args []string) error { + return WithClient(func(ctx context.Context, c *client.Client) error { + response, err := c.EtcdAlarmList(ctx) + if err != nil { + if response == nil { + return fmt.Errorf("error getting alarms: %w", err) + } + cli.Warning("%s", err) + } + + return displayAlarms(slices.Map(response.Messages, func(v *machine.EtcdAlarm) alarmMessage { + return v + })) + }) + }, +} + +// etcdAlarmDisarmCmd represents the etcd alarm disarm command. +var etcdAlarmDisarmCmd = &cobra.Command{ + Use: "disarm", + Short: "Disarm the etcd alarms for the node.", + Long: ``, + RunE: func(cmd *cobra.Command, args []string) error { + return WithClient(func(ctx context.Context, c *client.Client) error { + response, err := c.EtcdAlarmDisarm(ctx) + if err != nil { + if response == nil { + return fmt.Errorf("error disarming alarms: %w", err) + } + cli.Warning("%s", err) + } + + return displayAlarms(slices.Map(response.Messages, func(v *machine.EtcdAlarmDisarm) alarmMessage { + return v + })) + }) + }, +} + +// etcdDefragCmd represents the etcd defrag command. +var etcdDefragCmd = &cobra.Command{ + Use: "defrag", + Short: "Defragment etcd database on the node", + Long: `Defragmentation is a maintenance operation that releases unused space from the etcd database file. +Defragmentation is a resource heavy operation and should be performed only when necessary on a single node at a time.`, + RunE: func(cmd *cobra.Command, args []string) error { + return WithClient(func(ctx context.Context, c *client.Client) error { + if err := helpers.FailIfMultiNodes(ctx, "etcd defrag"); err != nil { + return err + } + + _, err := c.EtcdDefragment(ctx) + + return err + }) + }, +} + var etcdLeaveCmd = &cobra.Command{ Use: "leave", Short: "Tell nodes to leave etcd cluster", Long: ``, RunE: func(cmd *cobra.Command, args []string) error { return WithClient(func(ctx context.Context, c *client.Client) error { + if err := helpers.FailIfMultiNodes(ctx, "etcd leave"); err != nil { + return err + } + return c.EtcdLeaveCluster(ctx, &machine.EtcdLeaveClusterRequest{}) }) }, @@ -146,6 +264,69 @@ var etcdMemberListCmd = &cobra.Command{ }, } +var etcdStatusCmd = &cobra.Command{ + Use: "status", + Short: "Get the status of etcd cluster member", + Long: `Returns the status of etcd member on the node, use multiple nodes to get status of all members.`, + RunE: func(cmd *cobra.Command, args []string) error { + return WithClient(func(ctx context.Context, c *client.Client) error { + response, err := c.EtcdStatus(ctx) + if err != nil { + if response == nil { + return fmt.Errorf("error getting status: %w", err) + } + cli.Warning("%s", err) + } + + w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0) + node := "" + pattern := "%s\t%s\t%s (%.2f%%)\t%s\t%d\t%d\t%d\t%v\t%s\n" + header := "MEMBER\tDB SIZE\tIN USE\tLEADER\tRAFT INDEX\tRAFT TERM\tRAFT APPLIED INDEX\tLEARNER\tERRORS" + + for i, message := range response.Messages { + if message.Metadata != nil && message.Metadata.Hostname != "" { + node = message.Metadata.Hostname + } + + if i == 0 { + if node != "" { + header = "NODE\t" + header + pattern = "%s\t" + pattern + } + + fmt.Fprintln(w, header) + } + + var ratio float64 + + if message.GetMemberStatus().GetDbSize() > 0 { + ratio = float64(message.GetMemberStatus().GetDbSizeInUse()) / float64(message.GetMemberStatus().GetDbSize()) * 100.0 + } + + args := []interface{}{ + etcdresource.FormatMemberID(message.GetMemberStatus().GetMemberId()), + humanize.Bytes(uint64(message.GetMemberStatus().GetDbSize())), + humanize.Bytes(uint64(message.GetMemberStatus().GetDbSizeInUse())), + ratio, + etcdresource.FormatMemberID(message.GetMemberStatus().GetLeader()), + message.GetMemberStatus().GetRaftIndex(), + message.GetMemberStatus().GetRaftTerm(), + message.GetMemberStatus().GetRaftAppliedIndex(), + message.GetMemberStatus().GetIsLearner(), + strings.Join(message.GetMemberStatus().GetErrors(), ", "), + } + if node != "" { + args = append([]interface{}{node}, args...) + } + + fmt.Fprintf(w, pattern, args...) + } + + return w.Flush() + }) + }, +} + var etcdSnapshotCmd = &cobra.Command{ Use: "snapshot ", Short: "Stream snapshot of the etcd node to the path.", @@ -228,6 +409,21 @@ var etcdSnapshotCmd = &cobra.Command{ } func init() { - etcdCmd.AddCommand(etcdLeaveCmd, etcdForfeitLeadershipCmd, etcdMemberListCmd, etcdMemberRemoveCmd, etcdSnapshotCmd) + etcdAlarmCmd.AddCommand( + etcdAlarmListCmd, + etcdAlarmDisarmCmd, + ) + + etcdCmd.AddCommand( + etcdAlarmCmd, + etcdDefragCmd, + etcdForfeitLeadershipCmd, + etcdLeaveCmd, + etcdMemberListCmd, + etcdMemberRemoveCmd, + etcdSnapshotCmd, + etcdStatusCmd, + ) + addCommand(etcdCmd) } diff --git a/hack/release.toml b/hack/release.toml index 2a841e9ab..ad024c2f1 100644 --- a/hack/release.toml +++ b/hack/release.toml @@ -24,6 +24,19 @@ preface = """\ Talos is built with Go 1.19.4. """ + [notes.etcd] + title = "etcd Maintenance" + description="""\ +Talos adds new APIs to make it easier to perform etcd maintenance operations. + +These APIs are available via new `talosctl etcd` sub-commands: + +* `talosctl etcd alarm list|disarm` +* `talosctl etcd defrag` +* `talosctl etcd status` + +See also [etcd maintenance guide](https://talos.dev/v1.4/advanced/etcd-maintenance/). +""" [make_deps] diff --git a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go index b32512913..e42bea8c2 100644 --- a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go +++ b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go @@ -1952,6 +1952,160 @@ func (s *Server) EtcdRecover(srv machine.MachineService_EtcdRecoverServer) error }) } +func mapAlarms(alarms []*etcdserverpb.AlarmMember) []*machine.EtcdMemberAlarm { + mapAlarmType := func(alarmType etcdserverpb.AlarmType) machine.EtcdMemberAlarm_AlarmType { + switch alarmType { + case etcdserverpb.AlarmType_NOSPACE: + return machine.EtcdMemberAlarm_NOSPACE + case etcdserverpb.AlarmType_CORRUPT: + return machine.EtcdMemberAlarm_CORRUPT + case etcdserverpb.AlarmType_NONE: + return machine.EtcdMemberAlarm_NONE + default: + return machine.EtcdMemberAlarm_NONE + } + } + + return slices.Map(alarms, func(alarm *etcdserverpb.AlarmMember) *machine.EtcdMemberAlarm { + return &machine.EtcdMemberAlarm{ + MemberId: alarm.MemberID, + Alarm: mapAlarmType(alarm.Alarm), + } + }) +} + +// EtcdAlarmList lists etcd alarms for the current node. +// +// This method is available only on control plane nodes (which run etcd). +func (s *Server) EtcdAlarmList(ctx context.Context, in *emptypb.Empty) (*machine.EtcdAlarmListResponse, error) { + if err := s.checkControlplane("etcd alarm list"); err != nil { + return nil, err + } + + client, err := etcd.NewLocalClient() + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + //nolint:errcheck + defer client.Close() + + resp, err := client.AlarmList(ctx) + if err != nil { + return nil, fmt.Errorf("failed to list etcd alarms: %w", err) + } + + return &machine.EtcdAlarmListResponse{ + Messages: []*machine.EtcdAlarm{ + { + MemberAlarms: mapAlarms(resp.Alarms), + }, + }, + }, nil +} + +// EtcdAlarmDisarm disarms etcd alarms for the current node. +// +// This method is available only on control plane nodes (which run etcd). +func (s *Server) EtcdAlarmDisarm(ctx context.Context, in *emptypb.Empty) (*machine.EtcdAlarmDisarmResponse, error) { + if err := s.checkControlplane("etcd alarm list"); err != nil { + return nil, err + } + + client, err := etcd.NewLocalClient() + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + //nolint:errcheck + defer client.Close() + + resp, err := client.AlarmDisarm(ctx, &clientv3.AlarmMember{}) + if err != nil { + return nil, fmt.Errorf("failed to disarm etcd alarm: %w", err) + } + + return &machine.EtcdAlarmDisarmResponse{ + Messages: []*machine.EtcdAlarmDisarm{ + { + MemberAlarms: mapAlarms(resp.Alarms), + }, + }, + }, nil +} + +// EtcdDefragment defragments etcd data directory for the current node. +// +// Defragmentation is a resource-heavy operation, so it should only run on a specific +// node. +// +// This method is available only on control plane nodes (which run etcd). +func (s *Server) EtcdDefragment(ctx context.Context, in *emptypb.Empty) (*machine.EtcdDefragmentResponse, error) { + if err := s.checkControlplane("etcd defragment"); err != nil { + return nil, err + } + + client, err := etcd.NewLocalClient() + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + //nolint:errcheck + defer client.Close() + + _, err = client.Defragment(ctx, nethelpers.JoinHostPort("localhost", constants.EtcdClientPort)) + if err != nil { + return nil, fmt.Errorf("failed to defragment etcd: %w", err) + } + + return &machine.EtcdDefragmentResponse{ + Messages: []*machine.EtcdDefragment{ + {}, + }, + }, nil +} + +// EtcdStatus returns etcd status for the member of the cluster. +// +// This method is available only on control plane nodes (which run etcd). +func (s *Server) EtcdStatus(ctx context.Context, in *emptypb.Empty) (*machine.EtcdStatusResponse, error) { + if err := s.checkControlplane("etcd status"); err != nil { + return nil, err + } + + client, err := etcd.NewLocalClient() + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + //nolint:errcheck + defer client.Close() + + resp, err := client.Status(ctx, nethelpers.JoinHostPort("localhost", constants.EtcdClientPort)) + if err != nil { + return nil, fmt.Errorf("failed to query etcd status: %w", err) + } + + return &machine.EtcdStatusResponse{ + Messages: []*machine.EtcdStatus{ + { + MemberStatus: &machine.EtcdMemberStatus{ + MemberId: resp.Header.MemberId, + ProtocolVersion: resp.Version, + DbSize: resp.DbSize, + DbSizeInUse: resp.DbSizeInUse, + Leader: resp.Leader, + RaftIndex: resp.RaftIndex, + RaftTerm: resp.RaftTerm, + RaftAppliedIndex: resp.RaftAppliedIndex, + Errors: resp.Errors, + IsLearner: resp.IsLearner, + }, + }, + }, + }, nil +} + // GenerateClientConfiguration implements the machine.MachineServer interface. func (s *Server) GenerateClientConfiguration(ctx context.Context, in *machine.GenerateClientConfigurationRequest) (*machine.GenerateClientConfigurationResponse, error) { if s.Controller.Runtime().Config().Machine().Type() == machinetype.TypeWorker { diff --git a/internal/app/machined/pkg/system/services/machined.go b/internal/app/machined/pkg/system/services/machined.go index 06beec546..d2d0c3dbe 100644 --- a/internal/app/machined/pkg/system/services/machined.go +++ b/internal/app/machined/pkg/system/services/machined.go @@ -40,6 +40,9 @@ var rules = map[string]role.Set{ "/machine.MachineService/DiskStats": role.MakeSet(role.Admin, role.Reader), "/machine.MachineService/DiskUsage": role.MakeSet(role.Admin, role.Reader), "/machine.MachineService/Dmesg": role.MakeSet(role.Admin, role.Reader), + "/machine.MachineService/EtcdAlarmList": role.MakeSet(role.Admin), + "/machine.MachineService/EtcdAlarmDisarm": role.MakeSet(role.Admin), + "/machine.MachineService/EtcdDefragment": role.MakeSet(role.Admin), "/machine.MachineService/EtcdForfeitLeadership": role.MakeSet(role.Admin), "/machine.MachineService/EtcdLeaveCluster": role.MakeSet(role.Admin), "/machine.MachineService/EtcdMemberList": role.MakeSet(role.Admin, role.Reader), @@ -47,6 +50,7 @@ var rules = map[string]role.Set{ "/machine.MachineService/EtcdRemoveMember": role.MakeSet(role.Admin), "/machine.MachineService/EtcdRemoveMemberByID": role.MakeSet(role.Admin), "/machine.MachineService/EtcdSnapshot": role.MakeSet(role.Admin, role.EtcdBackup), + "/machine.MachineService/EtcdStatus": role.MakeSet(role.Admin), "/machine.MachineService/Events": role.MakeSet(role.Admin, role.Reader), "/machine.MachineService/GenerateClientConfiguration": role.MakeSet(role.Admin), "/machine.MachineService/GenerateConfiguration": role.MakeSet(role.Admin), diff --git a/internal/integration/base/cli.go b/internal/integration/base/cli.go index 7dfd58c94..845842787 100644 --- a/internal/integration/base/cli.go +++ b/internal/integration/base/cli.go @@ -50,6 +50,13 @@ func (cliSuite *CLISuite) DiscoverNodeInternalIPs(ctx context.Context) []string return mapNodeInfosToInternalIPs(nodes.Nodes()) } +// DiscoverNodeInternalIPsByType provides list of Talos node internal IPs in the cluster for given machine type. +func (cliSuite *CLISuite) DiscoverNodeInternalIPsByType(ctx context.Context, machineType machine.Type) []string { + nodesByType := cliSuite.DiscoverNodes(ctx).NodesByType(machineType) + + return mapNodeInfosToInternalIPs(nodesByType) +} + // RandomDiscoveredNodeInternalIP returns the internal IP a random node of the specified type (or any type if no types are specified). // //nolint:dupl diff --git a/internal/integration/cli/etcd.go b/internal/integration/cli/etcd.go index 2a9501241..ac9a1681f 100644 --- a/internal/integration/cli/etcd.go +++ b/internal/integration/cli/etcd.go @@ -10,6 +10,7 @@ import ( "context" "path/filepath" "regexp" + "strings" "github.com/siderolabs/talos/internal/integration/base" "github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1/machine" @@ -30,6 +31,21 @@ func (suite *EtcdSuite) TestMembers() { suite.RunCLI([]string{"etcd", "members", "--nodes", suite.RandomDiscoveredNodeInternalIP(machine.TypeControlPlane)}) // default checks for stdout not empty } +// TestStatus etcd status should have some output. +func (suite *EtcdSuite) TestStatus() { + cpNodes := suite.DiscoverNodeInternalIPsByType(context.TODO(), machine.TypeControlPlane) + + suite.RunCLI([]string{"etcd", "status", "--nodes", strings.Join(cpNodes, ",")}) // default checks for stdout not empty +} + +// TestAlarm etcd alarm should have no output. +func (suite *EtcdSuite) TestAlarm() { + cpNode := suite.RandomDiscoveredNodeInternalIP(machine.TypeControlPlane) + + suite.RunCLI([]string{"etcd", "alarm", "list", "--nodes", cpNode}, base.StdoutEmpty()) + suite.RunCLI([]string{"etcd", "alarm", "disarm", "--nodes", cpNode}, base.StdoutEmpty()) +} + // TestForfeitLeadership etcd forfeit-leadership check. func (suite *EtcdSuite) TestForfeitLeadership() { nodes := suite.DiscoverNodes(context.TODO()).NodesByType(machine.TypeControlPlane) diff --git a/pkg/machinery/api/machine/machine.pb.go b/pkg/machinery/api/machine/machine.pb.go index 7f5c0241d..b474c1669 100644 --- a/pkg/machinery/api/machine/machine.pb.go +++ b/pkg/machinery/api/machine/machine.pb.go @@ -453,6 +453,55 @@ func (ListRequest_Type) EnumDescriptor() ([]byte, []int) { return file_machine_machine_proto_rawDescGZIP(), []int{46, 0} } +type EtcdMemberAlarm_AlarmType int32 + +const ( + EtcdMemberAlarm_NONE EtcdMemberAlarm_AlarmType = 0 + EtcdMemberAlarm_NOSPACE EtcdMemberAlarm_AlarmType = 1 + EtcdMemberAlarm_CORRUPT EtcdMemberAlarm_AlarmType = 2 +) + +// Enum value maps for EtcdMemberAlarm_AlarmType. +var ( + EtcdMemberAlarm_AlarmType_name = map[int32]string{ + 0: "NONE", + 1: "NOSPACE", + 2: "CORRUPT", + } + EtcdMemberAlarm_AlarmType_value = map[string]int32{ + "NONE": 0, + "NOSPACE": 1, + "CORRUPT": 2, + } +) + +func (x EtcdMemberAlarm_AlarmType) Enum() *EtcdMemberAlarm_AlarmType { + p := new(EtcdMemberAlarm_AlarmType) + *p = x + return p +} + +func (x EtcdMemberAlarm_AlarmType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EtcdMemberAlarm_AlarmType) Descriptor() protoreflect.EnumDescriptor { + return file_machine_machine_proto_enumTypes[8].Descriptor() +} + +func (EtcdMemberAlarm_AlarmType) Type() protoreflect.EnumType { + return &file_machine_machine_proto_enumTypes[8] +} + +func (x EtcdMemberAlarm_AlarmType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use EtcdMemberAlarm_AlarmType.Descriptor instead. +func (EtcdMemberAlarm_AlarmType) EnumDescriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{119, 0} +} + type MachineConfig_MachineType int32 const ( @@ -489,11 +538,11 @@ func (x MachineConfig_MachineType) String() string { } func (MachineConfig_MachineType) Descriptor() protoreflect.EnumDescriptor { - return file_machine_machine_proto_enumTypes[8].Descriptor() + return file_machine_machine_proto_enumTypes[9].Descriptor() } func (MachineConfig_MachineType) Type() protoreflect.EnumType { - return &file_machine_machine_proto_enumTypes[8] + return &file_machine_machine_proto_enumTypes[9] } func (x MachineConfig_MachineType) Number() protoreflect.EnumNumber { @@ -502,7 +551,7 @@ func (x MachineConfig_MachineType) Number() protoreflect.EnumNumber { // Deprecated: Use MachineConfig_MachineType.Descriptor instead. func (MachineConfig_MachineType) EnumDescriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{122, 0} + return file_machine_machine_proto_rawDescGZIP(), []int{132, 0} } // rpc applyConfiguration @@ -8143,6 +8192,580 @@ func (x *EtcdRecoverResponse) GetMessages() []*EtcdRecover { return nil } +type EtcdAlarmListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdAlarm `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdAlarmListResponse) Reset() { + *x = EtcdAlarmListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdAlarmListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdAlarmListResponse) ProtoMessage() {} + +func (x *EtcdAlarmListResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[117] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdAlarmListResponse.ProtoReflect.Descriptor instead. +func (*EtcdAlarmListResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{117} +} + +func (x *EtcdAlarmListResponse) GetMessages() []*EtcdAlarm { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdAlarm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + MemberAlarms []*EtcdMemberAlarm `protobuf:"bytes,2,rep,name=member_alarms,json=memberAlarms,proto3" json:"member_alarms,omitempty"` +} + +func (x *EtcdAlarm) Reset() { + *x = EtcdAlarm{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdAlarm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdAlarm) ProtoMessage() {} + +func (x *EtcdAlarm) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdAlarm.ProtoReflect.Descriptor instead. +func (*EtcdAlarm) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{118} +} + +func (x *EtcdAlarm) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *EtcdAlarm) GetMemberAlarms() []*EtcdMemberAlarm { + if x != nil { + return x.MemberAlarms + } + return nil +} + +type EtcdMemberAlarm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId uint64 `protobuf:"varint,1,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"` + Alarm EtcdMemberAlarm_AlarmType `protobuf:"varint,2,opt,name=alarm,proto3,enum=machine.EtcdMemberAlarm_AlarmType" json:"alarm,omitempty"` +} + +func (x *EtcdMemberAlarm) Reset() { + *x = EtcdMemberAlarm{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdMemberAlarm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdMemberAlarm) ProtoMessage() {} + +func (x *EtcdMemberAlarm) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdMemberAlarm.ProtoReflect.Descriptor instead. +func (*EtcdMemberAlarm) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{119} +} + +func (x *EtcdMemberAlarm) GetMemberId() uint64 { + if x != nil { + return x.MemberId + } + return 0 +} + +func (x *EtcdMemberAlarm) GetAlarm() EtcdMemberAlarm_AlarmType { + if x != nil { + return x.Alarm + } + return EtcdMemberAlarm_NONE +} + +type EtcdAlarmDisarmResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdAlarmDisarm `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdAlarmDisarmResponse) Reset() { + *x = EtcdAlarmDisarmResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdAlarmDisarmResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdAlarmDisarmResponse) ProtoMessage() {} + +func (x *EtcdAlarmDisarmResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[120] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdAlarmDisarmResponse.ProtoReflect.Descriptor instead. +func (*EtcdAlarmDisarmResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{120} +} + +func (x *EtcdAlarmDisarmResponse) GetMessages() []*EtcdAlarmDisarm { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdAlarmDisarm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + MemberAlarms []*EtcdMemberAlarm `protobuf:"bytes,2,rep,name=member_alarms,json=memberAlarms,proto3" json:"member_alarms,omitempty"` +} + +func (x *EtcdAlarmDisarm) Reset() { + *x = EtcdAlarmDisarm{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdAlarmDisarm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdAlarmDisarm) ProtoMessage() {} + +func (x *EtcdAlarmDisarm) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdAlarmDisarm.ProtoReflect.Descriptor instead. +func (*EtcdAlarmDisarm) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{121} +} + +func (x *EtcdAlarmDisarm) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *EtcdAlarmDisarm) GetMemberAlarms() []*EtcdMemberAlarm { + if x != nil { + return x.MemberAlarms + } + return nil +} + +type EtcdDefragmentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdDefragment `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdDefragmentResponse) Reset() { + *x = EtcdDefragmentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdDefragmentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdDefragmentResponse) ProtoMessage() {} + +func (x *EtcdDefragmentResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdDefragmentResponse.ProtoReflect.Descriptor instead. +func (*EtcdDefragmentResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{122} +} + +func (x *EtcdDefragmentResponse) GetMessages() []*EtcdDefragment { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdDefragment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *EtcdDefragment) Reset() { + *x = EtcdDefragment{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdDefragment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdDefragment) ProtoMessage() {} + +func (x *EtcdDefragment) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdDefragment.ProtoReflect.Descriptor instead. +func (*EtcdDefragment) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{123} +} + +func (x *EtcdDefragment) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +type EtcdStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdStatus `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdStatusResponse) Reset() { + *x = EtcdStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdStatusResponse) ProtoMessage() {} + +func (x *EtcdStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdStatusResponse.ProtoReflect.Descriptor instead. +func (*EtcdStatusResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{124} +} + +func (x *EtcdStatusResponse) GetMessages() []*EtcdStatus { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + MemberStatus *EtcdMemberStatus `protobuf:"bytes,2,opt,name=member_status,json=memberStatus,proto3" json:"member_status,omitempty"` +} + +func (x *EtcdStatus) Reset() { + *x = EtcdStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdStatus) ProtoMessage() {} + +func (x *EtcdStatus) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdStatus.ProtoReflect.Descriptor instead. +func (*EtcdStatus) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{125} +} + +func (x *EtcdStatus) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *EtcdStatus) GetMemberStatus() *EtcdMemberStatus { + if x != nil { + return x.MemberStatus + } + return nil +} + +type EtcdMemberStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId uint64 `protobuf:"varint,10,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"` + ProtocolVersion string `protobuf:"bytes,1,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"` + DbSize int64 `protobuf:"varint,2,opt,name=db_size,json=dbSize,proto3" json:"db_size,omitempty"` + DbSizeInUse int64 `protobuf:"varint,3,opt,name=db_size_in_use,json=dbSizeInUse,proto3" json:"db_size_in_use,omitempty"` + Leader uint64 `protobuf:"varint,4,opt,name=leader,proto3" json:"leader,omitempty"` + RaftIndex uint64 `protobuf:"varint,5,opt,name=raft_index,json=raftIndex,proto3" json:"raft_index,omitempty"` + RaftTerm uint64 `protobuf:"varint,6,opt,name=raft_term,json=raftTerm,proto3" json:"raft_term,omitempty"` + RaftAppliedIndex uint64 `protobuf:"varint,7,opt,name=raft_applied_index,json=raftAppliedIndex,proto3" json:"raft_applied_index,omitempty"` + Errors []string `protobuf:"bytes,8,rep,name=errors,proto3" json:"errors,omitempty"` + IsLearner bool `protobuf:"varint,9,opt,name=is_learner,json=isLearner,proto3" json:"is_learner,omitempty"` +} + +func (x *EtcdMemberStatus) Reset() { + *x = EtcdMemberStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdMemberStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdMemberStatus) ProtoMessage() {} + +func (x *EtcdMemberStatus) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[126] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdMemberStatus.ProtoReflect.Descriptor instead. +func (*EtcdMemberStatus) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{126} +} + +func (x *EtcdMemberStatus) GetMemberId() uint64 { + if x != nil { + return x.MemberId + } + return 0 +} + +func (x *EtcdMemberStatus) GetProtocolVersion() string { + if x != nil { + return x.ProtocolVersion + } + return "" +} + +func (x *EtcdMemberStatus) GetDbSize() int64 { + if x != nil { + return x.DbSize + } + return 0 +} + +func (x *EtcdMemberStatus) GetDbSizeInUse() int64 { + if x != nil { + return x.DbSizeInUse + } + return 0 +} + +func (x *EtcdMemberStatus) GetLeader() uint64 { + if x != nil { + return x.Leader + } + return 0 +} + +func (x *EtcdMemberStatus) GetRaftIndex() uint64 { + if x != nil { + return x.RaftIndex + } + return 0 +} + +func (x *EtcdMemberStatus) GetRaftTerm() uint64 { + if x != nil { + return x.RaftTerm + } + return 0 +} + +func (x *EtcdMemberStatus) GetRaftAppliedIndex() uint64 { + if x != nil { + return x.RaftAppliedIndex + } + return 0 +} + +func (x *EtcdMemberStatus) GetErrors() []string { + if x != nil { + return x.Errors + } + return nil +} + +func (x *EtcdMemberStatus) GetIsLearner() bool { + if x != nil { + return x.IsLearner + } + return false +} + type RouteConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8156,7 +8779,7 @@ type RouteConfig struct { func (x *RouteConfig) Reset() { *x = RouteConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[117] + mi := &file_machine_machine_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8169,7 +8792,7 @@ func (x *RouteConfig) String() string { func (*RouteConfig) ProtoMessage() {} func (x *RouteConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[117] + mi := &file_machine_machine_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8182,7 +8805,7 @@ func (x *RouteConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use RouteConfig.ProtoReflect.Descriptor instead. func (*RouteConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{117} + return file_machine_machine_proto_rawDescGZIP(), []int{127} } func (x *RouteConfig) GetNetwork() string { @@ -8217,7 +8840,7 @@ type DHCPOptionsConfig struct { func (x *DHCPOptionsConfig) Reset() { *x = DHCPOptionsConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[118] + mi := &file_machine_machine_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8230,7 +8853,7 @@ func (x *DHCPOptionsConfig) String() string { func (*DHCPOptionsConfig) ProtoMessage() {} func (x *DHCPOptionsConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[118] + mi := &file_machine_machine_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8243,7 +8866,7 @@ func (x *DHCPOptionsConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use DHCPOptionsConfig.ProtoReflect.Descriptor instead. func (*DHCPOptionsConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{118} + return file_machine_machine_proto_rawDescGZIP(), []int{128} } func (x *DHCPOptionsConfig) GetRouteMetric() uint32 { @@ -8270,7 +8893,7 @@ type NetworkDeviceConfig struct { func (x *NetworkDeviceConfig) Reset() { *x = NetworkDeviceConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[119] + mi := &file_machine_machine_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8283,7 +8906,7 @@ func (x *NetworkDeviceConfig) String() string { func (*NetworkDeviceConfig) ProtoMessage() {} func (x *NetworkDeviceConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[119] + mi := &file_machine_machine_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8296,7 +8919,7 @@ func (x *NetworkDeviceConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkDeviceConfig.ProtoReflect.Descriptor instead. func (*NetworkDeviceConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{119} + return file_machine_machine_proto_rawDescGZIP(), []int{129} } func (x *NetworkDeviceConfig) GetInterface() string { @@ -8360,7 +8983,7 @@ type NetworkConfig struct { func (x *NetworkConfig) Reset() { *x = NetworkConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[120] + mi := &file_machine_machine_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8373,7 +8996,7 @@ func (x *NetworkConfig) String() string { func (*NetworkConfig) ProtoMessage() {} func (x *NetworkConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[120] + mi := &file_machine_machine_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8386,7 +9009,7 @@ func (x *NetworkConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkConfig.ProtoReflect.Descriptor instead. func (*NetworkConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{120} + return file_machine_machine_proto_rawDescGZIP(), []int{130} } func (x *NetworkConfig) GetHostname() string { @@ -8415,7 +9038,7 @@ type InstallConfig struct { func (x *InstallConfig) Reset() { *x = InstallConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[121] + mi := &file_machine_machine_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8428,7 +9051,7 @@ func (x *InstallConfig) String() string { func (*InstallConfig) ProtoMessage() {} func (x *InstallConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[121] + mi := &file_machine_machine_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8441,7 +9064,7 @@ func (x *InstallConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use InstallConfig.ProtoReflect.Descriptor instead. func (*InstallConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{121} + return file_machine_machine_proto_rawDescGZIP(), []int{131} } func (x *InstallConfig) GetInstallDisk() string { @@ -8472,7 +9095,7 @@ type MachineConfig struct { func (x *MachineConfig) Reset() { *x = MachineConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[122] + mi := &file_machine_machine_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8485,7 +9108,7 @@ func (x *MachineConfig) String() string { func (*MachineConfig) ProtoMessage() {} func (x *MachineConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[122] + mi := &file_machine_machine_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8498,7 +9121,7 @@ func (x *MachineConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineConfig.ProtoReflect.Descriptor instead. func (*MachineConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{122} + return file_machine_machine_proto_rawDescGZIP(), []int{132} } func (x *MachineConfig) GetType() MachineConfig_MachineType { @@ -8540,7 +9163,7 @@ type ControlPlaneConfig struct { func (x *ControlPlaneConfig) Reset() { *x = ControlPlaneConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[123] + mi := &file_machine_machine_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8553,7 +9176,7 @@ func (x *ControlPlaneConfig) String() string { func (*ControlPlaneConfig) ProtoMessage() {} func (x *ControlPlaneConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[123] + mi := &file_machine_machine_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8566,7 +9189,7 @@ func (x *ControlPlaneConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ControlPlaneConfig.ProtoReflect.Descriptor instead. func (*ControlPlaneConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{123} + return file_machine_machine_proto_rawDescGZIP(), []int{133} } func (x *ControlPlaneConfig) GetEndpoint() string { @@ -8588,7 +9211,7 @@ type CNIConfig struct { func (x *CNIConfig) Reset() { *x = CNIConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[124] + mi := &file_machine_machine_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8601,7 +9224,7 @@ func (x *CNIConfig) String() string { func (*CNIConfig) ProtoMessage() {} func (x *CNIConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[124] + mi := &file_machine_machine_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8614,7 +9237,7 @@ func (x *CNIConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CNIConfig.ProtoReflect.Descriptor instead. func (*CNIConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{124} + return file_machine_machine_proto_rawDescGZIP(), []int{134} } func (x *CNIConfig) GetName() string { @@ -8643,7 +9266,7 @@ type ClusterNetworkConfig struct { func (x *ClusterNetworkConfig) Reset() { *x = ClusterNetworkConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[125] + mi := &file_machine_machine_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8656,7 +9279,7 @@ func (x *ClusterNetworkConfig) String() string { func (*ClusterNetworkConfig) ProtoMessage() {} func (x *ClusterNetworkConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[125] + mi := &file_machine_machine_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8669,7 +9292,7 @@ func (x *ClusterNetworkConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterNetworkConfig.ProtoReflect.Descriptor instead. func (*ClusterNetworkConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{125} + return file_machine_machine_proto_rawDescGZIP(), []int{135} } func (x *ClusterNetworkConfig) GetDnsDomain() string { @@ -8700,7 +9323,7 @@ type ClusterConfig struct { func (x *ClusterConfig) Reset() { *x = ClusterConfig{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[126] + mi := &file_machine_machine_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8713,7 +9336,7 @@ func (x *ClusterConfig) String() string { func (*ClusterConfig) ProtoMessage() {} func (x *ClusterConfig) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[126] + mi := &file_machine_machine_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8726,7 +9349,7 @@ func (x *ClusterConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterConfig.ProtoReflect.Descriptor instead. func (*ClusterConfig) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{126} + return file_machine_machine_proto_rawDescGZIP(), []int{136} } func (x *ClusterConfig) GetName() string { @@ -8773,7 +9396,7 @@ type GenerateConfigurationRequest struct { func (x *GenerateConfigurationRequest) Reset() { *x = GenerateConfigurationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[127] + mi := &file_machine_machine_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8786,7 +9409,7 @@ func (x *GenerateConfigurationRequest) String() string { func (*GenerateConfigurationRequest) ProtoMessage() {} func (x *GenerateConfigurationRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[127] + mi := &file_machine_machine_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8799,7 +9422,7 @@ func (x *GenerateConfigurationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateConfigurationRequest.ProtoReflect.Descriptor instead. func (*GenerateConfigurationRequest) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{127} + return file_machine_machine_proto_rawDescGZIP(), []int{137} } func (x *GenerateConfigurationRequest) GetConfigVersion() string { @@ -8844,7 +9467,7 @@ type GenerateConfiguration struct { func (x *GenerateConfiguration) Reset() { *x = GenerateConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[128] + mi := &file_machine_machine_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8857,7 +9480,7 @@ func (x *GenerateConfiguration) String() string { func (*GenerateConfiguration) ProtoMessage() {} func (x *GenerateConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[128] + mi := &file_machine_machine_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8870,7 +9493,7 @@ func (x *GenerateConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateConfiguration.ProtoReflect.Descriptor instead. func (*GenerateConfiguration) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{128} + return file_machine_machine_proto_rawDescGZIP(), []int{138} } func (x *GenerateConfiguration) GetMetadata() *common.Metadata { @@ -8905,7 +9528,7 @@ type GenerateConfigurationResponse struct { func (x *GenerateConfigurationResponse) Reset() { *x = GenerateConfigurationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[129] + mi := &file_machine_machine_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8918,7 +9541,7 @@ func (x *GenerateConfigurationResponse) String() string { func (*GenerateConfigurationResponse) ProtoMessage() {} func (x *GenerateConfigurationResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[129] + mi := &file_machine_machine_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8931,7 +9554,7 @@ func (x *GenerateConfigurationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateConfigurationResponse.ProtoReflect.Descriptor instead. func (*GenerateConfigurationResponse) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{129} + return file_machine_machine_proto_rawDescGZIP(), []int{139} } func (x *GenerateConfigurationResponse) GetMessages() []*GenerateConfiguration { @@ -8955,7 +9578,7 @@ type GenerateClientConfigurationRequest struct { func (x *GenerateClientConfigurationRequest) Reset() { *x = GenerateClientConfigurationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[130] + mi := &file_machine_machine_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8968,7 +9591,7 @@ func (x *GenerateClientConfigurationRequest) String() string { func (*GenerateClientConfigurationRequest) ProtoMessage() {} func (x *GenerateClientConfigurationRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[130] + mi := &file_machine_machine_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8981,7 +9604,7 @@ func (x *GenerateClientConfigurationRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GenerateClientConfigurationRequest.ProtoReflect.Descriptor instead. func (*GenerateClientConfigurationRequest) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{130} + return file_machine_machine_proto_rawDescGZIP(), []int{140} } func (x *GenerateClientConfigurationRequest) GetRoles() []string { @@ -9017,7 +9640,7 @@ type GenerateClientConfiguration struct { func (x *GenerateClientConfiguration) Reset() { *x = GenerateClientConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[131] + mi := &file_machine_machine_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9030,7 +9653,7 @@ func (x *GenerateClientConfiguration) String() string { func (*GenerateClientConfiguration) ProtoMessage() {} func (x *GenerateClientConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[131] + mi := &file_machine_machine_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9043,7 +9666,7 @@ func (x *GenerateClientConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateClientConfiguration.ProtoReflect.Descriptor instead. func (*GenerateClientConfiguration) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{131} + return file_machine_machine_proto_rawDescGZIP(), []int{141} } func (x *GenerateClientConfiguration) GetMetadata() *common.Metadata { @@ -9092,7 +9715,7 @@ type GenerateClientConfigurationResponse struct { func (x *GenerateClientConfigurationResponse) Reset() { *x = GenerateClientConfigurationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[132] + mi := &file_machine_machine_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9105,7 +9728,7 @@ func (x *GenerateClientConfigurationResponse) String() string { func (*GenerateClientConfigurationResponse) ProtoMessage() {} func (x *GenerateClientConfigurationResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[132] + mi := &file_machine_machine_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9118,7 +9741,7 @@ func (x *GenerateClientConfigurationResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use GenerateClientConfigurationResponse.ProtoReflect.Descriptor instead. func (*GenerateClientConfigurationResponse) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{132} + return file_machine_machine_proto_rawDescGZIP(), []int{142} } func (x *GenerateClientConfigurationResponse) GetMessages() []*GenerateClientConfiguration { @@ -9146,7 +9769,7 @@ type PacketCaptureRequest struct { func (x *PacketCaptureRequest) Reset() { *x = PacketCaptureRequest{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[133] + mi := &file_machine_machine_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9159,7 +9782,7 @@ func (x *PacketCaptureRequest) String() string { func (*PacketCaptureRequest) ProtoMessage() {} func (x *PacketCaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[133] + mi := &file_machine_machine_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9172,7 +9795,7 @@ func (x *PacketCaptureRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PacketCaptureRequest.ProtoReflect.Descriptor instead. func (*PacketCaptureRequest) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{133} + return file_machine_machine_proto_rawDescGZIP(), []int{143} } func (x *PacketCaptureRequest) GetInterface() string { @@ -9217,7 +9840,7 @@ type BPFInstruction struct { func (x *BPFInstruction) Reset() { *x = BPFInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[134] + mi := &file_machine_machine_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9230,7 +9853,7 @@ func (x *BPFInstruction) String() string { func (*BPFInstruction) ProtoMessage() {} func (x *BPFInstruction) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[134] + mi := &file_machine_machine_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9243,7 +9866,7 @@ func (x *BPFInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use BPFInstruction.ProtoReflect.Descriptor instead. func (*BPFInstruction) Descriptor() ([]byte, []int) { - return file_machine_machine_proto_rawDescGZIP(), []int{134} + return file_machine_machine_proto_rawDescGZIP(), []int{144} } func (x *BPFInstruction) GetOp() uint32 { @@ -9286,7 +9909,7 @@ type MachineStatusEvent_MachineStatus struct { func (x *MachineStatusEvent_MachineStatus) Reset() { *x = MachineStatusEvent_MachineStatus{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[135] + mi := &file_machine_machine_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9299,7 +9922,7 @@ func (x *MachineStatusEvent_MachineStatus) String() string { func (*MachineStatusEvent_MachineStatus) ProtoMessage() {} func (x *MachineStatusEvent_MachineStatus) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[135] + mi := &file_machine_machine_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9341,7 +9964,7 @@ type MachineStatusEvent_MachineStatus_UnmetCondition struct { func (x *MachineStatusEvent_MachineStatus_UnmetCondition) Reset() { *x = MachineStatusEvent_MachineStatus_UnmetCondition{} if protoimpl.UnsafeEnabled { - mi := &file_machine_machine_proto_msgTypes[136] + mi := &file_machine_machine_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9354,7 +9977,7 @@ func (x *MachineStatusEvent_MachineStatus_UnmetCondition) String() string { func (*MachineStatusEvent_MachineStatus_UnmetCondition) ProtoMessage() {} func (x *MachineStatusEvent_MachineStatus_UnmetCondition) ProtoReflect() protoreflect.Message { - mi := &file_machine_machine_proto_msgTypes[136] + mi := &file_machine_machine_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10364,350 +10987,445 @@ var file_machine_machine_proto_rawDesc = []byte{ 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, - 0x36, 0x0a, 0x11, 0x44, 0x48, 0x43, 0x50, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0xf2, 0x01, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x68, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x04, 0x64, 0x68, 0x63, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, - 0x3d, 0x0a, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x44, 0x48, 0x43, 0x50, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0b, 0x64, 0x68, 0x63, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, - 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x0d, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0xcd, 0x02, 0x0a, 0x0d, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x0e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x57, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, - 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x10, 0x03, - 0x22, 0x30, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x09, 0x43, 0x4e, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x72, 0x6c, 0x73, 0x22, 0x68, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x31, - 0x0a, 0x0a, 0x63, 0x6e, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x4e, 0x49, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x63, 0x6e, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0xf9, 0x01, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x12, 0x4a, 0x0a, 0x22, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x4f, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x22, 0x84, 0x02, - 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x5b, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x6e, - 0x0a, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x15, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, + 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, + 0x61, 0x72, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x78, 0x0a, + 0x09, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x45, 0x74, 0x63, 0x64, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x05, 0x61, 0x6c, 0x61, 0x72, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6c, 0x61, 0x72, + 0x6d, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x61, 0x6c, 0x61, + 0x72, 0x6d, 0x22, 0x2f, 0x0a, 0x09, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x53, + 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x52, 0x52, 0x55, 0x50, + 0x54, 0x10, 0x02, 0x22, 0x4f, 0x0a, 0x17, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, 0x6d, + 0x44, 0x69, 0x73, 0x61, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, + 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x41, + 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x69, 0x73, 0x61, 0x72, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x0f, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, + 0x6d, 0x44, 0x69, 0x73, 0x61, 0x72, 0x6d, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6c, + 0x61, 0x72, 0x6d, 0x73, 0x22, 0x4d, 0x0a, 0x16, 0x45, 0x74, 0x63, 0x64, 0x44, 0x65, 0x66, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x44, + 0x65, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x0e, 0x45, 0x74, 0x63, 0x64, 0x44, 0x65, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, 0x12, 0x45, 0x74, 0x63, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0a, 0x45, 0x74, + 0x63, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x10, 0x45, 0x74, 0x63, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x62, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0e, + 0x64, 0x62, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x62, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x55, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x66, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x72, + 0x61, 0x66, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x66, 0x74, + 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x61, 0x66, + 0x74, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x72, 0x61, 0x66, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x73, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x22, 0x59, 0x0a, 0x0b, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x36, 0x0a, 0x11, 0x44, 0x48, 0x43, 0x50, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0xf2, 0x01, + 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x68, 0x63, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x68, 0x63, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x48, 0x43, 0x50, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x64, 0x68, 0x63, 0x70, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x22, 0x69, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x3c, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0x57, 0x0a, + 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x73, + 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x0d, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x3d, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x3d, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, + 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6b, 0x75, 0x62, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x57, 0x0a, + 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x16, 0x0a, + 0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4c, + 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x4f, + 0x52, 0x4b, 0x45, 0x52, 0x10, 0x03, 0x22, 0x30, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x09, 0x43, 0x4e, 0x49, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6c, 0x73, 0x22, 0x68, 0x0a, + 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6e, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x43, 0x4e, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x63, 0x6e, + 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf9, 0x01, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x12, + 0x46, 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4a, 0x0a, 0x22, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x1e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, + 0x6e, 0x65, 0x73, 0x22, 0x84, 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x72, - 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x72, 0x74, 0x54, 0x74, 0x6c, 0x22, 0xa1, - 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, - 0x63, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x63, 0x61, 0x12, 0x10, 0x0a, 0x03, - 0x63, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x72, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x67, 0x0a, 0x23, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x14, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x6c, 0x65, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x6e, 0x61, 0x70, 0x4c, 0x65, 0x6e, 0x12, - 0x36, 0x0a, 0x0a, 0x62, 0x70, 0x66, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x50, - 0x46, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x62, 0x70, - 0x66, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x4e, 0x0a, 0x0e, 0x42, 0x50, 0x46, 0x49, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6a, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6a, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6a, 0x66, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6a, 0x66, 0x12, 0x0c, 0x0a, 0x01, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x6b, 0x32, 0xeb, 0x16, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x12, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x22, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x42, 0x6f, 0x6f, - 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, - 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x14, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x43, 0x50, 0x55, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x43, 0x50, 0x55, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3f, 0x0a, 0x09, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, - 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, - 0x12, 0x32, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x10, 0x45, 0x74, 0x63, 0x64, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x61, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x15, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6f, + 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x5b, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x22, 0x6e, 0x0a, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x12, 0x32, 0x0a, 0x07, 0x63, 0x72, 0x74, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x72, + 0x74, 0x54, 0x74, 0x6c, 0x22, 0xa1, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x63, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x63, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x61, 0x6c, + 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x67, 0x0a, 0x23, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, + 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x6e, + 0x61, 0x70, 0x4c, 0x65, 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x62, 0x70, 0x66, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x50, 0x46, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x09, 0x62, 0x70, 0x66, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x4e, 0x0a, + 0x0e, 0x42, 0x50, 0x46, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6f, 0x70, 0x12, + 0x0e, 0x0a, 0x02, 0x6a, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6a, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x6a, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6a, 0x66, 0x12, + 0x0c, 0x0a, 0x01, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x01, 0x6b, 0x32, 0x8f, 0x19, + 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x5d, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x19, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x73, 0x12, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x43, 0x6f, + 0x70, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x70, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x43, 0x50, 0x55, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x50, 0x55, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x12, + 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x32, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x74, + 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, + 0x10, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, + 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0b, 0x88, 0x02, 0x01, 0xea, 0xbb, 0x2d, 0x04, 0x76, + 0x31, 0x2e, 0x37, 0x12, 0x63, 0x0a, 0x14, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x12, 0x24, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x0b, 0x88, 0x02, 0x01, 0xea, 0xbb, 0x2d, 0x04, 0x76, 0x31, 0x2e, 0x37, 0x12, 0x63, 0x0a, - 0x14, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x42, 0x79, 0x49, 0x44, 0x12, 0x24, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x15, 0x45, - 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, - 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, - 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, - 0x12, 0x3c, 0x0a, 0x0c, 0x45, 0x74, 0x63, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x66, - 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x40, - 0x0a, 0x09, 0x44, 0x69, 0x73, 0x6b, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, - 0x12, 0x3b, 0x0a, 0x07, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x76, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x6f, - 0x61, 0x64, 0x41, 0x76, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, - 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x45, 0x74, 0x63, 0x64, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x15, 0x45, 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, + 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x45, 0x74, 0x63, + 0x64, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x12, 0x3c, 0x0a, 0x0c, 0x45, 0x74, 0x63, 0x64, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x45, 0x74, 0x63, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x30, 0x01, 0x12, 0x47, 0x0a, 0x0d, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, + 0x0f, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x69, 0x73, 0x61, 0x72, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x51, 0x0a, 0x12, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x23, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x14, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, - 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, - 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x05, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, - 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x15, - 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, - 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x07, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x55, - 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, - 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x1b, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x44, 0x69, 0x73, 0x61, + 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x45, 0x74, + 0x63, 0x64, 0x44, 0x65, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, + 0x74, 0x63, 0x64, 0x44, 0x65, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x45, 0x74, 0x63, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x34, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x46, 0x69, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x44, 0x69, 0x73, 0x6b, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x6b, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x55, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x4c, 0x6f, + 0x61, 0x64, 0x41, 0x76, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x76, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, + 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x30, 0x01, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x64, 0x65, 0x72, 0x6f, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x74, - 0x61, 0x6c, 0x6f, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x72, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x12, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, + 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, + 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x36, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x55, 0x70, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x42, + 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x6f, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10722,8 +11440,8 @@ func file_machine_machine_proto_rawDescGZIP() []byte { return file_machine_machine_proto_rawDescData } -var file_machine_machine_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 137) +var file_machine_machine_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 147) var file_machine_machine_proto_goTypes = []interface{}{ (ApplyConfigurationRequest_Mode)(0), // 0: machine.ApplyConfigurationRequest.Mode (RebootRequest_Mode)(0), // 1: machine.RebootRequest.Mode @@ -10733,367 +11451,398 @@ var file_machine_machine_proto_goTypes = []interface{}{ (ServiceStateEvent_Action)(0), // 5: machine.ServiceStateEvent.Action (MachineStatusEvent_MachineStage)(0), // 6: machine.MachineStatusEvent.MachineStage (ListRequest_Type)(0), // 7: machine.ListRequest.Type - (MachineConfig_MachineType)(0), // 8: machine.MachineConfig.MachineType - (*ApplyConfigurationRequest)(nil), // 9: machine.ApplyConfigurationRequest - (*ApplyConfiguration)(nil), // 10: machine.ApplyConfiguration - (*ApplyConfigurationResponse)(nil), // 11: machine.ApplyConfigurationResponse - (*RebootRequest)(nil), // 12: machine.RebootRequest - (*Reboot)(nil), // 13: machine.Reboot - (*RebootResponse)(nil), // 14: machine.RebootResponse - (*BootstrapRequest)(nil), // 15: machine.BootstrapRequest - (*Bootstrap)(nil), // 16: machine.Bootstrap - (*BootstrapResponse)(nil), // 17: machine.BootstrapResponse - (*SequenceEvent)(nil), // 18: machine.SequenceEvent - (*PhaseEvent)(nil), // 19: machine.PhaseEvent - (*TaskEvent)(nil), // 20: machine.TaskEvent - (*ServiceStateEvent)(nil), // 21: machine.ServiceStateEvent - (*RestartEvent)(nil), // 22: machine.RestartEvent - (*ConfigLoadErrorEvent)(nil), // 23: machine.ConfigLoadErrorEvent - (*ConfigValidationErrorEvent)(nil), // 24: machine.ConfigValidationErrorEvent - (*AddressEvent)(nil), // 25: machine.AddressEvent - (*MachineStatusEvent)(nil), // 26: machine.MachineStatusEvent - (*EventsRequest)(nil), // 27: machine.EventsRequest - (*Event)(nil), // 28: machine.Event - (*ResetPartitionSpec)(nil), // 29: machine.ResetPartitionSpec - (*ResetRequest)(nil), // 30: machine.ResetRequest - (*Reset)(nil), // 31: machine.Reset - (*ResetResponse)(nil), // 32: machine.ResetResponse - (*Shutdown)(nil), // 33: machine.Shutdown - (*ShutdownRequest)(nil), // 34: machine.ShutdownRequest - (*ShutdownResponse)(nil), // 35: machine.ShutdownResponse - (*UpgradeRequest)(nil), // 36: machine.UpgradeRequest - (*Upgrade)(nil), // 37: machine.Upgrade - (*UpgradeResponse)(nil), // 38: machine.UpgradeResponse - (*ServiceList)(nil), // 39: machine.ServiceList - (*ServiceListResponse)(nil), // 40: machine.ServiceListResponse - (*ServiceInfo)(nil), // 41: machine.ServiceInfo - (*ServiceEvents)(nil), // 42: machine.ServiceEvents - (*ServiceEvent)(nil), // 43: machine.ServiceEvent - (*ServiceHealth)(nil), // 44: machine.ServiceHealth - (*ServiceStartRequest)(nil), // 45: machine.ServiceStartRequest - (*ServiceStart)(nil), // 46: machine.ServiceStart - (*ServiceStartResponse)(nil), // 47: machine.ServiceStartResponse - (*ServiceStopRequest)(nil), // 48: machine.ServiceStopRequest - (*ServiceStop)(nil), // 49: machine.ServiceStop - (*ServiceStopResponse)(nil), // 50: machine.ServiceStopResponse - (*ServiceRestartRequest)(nil), // 51: machine.ServiceRestartRequest - (*ServiceRestart)(nil), // 52: machine.ServiceRestart - (*ServiceRestartResponse)(nil), // 53: machine.ServiceRestartResponse - (*CopyRequest)(nil), // 54: machine.CopyRequest - (*ListRequest)(nil), // 55: machine.ListRequest - (*DiskUsageRequest)(nil), // 56: machine.DiskUsageRequest - (*FileInfo)(nil), // 57: machine.FileInfo - (*DiskUsageInfo)(nil), // 58: machine.DiskUsageInfo - (*Mounts)(nil), // 59: machine.Mounts - (*MountsResponse)(nil), // 60: machine.MountsResponse - (*MountStat)(nil), // 61: machine.MountStat - (*Version)(nil), // 62: machine.Version - (*VersionResponse)(nil), // 63: machine.VersionResponse - (*VersionInfo)(nil), // 64: machine.VersionInfo - (*PlatformInfo)(nil), // 65: machine.PlatformInfo - (*FeaturesInfo)(nil), // 66: machine.FeaturesInfo - (*LogsRequest)(nil), // 67: machine.LogsRequest - (*ReadRequest)(nil), // 68: machine.ReadRequest - (*RollbackRequest)(nil), // 69: machine.RollbackRequest - (*Rollback)(nil), // 70: machine.Rollback - (*RollbackResponse)(nil), // 71: machine.RollbackResponse - (*ContainersRequest)(nil), // 72: machine.ContainersRequest - (*ContainerInfo)(nil), // 73: machine.ContainerInfo - (*Container)(nil), // 74: machine.Container - (*ContainersResponse)(nil), // 75: machine.ContainersResponse - (*DmesgRequest)(nil), // 76: machine.DmesgRequest - (*ProcessesResponse)(nil), // 77: machine.ProcessesResponse - (*Process)(nil), // 78: machine.Process - (*ProcessInfo)(nil), // 79: machine.ProcessInfo - (*RestartRequest)(nil), // 80: machine.RestartRequest - (*Restart)(nil), // 81: machine.Restart - (*RestartResponse)(nil), // 82: machine.RestartResponse - (*StatsRequest)(nil), // 83: machine.StatsRequest - (*Stats)(nil), // 84: machine.Stats - (*StatsResponse)(nil), // 85: machine.StatsResponse - (*Stat)(nil), // 86: machine.Stat - (*Memory)(nil), // 87: machine.Memory - (*MemoryResponse)(nil), // 88: machine.MemoryResponse - (*MemInfo)(nil), // 89: machine.MemInfo - (*HostnameResponse)(nil), // 90: machine.HostnameResponse - (*Hostname)(nil), // 91: machine.Hostname - (*LoadAvgResponse)(nil), // 92: machine.LoadAvgResponse - (*LoadAvg)(nil), // 93: machine.LoadAvg - (*SystemStatResponse)(nil), // 94: machine.SystemStatResponse - (*SystemStat)(nil), // 95: machine.SystemStat - (*CPUStat)(nil), // 96: machine.CPUStat - (*SoftIRQStat)(nil), // 97: machine.SoftIRQStat - (*CPUInfoResponse)(nil), // 98: machine.CPUInfoResponse - (*CPUsInfo)(nil), // 99: machine.CPUsInfo - (*CPUInfo)(nil), // 100: machine.CPUInfo - (*NetworkDeviceStatsResponse)(nil), // 101: machine.NetworkDeviceStatsResponse - (*NetworkDeviceStats)(nil), // 102: machine.NetworkDeviceStats - (*NetDev)(nil), // 103: machine.NetDev - (*DiskStatsResponse)(nil), // 104: machine.DiskStatsResponse - (*DiskStats)(nil), // 105: machine.DiskStats - (*DiskStat)(nil), // 106: machine.DiskStat - (*EtcdLeaveClusterRequest)(nil), // 107: machine.EtcdLeaveClusterRequest - (*EtcdLeaveCluster)(nil), // 108: machine.EtcdLeaveCluster - (*EtcdLeaveClusterResponse)(nil), // 109: machine.EtcdLeaveClusterResponse - (*EtcdRemoveMemberRequest)(nil), // 110: machine.EtcdRemoveMemberRequest - (*EtcdRemoveMember)(nil), // 111: machine.EtcdRemoveMember - (*EtcdRemoveMemberResponse)(nil), // 112: machine.EtcdRemoveMemberResponse - (*EtcdRemoveMemberByIDRequest)(nil), // 113: machine.EtcdRemoveMemberByIDRequest - (*EtcdRemoveMemberByID)(nil), // 114: machine.EtcdRemoveMemberByID - (*EtcdRemoveMemberByIDResponse)(nil), // 115: machine.EtcdRemoveMemberByIDResponse - (*EtcdForfeitLeadershipRequest)(nil), // 116: machine.EtcdForfeitLeadershipRequest - (*EtcdForfeitLeadership)(nil), // 117: machine.EtcdForfeitLeadership - (*EtcdForfeitLeadershipResponse)(nil), // 118: machine.EtcdForfeitLeadershipResponse - (*EtcdMemberListRequest)(nil), // 119: machine.EtcdMemberListRequest - (*EtcdMember)(nil), // 120: machine.EtcdMember - (*EtcdMembers)(nil), // 121: machine.EtcdMembers - (*EtcdMemberListResponse)(nil), // 122: machine.EtcdMemberListResponse - (*EtcdSnapshotRequest)(nil), // 123: machine.EtcdSnapshotRequest - (*EtcdRecover)(nil), // 124: machine.EtcdRecover - (*EtcdRecoverResponse)(nil), // 125: machine.EtcdRecoverResponse - (*RouteConfig)(nil), // 126: machine.RouteConfig - (*DHCPOptionsConfig)(nil), // 127: machine.DHCPOptionsConfig - (*NetworkDeviceConfig)(nil), // 128: machine.NetworkDeviceConfig - (*NetworkConfig)(nil), // 129: machine.NetworkConfig - (*InstallConfig)(nil), // 130: machine.InstallConfig - (*MachineConfig)(nil), // 131: machine.MachineConfig - (*ControlPlaneConfig)(nil), // 132: machine.ControlPlaneConfig - (*CNIConfig)(nil), // 133: machine.CNIConfig - (*ClusterNetworkConfig)(nil), // 134: machine.ClusterNetworkConfig - (*ClusterConfig)(nil), // 135: machine.ClusterConfig - (*GenerateConfigurationRequest)(nil), // 136: machine.GenerateConfigurationRequest - (*GenerateConfiguration)(nil), // 137: machine.GenerateConfiguration - (*GenerateConfigurationResponse)(nil), // 138: machine.GenerateConfigurationResponse - (*GenerateClientConfigurationRequest)(nil), // 139: machine.GenerateClientConfigurationRequest - (*GenerateClientConfiguration)(nil), // 140: machine.GenerateClientConfiguration - (*GenerateClientConfigurationResponse)(nil), // 141: machine.GenerateClientConfigurationResponse - (*PacketCaptureRequest)(nil), // 142: machine.PacketCaptureRequest - (*BPFInstruction)(nil), // 143: machine.BPFInstruction - (*MachineStatusEvent_MachineStatus)(nil), // 144: machine.MachineStatusEvent.MachineStatus - (*MachineStatusEvent_MachineStatus_UnmetCondition)(nil), // 145: machine.MachineStatusEvent.MachineStatus.UnmetCondition - (*durationpb.Duration)(nil), // 146: google.protobuf.Duration - (*common.Metadata)(nil), // 147: common.Metadata - (*common.Error)(nil), // 148: common.Error - (*anypb.Any)(nil), // 149: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 150: google.protobuf.Timestamp - (common.ContainerDriver)(0), // 151: common.ContainerDriver - (*emptypb.Empty)(nil), // 152: google.protobuf.Empty - (*common.Data)(nil), // 153: common.Data + (EtcdMemberAlarm_AlarmType)(0), // 8: machine.EtcdMemberAlarm.AlarmType + (MachineConfig_MachineType)(0), // 9: machine.MachineConfig.MachineType + (*ApplyConfigurationRequest)(nil), // 10: machine.ApplyConfigurationRequest + (*ApplyConfiguration)(nil), // 11: machine.ApplyConfiguration + (*ApplyConfigurationResponse)(nil), // 12: machine.ApplyConfigurationResponse + (*RebootRequest)(nil), // 13: machine.RebootRequest + (*Reboot)(nil), // 14: machine.Reboot + (*RebootResponse)(nil), // 15: machine.RebootResponse + (*BootstrapRequest)(nil), // 16: machine.BootstrapRequest + (*Bootstrap)(nil), // 17: machine.Bootstrap + (*BootstrapResponse)(nil), // 18: machine.BootstrapResponse + (*SequenceEvent)(nil), // 19: machine.SequenceEvent + (*PhaseEvent)(nil), // 20: machine.PhaseEvent + (*TaskEvent)(nil), // 21: machine.TaskEvent + (*ServiceStateEvent)(nil), // 22: machine.ServiceStateEvent + (*RestartEvent)(nil), // 23: machine.RestartEvent + (*ConfigLoadErrorEvent)(nil), // 24: machine.ConfigLoadErrorEvent + (*ConfigValidationErrorEvent)(nil), // 25: machine.ConfigValidationErrorEvent + (*AddressEvent)(nil), // 26: machine.AddressEvent + (*MachineStatusEvent)(nil), // 27: machine.MachineStatusEvent + (*EventsRequest)(nil), // 28: machine.EventsRequest + (*Event)(nil), // 29: machine.Event + (*ResetPartitionSpec)(nil), // 30: machine.ResetPartitionSpec + (*ResetRequest)(nil), // 31: machine.ResetRequest + (*Reset)(nil), // 32: machine.Reset + (*ResetResponse)(nil), // 33: machine.ResetResponse + (*Shutdown)(nil), // 34: machine.Shutdown + (*ShutdownRequest)(nil), // 35: machine.ShutdownRequest + (*ShutdownResponse)(nil), // 36: machine.ShutdownResponse + (*UpgradeRequest)(nil), // 37: machine.UpgradeRequest + (*Upgrade)(nil), // 38: machine.Upgrade + (*UpgradeResponse)(nil), // 39: machine.UpgradeResponse + (*ServiceList)(nil), // 40: machine.ServiceList + (*ServiceListResponse)(nil), // 41: machine.ServiceListResponse + (*ServiceInfo)(nil), // 42: machine.ServiceInfo + (*ServiceEvents)(nil), // 43: machine.ServiceEvents + (*ServiceEvent)(nil), // 44: machine.ServiceEvent + (*ServiceHealth)(nil), // 45: machine.ServiceHealth + (*ServiceStartRequest)(nil), // 46: machine.ServiceStartRequest + (*ServiceStart)(nil), // 47: machine.ServiceStart + (*ServiceStartResponse)(nil), // 48: machine.ServiceStartResponse + (*ServiceStopRequest)(nil), // 49: machine.ServiceStopRequest + (*ServiceStop)(nil), // 50: machine.ServiceStop + (*ServiceStopResponse)(nil), // 51: machine.ServiceStopResponse + (*ServiceRestartRequest)(nil), // 52: machine.ServiceRestartRequest + (*ServiceRestart)(nil), // 53: machine.ServiceRestart + (*ServiceRestartResponse)(nil), // 54: machine.ServiceRestartResponse + (*CopyRequest)(nil), // 55: machine.CopyRequest + (*ListRequest)(nil), // 56: machine.ListRequest + (*DiskUsageRequest)(nil), // 57: machine.DiskUsageRequest + (*FileInfo)(nil), // 58: machine.FileInfo + (*DiskUsageInfo)(nil), // 59: machine.DiskUsageInfo + (*Mounts)(nil), // 60: machine.Mounts + (*MountsResponse)(nil), // 61: machine.MountsResponse + (*MountStat)(nil), // 62: machine.MountStat + (*Version)(nil), // 63: machine.Version + (*VersionResponse)(nil), // 64: machine.VersionResponse + (*VersionInfo)(nil), // 65: machine.VersionInfo + (*PlatformInfo)(nil), // 66: machine.PlatformInfo + (*FeaturesInfo)(nil), // 67: machine.FeaturesInfo + (*LogsRequest)(nil), // 68: machine.LogsRequest + (*ReadRequest)(nil), // 69: machine.ReadRequest + (*RollbackRequest)(nil), // 70: machine.RollbackRequest + (*Rollback)(nil), // 71: machine.Rollback + (*RollbackResponse)(nil), // 72: machine.RollbackResponse + (*ContainersRequest)(nil), // 73: machine.ContainersRequest + (*ContainerInfo)(nil), // 74: machine.ContainerInfo + (*Container)(nil), // 75: machine.Container + (*ContainersResponse)(nil), // 76: machine.ContainersResponse + (*DmesgRequest)(nil), // 77: machine.DmesgRequest + (*ProcessesResponse)(nil), // 78: machine.ProcessesResponse + (*Process)(nil), // 79: machine.Process + (*ProcessInfo)(nil), // 80: machine.ProcessInfo + (*RestartRequest)(nil), // 81: machine.RestartRequest + (*Restart)(nil), // 82: machine.Restart + (*RestartResponse)(nil), // 83: machine.RestartResponse + (*StatsRequest)(nil), // 84: machine.StatsRequest + (*Stats)(nil), // 85: machine.Stats + (*StatsResponse)(nil), // 86: machine.StatsResponse + (*Stat)(nil), // 87: machine.Stat + (*Memory)(nil), // 88: machine.Memory + (*MemoryResponse)(nil), // 89: machine.MemoryResponse + (*MemInfo)(nil), // 90: machine.MemInfo + (*HostnameResponse)(nil), // 91: machine.HostnameResponse + (*Hostname)(nil), // 92: machine.Hostname + (*LoadAvgResponse)(nil), // 93: machine.LoadAvgResponse + (*LoadAvg)(nil), // 94: machine.LoadAvg + (*SystemStatResponse)(nil), // 95: machine.SystemStatResponse + (*SystemStat)(nil), // 96: machine.SystemStat + (*CPUStat)(nil), // 97: machine.CPUStat + (*SoftIRQStat)(nil), // 98: machine.SoftIRQStat + (*CPUInfoResponse)(nil), // 99: machine.CPUInfoResponse + (*CPUsInfo)(nil), // 100: machine.CPUsInfo + (*CPUInfo)(nil), // 101: machine.CPUInfo + (*NetworkDeviceStatsResponse)(nil), // 102: machine.NetworkDeviceStatsResponse + (*NetworkDeviceStats)(nil), // 103: machine.NetworkDeviceStats + (*NetDev)(nil), // 104: machine.NetDev + (*DiskStatsResponse)(nil), // 105: machine.DiskStatsResponse + (*DiskStats)(nil), // 106: machine.DiskStats + (*DiskStat)(nil), // 107: machine.DiskStat + (*EtcdLeaveClusterRequest)(nil), // 108: machine.EtcdLeaveClusterRequest + (*EtcdLeaveCluster)(nil), // 109: machine.EtcdLeaveCluster + (*EtcdLeaveClusterResponse)(nil), // 110: machine.EtcdLeaveClusterResponse + (*EtcdRemoveMemberRequest)(nil), // 111: machine.EtcdRemoveMemberRequest + (*EtcdRemoveMember)(nil), // 112: machine.EtcdRemoveMember + (*EtcdRemoveMemberResponse)(nil), // 113: machine.EtcdRemoveMemberResponse + (*EtcdRemoveMemberByIDRequest)(nil), // 114: machine.EtcdRemoveMemberByIDRequest + (*EtcdRemoveMemberByID)(nil), // 115: machine.EtcdRemoveMemberByID + (*EtcdRemoveMemberByIDResponse)(nil), // 116: machine.EtcdRemoveMemberByIDResponse + (*EtcdForfeitLeadershipRequest)(nil), // 117: machine.EtcdForfeitLeadershipRequest + (*EtcdForfeitLeadership)(nil), // 118: machine.EtcdForfeitLeadership + (*EtcdForfeitLeadershipResponse)(nil), // 119: machine.EtcdForfeitLeadershipResponse + (*EtcdMemberListRequest)(nil), // 120: machine.EtcdMemberListRequest + (*EtcdMember)(nil), // 121: machine.EtcdMember + (*EtcdMembers)(nil), // 122: machine.EtcdMembers + (*EtcdMemberListResponse)(nil), // 123: machine.EtcdMemberListResponse + (*EtcdSnapshotRequest)(nil), // 124: machine.EtcdSnapshotRequest + (*EtcdRecover)(nil), // 125: machine.EtcdRecover + (*EtcdRecoverResponse)(nil), // 126: machine.EtcdRecoverResponse + (*EtcdAlarmListResponse)(nil), // 127: machine.EtcdAlarmListResponse + (*EtcdAlarm)(nil), // 128: machine.EtcdAlarm + (*EtcdMemberAlarm)(nil), // 129: machine.EtcdMemberAlarm + (*EtcdAlarmDisarmResponse)(nil), // 130: machine.EtcdAlarmDisarmResponse + (*EtcdAlarmDisarm)(nil), // 131: machine.EtcdAlarmDisarm + (*EtcdDefragmentResponse)(nil), // 132: machine.EtcdDefragmentResponse + (*EtcdDefragment)(nil), // 133: machine.EtcdDefragment + (*EtcdStatusResponse)(nil), // 134: machine.EtcdStatusResponse + (*EtcdStatus)(nil), // 135: machine.EtcdStatus + (*EtcdMemberStatus)(nil), // 136: machine.EtcdMemberStatus + (*RouteConfig)(nil), // 137: machine.RouteConfig + (*DHCPOptionsConfig)(nil), // 138: machine.DHCPOptionsConfig + (*NetworkDeviceConfig)(nil), // 139: machine.NetworkDeviceConfig + (*NetworkConfig)(nil), // 140: machine.NetworkConfig + (*InstallConfig)(nil), // 141: machine.InstallConfig + (*MachineConfig)(nil), // 142: machine.MachineConfig + (*ControlPlaneConfig)(nil), // 143: machine.ControlPlaneConfig + (*CNIConfig)(nil), // 144: machine.CNIConfig + (*ClusterNetworkConfig)(nil), // 145: machine.ClusterNetworkConfig + (*ClusterConfig)(nil), // 146: machine.ClusterConfig + (*GenerateConfigurationRequest)(nil), // 147: machine.GenerateConfigurationRequest + (*GenerateConfiguration)(nil), // 148: machine.GenerateConfiguration + (*GenerateConfigurationResponse)(nil), // 149: machine.GenerateConfigurationResponse + (*GenerateClientConfigurationRequest)(nil), // 150: machine.GenerateClientConfigurationRequest + (*GenerateClientConfiguration)(nil), // 151: machine.GenerateClientConfiguration + (*GenerateClientConfigurationResponse)(nil), // 152: machine.GenerateClientConfigurationResponse + (*PacketCaptureRequest)(nil), // 153: machine.PacketCaptureRequest + (*BPFInstruction)(nil), // 154: machine.BPFInstruction + (*MachineStatusEvent_MachineStatus)(nil), // 155: machine.MachineStatusEvent.MachineStatus + (*MachineStatusEvent_MachineStatus_UnmetCondition)(nil), // 156: machine.MachineStatusEvent.MachineStatus.UnmetCondition + (*durationpb.Duration)(nil), // 157: google.protobuf.Duration + (*common.Metadata)(nil), // 158: common.Metadata + (*common.Error)(nil), // 159: common.Error + (*anypb.Any)(nil), // 160: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 161: google.protobuf.Timestamp + (common.ContainerDriver)(0), // 162: common.ContainerDriver + (*emptypb.Empty)(nil), // 163: google.protobuf.Empty + (*common.Data)(nil), // 164: common.Data } var file_machine_machine_proto_depIdxs = []int32{ 0, // 0: machine.ApplyConfigurationRequest.mode:type_name -> machine.ApplyConfigurationRequest.Mode - 146, // 1: machine.ApplyConfigurationRequest.try_mode_timeout:type_name -> google.protobuf.Duration - 147, // 2: machine.ApplyConfiguration.metadata:type_name -> common.Metadata + 157, // 1: machine.ApplyConfigurationRequest.try_mode_timeout:type_name -> google.protobuf.Duration + 158, // 2: machine.ApplyConfiguration.metadata:type_name -> common.Metadata 0, // 3: machine.ApplyConfiguration.mode:type_name -> machine.ApplyConfigurationRequest.Mode - 10, // 4: machine.ApplyConfigurationResponse.messages:type_name -> machine.ApplyConfiguration + 11, // 4: machine.ApplyConfigurationResponse.messages:type_name -> machine.ApplyConfiguration 1, // 5: machine.RebootRequest.mode:type_name -> machine.RebootRequest.Mode - 147, // 6: machine.Reboot.metadata:type_name -> common.Metadata - 13, // 7: machine.RebootResponse.messages:type_name -> machine.Reboot - 147, // 8: machine.Bootstrap.metadata:type_name -> common.Metadata - 16, // 9: machine.BootstrapResponse.messages:type_name -> machine.Bootstrap + 158, // 6: machine.Reboot.metadata:type_name -> common.Metadata + 14, // 7: machine.RebootResponse.messages:type_name -> machine.Reboot + 158, // 8: machine.Bootstrap.metadata:type_name -> common.Metadata + 17, // 9: machine.BootstrapResponse.messages:type_name -> machine.Bootstrap 2, // 10: machine.SequenceEvent.action:type_name -> machine.SequenceEvent.Action - 148, // 11: machine.SequenceEvent.error:type_name -> common.Error + 159, // 11: machine.SequenceEvent.error:type_name -> common.Error 3, // 12: machine.PhaseEvent.action:type_name -> machine.PhaseEvent.Action 4, // 13: machine.TaskEvent.action:type_name -> machine.TaskEvent.Action 5, // 14: machine.ServiceStateEvent.action:type_name -> machine.ServiceStateEvent.Action - 44, // 15: machine.ServiceStateEvent.health:type_name -> machine.ServiceHealth + 45, // 15: machine.ServiceStateEvent.health:type_name -> machine.ServiceHealth 6, // 16: machine.MachineStatusEvent.stage:type_name -> machine.MachineStatusEvent.MachineStage - 144, // 17: machine.MachineStatusEvent.status:type_name -> machine.MachineStatusEvent.MachineStatus - 147, // 18: machine.Event.metadata:type_name -> common.Metadata - 149, // 19: machine.Event.data:type_name -> google.protobuf.Any - 29, // 20: machine.ResetRequest.system_partitions_to_wipe:type_name -> machine.ResetPartitionSpec - 147, // 21: machine.Reset.metadata:type_name -> common.Metadata - 31, // 22: machine.ResetResponse.messages:type_name -> machine.Reset - 147, // 23: machine.Shutdown.metadata:type_name -> common.Metadata - 33, // 24: machine.ShutdownResponse.messages:type_name -> machine.Shutdown - 147, // 25: machine.Upgrade.metadata:type_name -> common.Metadata - 37, // 26: machine.UpgradeResponse.messages:type_name -> machine.Upgrade - 147, // 27: machine.ServiceList.metadata:type_name -> common.Metadata - 41, // 28: machine.ServiceList.services:type_name -> machine.ServiceInfo - 39, // 29: machine.ServiceListResponse.messages:type_name -> machine.ServiceList - 42, // 30: machine.ServiceInfo.events:type_name -> machine.ServiceEvents - 44, // 31: machine.ServiceInfo.health:type_name -> machine.ServiceHealth - 43, // 32: machine.ServiceEvents.events:type_name -> machine.ServiceEvent - 150, // 33: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp - 150, // 34: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp - 147, // 35: machine.ServiceStart.metadata:type_name -> common.Metadata - 46, // 36: machine.ServiceStartResponse.messages:type_name -> machine.ServiceStart - 147, // 37: machine.ServiceStop.metadata:type_name -> common.Metadata - 49, // 38: machine.ServiceStopResponse.messages:type_name -> machine.ServiceStop - 147, // 39: machine.ServiceRestart.metadata:type_name -> common.Metadata - 52, // 40: machine.ServiceRestartResponse.messages:type_name -> machine.ServiceRestart + 155, // 17: machine.MachineStatusEvent.status:type_name -> machine.MachineStatusEvent.MachineStatus + 158, // 18: machine.Event.metadata:type_name -> common.Metadata + 160, // 19: machine.Event.data:type_name -> google.protobuf.Any + 30, // 20: machine.ResetRequest.system_partitions_to_wipe:type_name -> machine.ResetPartitionSpec + 158, // 21: machine.Reset.metadata:type_name -> common.Metadata + 32, // 22: machine.ResetResponse.messages:type_name -> machine.Reset + 158, // 23: machine.Shutdown.metadata:type_name -> common.Metadata + 34, // 24: machine.ShutdownResponse.messages:type_name -> machine.Shutdown + 158, // 25: machine.Upgrade.metadata:type_name -> common.Metadata + 38, // 26: machine.UpgradeResponse.messages:type_name -> machine.Upgrade + 158, // 27: machine.ServiceList.metadata:type_name -> common.Metadata + 42, // 28: machine.ServiceList.services:type_name -> machine.ServiceInfo + 40, // 29: machine.ServiceListResponse.messages:type_name -> machine.ServiceList + 43, // 30: machine.ServiceInfo.events:type_name -> machine.ServiceEvents + 45, // 31: machine.ServiceInfo.health:type_name -> machine.ServiceHealth + 44, // 32: machine.ServiceEvents.events:type_name -> machine.ServiceEvent + 161, // 33: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp + 161, // 34: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp + 158, // 35: machine.ServiceStart.metadata:type_name -> common.Metadata + 47, // 36: machine.ServiceStartResponse.messages:type_name -> machine.ServiceStart + 158, // 37: machine.ServiceStop.metadata:type_name -> common.Metadata + 50, // 38: machine.ServiceStopResponse.messages:type_name -> machine.ServiceStop + 158, // 39: machine.ServiceRestart.metadata:type_name -> common.Metadata + 53, // 40: machine.ServiceRestartResponse.messages:type_name -> machine.ServiceRestart 7, // 41: machine.ListRequest.types:type_name -> machine.ListRequest.Type - 147, // 42: machine.FileInfo.metadata:type_name -> common.Metadata - 147, // 43: machine.DiskUsageInfo.metadata:type_name -> common.Metadata - 147, // 44: machine.Mounts.metadata:type_name -> common.Metadata - 61, // 45: machine.Mounts.stats:type_name -> machine.MountStat - 59, // 46: machine.MountsResponse.messages:type_name -> machine.Mounts - 147, // 47: machine.Version.metadata:type_name -> common.Metadata - 64, // 48: machine.Version.version:type_name -> machine.VersionInfo - 65, // 49: machine.Version.platform:type_name -> machine.PlatformInfo - 66, // 50: machine.Version.features:type_name -> machine.FeaturesInfo - 62, // 51: machine.VersionResponse.messages:type_name -> machine.Version - 151, // 52: machine.LogsRequest.driver:type_name -> common.ContainerDriver - 147, // 53: machine.Rollback.metadata:type_name -> common.Metadata - 70, // 54: machine.RollbackResponse.messages:type_name -> machine.Rollback - 151, // 55: machine.ContainersRequest.driver:type_name -> common.ContainerDriver - 147, // 56: machine.Container.metadata:type_name -> common.Metadata - 73, // 57: machine.Container.containers:type_name -> machine.ContainerInfo - 74, // 58: machine.ContainersResponse.messages:type_name -> machine.Container - 78, // 59: machine.ProcessesResponse.messages:type_name -> machine.Process - 147, // 60: machine.Process.metadata:type_name -> common.Metadata - 79, // 61: machine.Process.processes:type_name -> machine.ProcessInfo - 151, // 62: machine.RestartRequest.driver:type_name -> common.ContainerDriver - 147, // 63: machine.Restart.metadata:type_name -> common.Metadata - 81, // 64: machine.RestartResponse.messages:type_name -> machine.Restart - 151, // 65: machine.StatsRequest.driver:type_name -> common.ContainerDriver - 147, // 66: machine.Stats.metadata:type_name -> common.Metadata - 86, // 67: machine.Stats.stats:type_name -> machine.Stat - 84, // 68: machine.StatsResponse.messages:type_name -> machine.Stats - 147, // 69: machine.Memory.metadata:type_name -> common.Metadata - 89, // 70: machine.Memory.meminfo:type_name -> machine.MemInfo - 87, // 71: machine.MemoryResponse.messages:type_name -> machine.Memory - 91, // 72: machine.HostnameResponse.messages:type_name -> machine.Hostname - 147, // 73: machine.Hostname.metadata:type_name -> common.Metadata - 93, // 74: machine.LoadAvgResponse.messages:type_name -> machine.LoadAvg - 147, // 75: machine.LoadAvg.metadata:type_name -> common.Metadata - 95, // 76: machine.SystemStatResponse.messages:type_name -> machine.SystemStat - 147, // 77: machine.SystemStat.metadata:type_name -> common.Metadata - 96, // 78: machine.SystemStat.cpu_total:type_name -> machine.CPUStat - 96, // 79: machine.SystemStat.cpu:type_name -> machine.CPUStat - 97, // 80: machine.SystemStat.soft_irq:type_name -> machine.SoftIRQStat - 99, // 81: machine.CPUInfoResponse.messages:type_name -> machine.CPUsInfo - 147, // 82: machine.CPUsInfo.metadata:type_name -> common.Metadata - 100, // 83: machine.CPUsInfo.cpu_info:type_name -> machine.CPUInfo - 102, // 84: machine.NetworkDeviceStatsResponse.messages:type_name -> machine.NetworkDeviceStats - 147, // 85: machine.NetworkDeviceStats.metadata:type_name -> common.Metadata - 103, // 86: machine.NetworkDeviceStats.total:type_name -> machine.NetDev - 103, // 87: machine.NetworkDeviceStats.devices:type_name -> machine.NetDev - 105, // 88: machine.DiskStatsResponse.messages:type_name -> machine.DiskStats - 147, // 89: machine.DiskStats.metadata:type_name -> common.Metadata - 106, // 90: machine.DiskStats.total:type_name -> machine.DiskStat - 106, // 91: machine.DiskStats.devices:type_name -> machine.DiskStat - 147, // 92: machine.EtcdLeaveCluster.metadata:type_name -> common.Metadata - 108, // 93: machine.EtcdLeaveClusterResponse.messages:type_name -> machine.EtcdLeaveCluster - 147, // 94: machine.EtcdRemoveMember.metadata:type_name -> common.Metadata - 111, // 95: machine.EtcdRemoveMemberResponse.messages:type_name -> machine.EtcdRemoveMember - 147, // 96: machine.EtcdRemoveMemberByID.metadata:type_name -> common.Metadata - 114, // 97: machine.EtcdRemoveMemberByIDResponse.messages:type_name -> machine.EtcdRemoveMemberByID - 147, // 98: machine.EtcdForfeitLeadership.metadata:type_name -> common.Metadata - 117, // 99: machine.EtcdForfeitLeadershipResponse.messages:type_name -> machine.EtcdForfeitLeadership - 147, // 100: machine.EtcdMembers.metadata:type_name -> common.Metadata - 120, // 101: machine.EtcdMembers.members:type_name -> machine.EtcdMember - 121, // 102: machine.EtcdMemberListResponse.messages:type_name -> machine.EtcdMembers - 147, // 103: machine.EtcdRecover.metadata:type_name -> common.Metadata - 124, // 104: machine.EtcdRecoverResponse.messages:type_name -> machine.EtcdRecover - 127, // 105: machine.NetworkDeviceConfig.dhcp_options:type_name -> machine.DHCPOptionsConfig - 126, // 106: machine.NetworkDeviceConfig.routes:type_name -> machine.RouteConfig - 128, // 107: machine.NetworkConfig.interfaces:type_name -> machine.NetworkDeviceConfig - 8, // 108: machine.MachineConfig.type:type_name -> machine.MachineConfig.MachineType - 130, // 109: machine.MachineConfig.install_config:type_name -> machine.InstallConfig - 129, // 110: machine.MachineConfig.network_config:type_name -> machine.NetworkConfig - 133, // 111: machine.ClusterNetworkConfig.cni_config:type_name -> machine.CNIConfig - 132, // 112: machine.ClusterConfig.control_plane:type_name -> machine.ControlPlaneConfig - 134, // 113: machine.ClusterConfig.cluster_network:type_name -> machine.ClusterNetworkConfig - 135, // 114: machine.GenerateConfigurationRequest.cluster_config:type_name -> machine.ClusterConfig - 131, // 115: machine.GenerateConfigurationRequest.machine_config:type_name -> machine.MachineConfig - 150, // 116: machine.GenerateConfigurationRequest.override_time:type_name -> google.protobuf.Timestamp - 147, // 117: machine.GenerateConfiguration.metadata:type_name -> common.Metadata - 137, // 118: machine.GenerateConfigurationResponse.messages:type_name -> machine.GenerateConfiguration - 146, // 119: machine.GenerateClientConfigurationRequest.crt_ttl:type_name -> google.protobuf.Duration - 147, // 120: machine.GenerateClientConfiguration.metadata:type_name -> common.Metadata - 140, // 121: machine.GenerateClientConfigurationResponse.messages:type_name -> machine.GenerateClientConfiguration - 143, // 122: machine.PacketCaptureRequest.bpf_filter:type_name -> machine.BPFInstruction - 145, // 123: machine.MachineStatusEvent.MachineStatus.unmet_conditions:type_name -> machine.MachineStatusEvent.MachineStatus.UnmetCondition - 9, // 124: machine.MachineService.ApplyConfiguration:input_type -> machine.ApplyConfigurationRequest - 15, // 125: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest - 72, // 126: machine.MachineService.Containers:input_type -> machine.ContainersRequest - 54, // 127: machine.MachineService.Copy:input_type -> machine.CopyRequest - 152, // 128: machine.MachineService.CPUInfo:input_type -> google.protobuf.Empty - 152, // 129: machine.MachineService.DiskStats:input_type -> google.protobuf.Empty - 76, // 130: machine.MachineService.Dmesg:input_type -> machine.DmesgRequest - 27, // 131: machine.MachineService.Events:input_type -> machine.EventsRequest - 119, // 132: machine.MachineService.EtcdMemberList:input_type -> machine.EtcdMemberListRequest - 110, // 133: machine.MachineService.EtcdRemoveMember:input_type -> machine.EtcdRemoveMemberRequest - 113, // 134: machine.MachineService.EtcdRemoveMemberByID:input_type -> machine.EtcdRemoveMemberByIDRequest - 107, // 135: machine.MachineService.EtcdLeaveCluster:input_type -> machine.EtcdLeaveClusterRequest - 116, // 136: machine.MachineService.EtcdForfeitLeadership:input_type -> machine.EtcdForfeitLeadershipRequest - 153, // 137: machine.MachineService.EtcdRecover:input_type -> common.Data - 123, // 138: machine.MachineService.EtcdSnapshot:input_type -> machine.EtcdSnapshotRequest - 136, // 139: machine.MachineService.GenerateConfiguration:input_type -> machine.GenerateConfigurationRequest - 152, // 140: machine.MachineService.Hostname:input_type -> google.protobuf.Empty - 152, // 141: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty - 55, // 142: machine.MachineService.List:input_type -> machine.ListRequest - 56, // 143: machine.MachineService.DiskUsage:input_type -> machine.DiskUsageRequest - 152, // 144: machine.MachineService.LoadAvg:input_type -> google.protobuf.Empty - 67, // 145: machine.MachineService.Logs:input_type -> machine.LogsRequest - 152, // 146: machine.MachineService.Memory:input_type -> google.protobuf.Empty - 152, // 147: machine.MachineService.Mounts:input_type -> google.protobuf.Empty - 152, // 148: machine.MachineService.NetworkDeviceStats:input_type -> google.protobuf.Empty - 152, // 149: machine.MachineService.Processes:input_type -> google.protobuf.Empty - 68, // 150: machine.MachineService.Read:input_type -> machine.ReadRequest - 12, // 151: machine.MachineService.Reboot:input_type -> machine.RebootRequest - 80, // 152: machine.MachineService.Restart:input_type -> machine.RestartRequest - 69, // 153: machine.MachineService.Rollback:input_type -> machine.RollbackRequest - 30, // 154: machine.MachineService.Reset:input_type -> machine.ResetRequest - 152, // 155: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty - 51, // 156: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest - 45, // 157: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest - 48, // 158: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest - 34, // 159: machine.MachineService.Shutdown:input_type -> machine.ShutdownRequest - 83, // 160: machine.MachineService.Stats:input_type -> machine.StatsRequest - 152, // 161: machine.MachineService.SystemStat:input_type -> google.protobuf.Empty - 36, // 162: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest - 152, // 163: machine.MachineService.Version:input_type -> google.protobuf.Empty - 139, // 164: machine.MachineService.GenerateClientConfiguration:input_type -> machine.GenerateClientConfigurationRequest - 142, // 165: machine.MachineService.PacketCapture:input_type -> machine.PacketCaptureRequest - 11, // 166: machine.MachineService.ApplyConfiguration:output_type -> machine.ApplyConfigurationResponse - 17, // 167: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse - 75, // 168: machine.MachineService.Containers:output_type -> machine.ContainersResponse - 153, // 169: machine.MachineService.Copy:output_type -> common.Data - 98, // 170: machine.MachineService.CPUInfo:output_type -> machine.CPUInfoResponse - 104, // 171: machine.MachineService.DiskStats:output_type -> machine.DiskStatsResponse - 153, // 172: machine.MachineService.Dmesg:output_type -> common.Data - 28, // 173: machine.MachineService.Events:output_type -> machine.Event - 122, // 174: machine.MachineService.EtcdMemberList:output_type -> machine.EtcdMemberListResponse - 112, // 175: machine.MachineService.EtcdRemoveMember:output_type -> machine.EtcdRemoveMemberResponse - 115, // 176: machine.MachineService.EtcdRemoveMemberByID:output_type -> machine.EtcdRemoveMemberByIDResponse - 109, // 177: machine.MachineService.EtcdLeaveCluster:output_type -> machine.EtcdLeaveClusterResponse - 118, // 178: machine.MachineService.EtcdForfeitLeadership:output_type -> machine.EtcdForfeitLeadershipResponse - 125, // 179: machine.MachineService.EtcdRecover:output_type -> machine.EtcdRecoverResponse - 153, // 180: machine.MachineService.EtcdSnapshot:output_type -> common.Data - 138, // 181: machine.MachineService.GenerateConfiguration:output_type -> machine.GenerateConfigurationResponse - 90, // 182: machine.MachineService.Hostname:output_type -> machine.HostnameResponse - 153, // 183: machine.MachineService.Kubeconfig:output_type -> common.Data - 57, // 184: machine.MachineService.List:output_type -> machine.FileInfo - 58, // 185: machine.MachineService.DiskUsage:output_type -> machine.DiskUsageInfo - 92, // 186: machine.MachineService.LoadAvg:output_type -> machine.LoadAvgResponse - 153, // 187: machine.MachineService.Logs:output_type -> common.Data - 88, // 188: machine.MachineService.Memory:output_type -> machine.MemoryResponse - 60, // 189: machine.MachineService.Mounts:output_type -> machine.MountsResponse - 101, // 190: machine.MachineService.NetworkDeviceStats:output_type -> machine.NetworkDeviceStatsResponse - 77, // 191: machine.MachineService.Processes:output_type -> machine.ProcessesResponse - 153, // 192: machine.MachineService.Read:output_type -> common.Data - 14, // 193: machine.MachineService.Reboot:output_type -> machine.RebootResponse - 82, // 194: machine.MachineService.Restart:output_type -> machine.RestartResponse - 71, // 195: machine.MachineService.Rollback:output_type -> machine.RollbackResponse - 32, // 196: machine.MachineService.Reset:output_type -> machine.ResetResponse - 40, // 197: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse - 53, // 198: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse - 47, // 199: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse - 50, // 200: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse - 35, // 201: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse - 85, // 202: machine.MachineService.Stats:output_type -> machine.StatsResponse - 94, // 203: machine.MachineService.SystemStat:output_type -> machine.SystemStatResponse - 38, // 204: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse - 63, // 205: machine.MachineService.Version:output_type -> machine.VersionResponse - 141, // 206: machine.MachineService.GenerateClientConfiguration:output_type -> machine.GenerateClientConfigurationResponse - 153, // 207: machine.MachineService.PacketCapture:output_type -> common.Data - 166, // [166:208] is the sub-list for method output_type - 124, // [124:166] is the sub-list for method input_type - 124, // [124:124] is the sub-list for extension type_name - 124, // [124:124] is the sub-list for extension extendee - 0, // [0:124] is the sub-list for field type_name + 158, // 42: machine.FileInfo.metadata:type_name -> common.Metadata + 158, // 43: machine.DiskUsageInfo.metadata:type_name -> common.Metadata + 158, // 44: machine.Mounts.metadata:type_name -> common.Metadata + 62, // 45: machine.Mounts.stats:type_name -> machine.MountStat + 60, // 46: machine.MountsResponse.messages:type_name -> machine.Mounts + 158, // 47: machine.Version.metadata:type_name -> common.Metadata + 65, // 48: machine.Version.version:type_name -> machine.VersionInfo + 66, // 49: machine.Version.platform:type_name -> machine.PlatformInfo + 67, // 50: machine.Version.features:type_name -> machine.FeaturesInfo + 63, // 51: machine.VersionResponse.messages:type_name -> machine.Version + 162, // 52: machine.LogsRequest.driver:type_name -> common.ContainerDriver + 158, // 53: machine.Rollback.metadata:type_name -> common.Metadata + 71, // 54: machine.RollbackResponse.messages:type_name -> machine.Rollback + 162, // 55: machine.ContainersRequest.driver:type_name -> common.ContainerDriver + 158, // 56: machine.Container.metadata:type_name -> common.Metadata + 74, // 57: machine.Container.containers:type_name -> machine.ContainerInfo + 75, // 58: machine.ContainersResponse.messages:type_name -> machine.Container + 79, // 59: machine.ProcessesResponse.messages:type_name -> machine.Process + 158, // 60: machine.Process.metadata:type_name -> common.Metadata + 80, // 61: machine.Process.processes:type_name -> machine.ProcessInfo + 162, // 62: machine.RestartRequest.driver:type_name -> common.ContainerDriver + 158, // 63: machine.Restart.metadata:type_name -> common.Metadata + 82, // 64: machine.RestartResponse.messages:type_name -> machine.Restart + 162, // 65: machine.StatsRequest.driver:type_name -> common.ContainerDriver + 158, // 66: machine.Stats.metadata:type_name -> common.Metadata + 87, // 67: machine.Stats.stats:type_name -> machine.Stat + 85, // 68: machine.StatsResponse.messages:type_name -> machine.Stats + 158, // 69: machine.Memory.metadata:type_name -> common.Metadata + 90, // 70: machine.Memory.meminfo:type_name -> machine.MemInfo + 88, // 71: machine.MemoryResponse.messages:type_name -> machine.Memory + 92, // 72: machine.HostnameResponse.messages:type_name -> machine.Hostname + 158, // 73: machine.Hostname.metadata:type_name -> common.Metadata + 94, // 74: machine.LoadAvgResponse.messages:type_name -> machine.LoadAvg + 158, // 75: machine.LoadAvg.metadata:type_name -> common.Metadata + 96, // 76: machine.SystemStatResponse.messages:type_name -> machine.SystemStat + 158, // 77: machine.SystemStat.metadata:type_name -> common.Metadata + 97, // 78: machine.SystemStat.cpu_total:type_name -> machine.CPUStat + 97, // 79: machine.SystemStat.cpu:type_name -> machine.CPUStat + 98, // 80: machine.SystemStat.soft_irq:type_name -> machine.SoftIRQStat + 100, // 81: machine.CPUInfoResponse.messages:type_name -> machine.CPUsInfo + 158, // 82: machine.CPUsInfo.metadata:type_name -> common.Metadata + 101, // 83: machine.CPUsInfo.cpu_info:type_name -> machine.CPUInfo + 103, // 84: machine.NetworkDeviceStatsResponse.messages:type_name -> machine.NetworkDeviceStats + 158, // 85: machine.NetworkDeviceStats.metadata:type_name -> common.Metadata + 104, // 86: machine.NetworkDeviceStats.total:type_name -> machine.NetDev + 104, // 87: machine.NetworkDeviceStats.devices:type_name -> machine.NetDev + 106, // 88: machine.DiskStatsResponse.messages:type_name -> machine.DiskStats + 158, // 89: machine.DiskStats.metadata:type_name -> common.Metadata + 107, // 90: machine.DiskStats.total:type_name -> machine.DiskStat + 107, // 91: machine.DiskStats.devices:type_name -> machine.DiskStat + 158, // 92: machine.EtcdLeaveCluster.metadata:type_name -> common.Metadata + 109, // 93: machine.EtcdLeaveClusterResponse.messages:type_name -> machine.EtcdLeaveCluster + 158, // 94: machine.EtcdRemoveMember.metadata:type_name -> common.Metadata + 112, // 95: machine.EtcdRemoveMemberResponse.messages:type_name -> machine.EtcdRemoveMember + 158, // 96: machine.EtcdRemoveMemberByID.metadata:type_name -> common.Metadata + 115, // 97: machine.EtcdRemoveMemberByIDResponse.messages:type_name -> machine.EtcdRemoveMemberByID + 158, // 98: machine.EtcdForfeitLeadership.metadata:type_name -> common.Metadata + 118, // 99: machine.EtcdForfeitLeadershipResponse.messages:type_name -> machine.EtcdForfeitLeadership + 158, // 100: machine.EtcdMembers.metadata:type_name -> common.Metadata + 121, // 101: machine.EtcdMembers.members:type_name -> machine.EtcdMember + 122, // 102: machine.EtcdMemberListResponse.messages:type_name -> machine.EtcdMembers + 158, // 103: machine.EtcdRecover.metadata:type_name -> common.Metadata + 125, // 104: machine.EtcdRecoverResponse.messages:type_name -> machine.EtcdRecover + 128, // 105: machine.EtcdAlarmListResponse.messages:type_name -> machine.EtcdAlarm + 158, // 106: machine.EtcdAlarm.metadata:type_name -> common.Metadata + 129, // 107: machine.EtcdAlarm.member_alarms:type_name -> machine.EtcdMemberAlarm + 8, // 108: machine.EtcdMemberAlarm.alarm:type_name -> machine.EtcdMemberAlarm.AlarmType + 131, // 109: machine.EtcdAlarmDisarmResponse.messages:type_name -> machine.EtcdAlarmDisarm + 158, // 110: machine.EtcdAlarmDisarm.metadata:type_name -> common.Metadata + 129, // 111: machine.EtcdAlarmDisarm.member_alarms:type_name -> machine.EtcdMemberAlarm + 133, // 112: machine.EtcdDefragmentResponse.messages:type_name -> machine.EtcdDefragment + 158, // 113: machine.EtcdDefragment.metadata:type_name -> common.Metadata + 135, // 114: machine.EtcdStatusResponse.messages:type_name -> machine.EtcdStatus + 158, // 115: machine.EtcdStatus.metadata:type_name -> common.Metadata + 136, // 116: machine.EtcdStatus.member_status:type_name -> machine.EtcdMemberStatus + 138, // 117: machine.NetworkDeviceConfig.dhcp_options:type_name -> machine.DHCPOptionsConfig + 137, // 118: machine.NetworkDeviceConfig.routes:type_name -> machine.RouteConfig + 139, // 119: machine.NetworkConfig.interfaces:type_name -> machine.NetworkDeviceConfig + 9, // 120: machine.MachineConfig.type:type_name -> machine.MachineConfig.MachineType + 141, // 121: machine.MachineConfig.install_config:type_name -> machine.InstallConfig + 140, // 122: machine.MachineConfig.network_config:type_name -> machine.NetworkConfig + 144, // 123: machine.ClusterNetworkConfig.cni_config:type_name -> machine.CNIConfig + 143, // 124: machine.ClusterConfig.control_plane:type_name -> machine.ControlPlaneConfig + 145, // 125: machine.ClusterConfig.cluster_network:type_name -> machine.ClusterNetworkConfig + 146, // 126: machine.GenerateConfigurationRequest.cluster_config:type_name -> machine.ClusterConfig + 142, // 127: machine.GenerateConfigurationRequest.machine_config:type_name -> machine.MachineConfig + 161, // 128: machine.GenerateConfigurationRequest.override_time:type_name -> google.protobuf.Timestamp + 158, // 129: machine.GenerateConfiguration.metadata:type_name -> common.Metadata + 148, // 130: machine.GenerateConfigurationResponse.messages:type_name -> machine.GenerateConfiguration + 157, // 131: machine.GenerateClientConfigurationRequest.crt_ttl:type_name -> google.protobuf.Duration + 158, // 132: machine.GenerateClientConfiguration.metadata:type_name -> common.Metadata + 151, // 133: machine.GenerateClientConfigurationResponse.messages:type_name -> machine.GenerateClientConfiguration + 154, // 134: machine.PacketCaptureRequest.bpf_filter:type_name -> machine.BPFInstruction + 156, // 135: machine.MachineStatusEvent.MachineStatus.unmet_conditions:type_name -> machine.MachineStatusEvent.MachineStatus.UnmetCondition + 10, // 136: machine.MachineService.ApplyConfiguration:input_type -> machine.ApplyConfigurationRequest + 16, // 137: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest + 73, // 138: machine.MachineService.Containers:input_type -> machine.ContainersRequest + 55, // 139: machine.MachineService.Copy:input_type -> machine.CopyRequest + 163, // 140: machine.MachineService.CPUInfo:input_type -> google.protobuf.Empty + 163, // 141: machine.MachineService.DiskStats:input_type -> google.protobuf.Empty + 77, // 142: machine.MachineService.Dmesg:input_type -> machine.DmesgRequest + 28, // 143: machine.MachineService.Events:input_type -> machine.EventsRequest + 120, // 144: machine.MachineService.EtcdMemberList:input_type -> machine.EtcdMemberListRequest + 111, // 145: machine.MachineService.EtcdRemoveMember:input_type -> machine.EtcdRemoveMemberRequest + 114, // 146: machine.MachineService.EtcdRemoveMemberByID:input_type -> machine.EtcdRemoveMemberByIDRequest + 108, // 147: machine.MachineService.EtcdLeaveCluster:input_type -> machine.EtcdLeaveClusterRequest + 117, // 148: machine.MachineService.EtcdForfeitLeadership:input_type -> machine.EtcdForfeitLeadershipRequest + 164, // 149: machine.MachineService.EtcdRecover:input_type -> common.Data + 124, // 150: machine.MachineService.EtcdSnapshot:input_type -> machine.EtcdSnapshotRequest + 163, // 151: machine.MachineService.EtcdAlarmList:input_type -> google.protobuf.Empty + 163, // 152: machine.MachineService.EtcdAlarmDisarm:input_type -> google.protobuf.Empty + 163, // 153: machine.MachineService.EtcdDefragment:input_type -> google.protobuf.Empty + 163, // 154: machine.MachineService.EtcdStatus:input_type -> google.protobuf.Empty + 147, // 155: machine.MachineService.GenerateConfiguration:input_type -> machine.GenerateConfigurationRequest + 163, // 156: machine.MachineService.Hostname:input_type -> google.protobuf.Empty + 163, // 157: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty + 56, // 158: machine.MachineService.List:input_type -> machine.ListRequest + 57, // 159: machine.MachineService.DiskUsage:input_type -> machine.DiskUsageRequest + 163, // 160: machine.MachineService.LoadAvg:input_type -> google.protobuf.Empty + 68, // 161: machine.MachineService.Logs:input_type -> machine.LogsRequest + 163, // 162: machine.MachineService.Memory:input_type -> google.protobuf.Empty + 163, // 163: machine.MachineService.Mounts:input_type -> google.protobuf.Empty + 163, // 164: machine.MachineService.NetworkDeviceStats:input_type -> google.protobuf.Empty + 163, // 165: machine.MachineService.Processes:input_type -> google.protobuf.Empty + 69, // 166: machine.MachineService.Read:input_type -> machine.ReadRequest + 13, // 167: machine.MachineService.Reboot:input_type -> machine.RebootRequest + 81, // 168: machine.MachineService.Restart:input_type -> machine.RestartRequest + 70, // 169: machine.MachineService.Rollback:input_type -> machine.RollbackRequest + 31, // 170: machine.MachineService.Reset:input_type -> machine.ResetRequest + 163, // 171: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty + 52, // 172: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest + 46, // 173: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest + 49, // 174: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest + 35, // 175: machine.MachineService.Shutdown:input_type -> machine.ShutdownRequest + 84, // 176: machine.MachineService.Stats:input_type -> machine.StatsRequest + 163, // 177: machine.MachineService.SystemStat:input_type -> google.protobuf.Empty + 37, // 178: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest + 163, // 179: machine.MachineService.Version:input_type -> google.protobuf.Empty + 150, // 180: machine.MachineService.GenerateClientConfiguration:input_type -> machine.GenerateClientConfigurationRequest + 153, // 181: machine.MachineService.PacketCapture:input_type -> machine.PacketCaptureRequest + 12, // 182: machine.MachineService.ApplyConfiguration:output_type -> machine.ApplyConfigurationResponse + 18, // 183: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse + 76, // 184: machine.MachineService.Containers:output_type -> machine.ContainersResponse + 164, // 185: machine.MachineService.Copy:output_type -> common.Data + 99, // 186: machine.MachineService.CPUInfo:output_type -> machine.CPUInfoResponse + 105, // 187: machine.MachineService.DiskStats:output_type -> machine.DiskStatsResponse + 164, // 188: machine.MachineService.Dmesg:output_type -> common.Data + 29, // 189: machine.MachineService.Events:output_type -> machine.Event + 123, // 190: machine.MachineService.EtcdMemberList:output_type -> machine.EtcdMemberListResponse + 113, // 191: machine.MachineService.EtcdRemoveMember:output_type -> machine.EtcdRemoveMemberResponse + 116, // 192: machine.MachineService.EtcdRemoveMemberByID:output_type -> machine.EtcdRemoveMemberByIDResponse + 110, // 193: machine.MachineService.EtcdLeaveCluster:output_type -> machine.EtcdLeaveClusterResponse + 119, // 194: machine.MachineService.EtcdForfeitLeadership:output_type -> machine.EtcdForfeitLeadershipResponse + 126, // 195: machine.MachineService.EtcdRecover:output_type -> machine.EtcdRecoverResponse + 164, // 196: machine.MachineService.EtcdSnapshot:output_type -> common.Data + 127, // 197: machine.MachineService.EtcdAlarmList:output_type -> machine.EtcdAlarmListResponse + 130, // 198: machine.MachineService.EtcdAlarmDisarm:output_type -> machine.EtcdAlarmDisarmResponse + 132, // 199: machine.MachineService.EtcdDefragment:output_type -> machine.EtcdDefragmentResponse + 134, // 200: machine.MachineService.EtcdStatus:output_type -> machine.EtcdStatusResponse + 149, // 201: machine.MachineService.GenerateConfiguration:output_type -> machine.GenerateConfigurationResponse + 91, // 202: machine.MachineService.Hostname:output_type -> machine.HostnameResponse + 164, // 203: machine.MachineService.Kubeconfig:output_type -> common.Data + 58, // 204: machine.MachineService.List:output_type -> machine.FileInfo + 59, // 205: machine.MachineService.DiskUsage:output_type -> machine.DiskUsageInfo + 93, // 206: machine.MachineService.LoadAvg:output_type -> machine.LoadAvgResponse + 164, // 207: machine.MachineService.Logs:output_type -> common.Data + 89, // 208: machine.MachineService.Memory:output_type -> machine.MemoryResponse + 61, // 209: machine.MachineService.Mounts:output_type -> machine.MountsResponse + 102, // 210: machine.MachineService.NetworkDeviceStats:output_type -> machine.NetworkDeviceStatsResponse + 78, // 211: machine.MachineService.Processes:output_type -> machine.ProcessesResponse + 164, // 212: machine.MachineService.Read:output_type -> common.Data + 15, // 213: machine.MachineService.Reboot:output_type -> machine.RebootResponse + 83, // 214: machine.MachineService.Restart:output_type -> machine.RestartResponse + 72, // 215: machine.MachineService.Rollback:output_type -> machine.RollbackResponse + 33, // 216: machine.MachineService.Reset:output_type -> machine.ResetResponse + 41, // 217: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse + 54, // 218: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse + 48, // 219: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse + 51, // 220: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse + 36, // 221: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse + 86, // 222: machine.MachineService.Stats:output_type -> machine.StatsResponse + 95, // 223: machine.MachineService.SystemStat:output_type -> machine.SystemStatResponse + 39, // 224: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse + 64, // 225: machine.MachineService.Version:output_type -> machine.VersionResponse + 152, // 226: machine.MachineService.GenerateClientConfiguration:output_type -> machine.GenerateClientConfigurationResponse + 164, // 227: machine.MachineService.PacketCapture:output_type -> common.Data + 182, // [182:228] is the sub-list for method output_type + 136, // [136:182] is the sub-list for method input_type + 136, // [136:136] is the sub-list for extension type_name + 136, // [136:136] is the sub-list for extension extendee + 0, // [0:136] is the sub-list for field type_name } func init() { file_machine_machine_proto_init() } @@ -12507,7 +13256,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RouteConfig); i { + switch v := v.(*EtcdAlarmListResponse); i { case 0: return &v.state case 1: @@ -12519,7 +13268,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DHCPOptionsConfig); i { + switch v := v.(*EtcdAlarm); i { case 0: return &v.state case 1: @@ -12531,7 +13280,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetworkDeviceConfig); i { + switch v := v.(*EtcdMemberAlarm); i { case 0: return &v.state case 1: @@ -12543,7 +13292,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetworkConfig); i { + switch v := v.(*EtcdAlarmDisarmResponse); i { case 0: return &v.state case 1: @@ -12555,7 +13304,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstallConfig); i { + switch v := v.(*EtcdAlarmDisarm); i { case 0: return &v.state case 1: @@ -12567,7 +13316,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MachineConfig); i { + switch v := v.(*EtcdDefragmentResponse); i { case 0: return &v.state case 1: @@ -12579,7 +13328,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ControlPlaneConfig); i { + switch v := v.(*EtcdDefragment); i { case 0: return &v.state case 1: @@ -12591,7 +13340,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CNIConfig); i { + switch v := v.(*EtcdStatusResponse); i { case 0: return &v.state case 1: @@ -12603,7 +13352,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterNetworkConfig); i { + switch v := v.(*EtcdStatus); i { case 0: return &v.state case 1: @@ -12615,7 +13364,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterConfig); i { + switch v := v.(*EtcdMemberStatus); i { case 0: return &v.state case 1: @@ -12627,7 +13376,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateConfigurationRequest); i { + switch v := v.(*RouteConfig); i { case 0: return &v.state case 1: @@ -12639,7 +13388,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateConfiguration); i { + switch v := v.(*DHCPOptionsConfig); i { case 0: return &v.state case 1: @@ -12651,7 +13400,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateConfigurationResponse); i { + switch v := v.(*NetworkDeviceConfig); i { case 0: return &v.state case 1: @@ -12663,7 +13412,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateClientConfigurationRequest); i { + switch v := v.(*NetworkConfig); i { case 0: return &v.state case 1: @@ -12675,7 +13424,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateClientConfiguration); i { + switch v := v.(*InstallConfig); i { case 0: return &v.state case 1: @@ -12687,7 +13436,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateClientConfigurationResponse); i { + switch v := v.(*MachineConfig); i { case 0: return &v.state case 1: @@ -12699,7 +13448,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PacketCaptureRequest); i { + switch v := v.(*ControlPlaneConfig); i { case 0: return &v.state case 1: @@ -12711,7 +13460,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BPFInstruction); i { + switch v := v.(*CNIConfig); i { case 0: return &v.state case 1: @@ -12723,7 +13472,7 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MachineStatusEvent_MachineStatus); i { + switch v := v.(*ClusterNetworkConfig); i { case 0: return &v.state case 1: @@ -12735,6 +13484,126 @@ func file_machine_machine_proto_init() { } } file_machine_machine_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClusterConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateClientConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateClientConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateClientConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PacketCaptureRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BPFInstruction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineStatusEvent_MachineStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MachineStatusEvent_MachineStatus_UnmetCondition); i { case 0: return &v.state @@ -12752,8 +13621,8 @@ func file_machine_machine_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_machine_machine_proto_rawDesc, - NumEnums: 9, - NumMessages: 137, + NumEnums: 10, + NumMessages: 147, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/machinery/api/machine/machine_grpc.pb.go b/pkg/machinery/api/machine/machine_grpc.pb.go index 2971b265c..cb1f749fd 100644 --- a/pkg/machinery/api/machine/machine_grpc.pb.go +++ b/pkg/machinery/api/machine/machine_grpc.pb.go @@ -63,6 +63,25 @@ type MachineServiceClient interface { // // This method is available only on control plane nodes (which run etcd). EtcdSnapshot(ctx context.Context, in *EtcdSnapshotRequest, opts ...grpc.CallOption) (MachineService_EtcdSnapshotClient, error) + // EtcdAlarmList lists etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdAlarmList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdAlarmListResponse, error) + // EtcdAlarmDisarm disarms etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdAlarmDisarm(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdAlarmDisarmResponse, error) + // EtcdDefragment defragments etcd data directory for the current node. + // + // Defragmentation is a resource-heavy operation, so it should only run on a specific + // node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdDefragment(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdDefragmentResponse, error) + // EtcdStatus returns etcd status for the current member. + // + // This method is available only on control plane nodes (which run etcd). + EtcdStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdStatusResponse, error) GenerateConfiguration(ctx context.Context, in *GenerateConfigurationRequest, opts ...grpc.CallOption) (*GenerateConfigurationResponse, error) Hostname(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HostnameResponse, error) Kubeconfig(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (MachineService_KubeconfigClient, error) @@ -355,6 +374,42 @@ func (x *machineServiceEtcdSnapshotClient) Recv() (*common.Data, error) { return m, nil } +func (c *machineServiceClient) EtcdAlarmList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdAlarmListResponse, error) { + out := new(EtcdAlarmListResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdAlarmList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *machineServiceClient) EtcdAlarmDisarm(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdAlarmDisarmResponse, error) { + out := new(EtcdAlarmDisarmResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdAlarmDisarm", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *machineServiceClient) EtcdDefragment(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdDefragmentResponse, error) { + out := new(EtcdDefragmentResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdDefragment", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *machineServiceClient) EtcdStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EtcdStatusResponse, error) { + out := new(EtcdStatusResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) GenerateConfiguration(ctx context.Context, in *GenerateConfigurationRequest, opts ...grpc.CallOption) (*GenerateConfigurationResponse, error) { out := new(GenerateConfigurationResponse) err := c.cc.Invoke(ctx, "/machine.MachineService/GenerateConfiguration", in, out, opts...) @@ -777,6 +832,25 @@ type MachineServiceServer interface { // // This method is available only on control plane nodes (which run etcd). EtcdSnapshot(*EtcdSnapshotRequest, MachineService_EtcdSnapshotServer) error + // EtcdAlarmList lists etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdAlarmList(context.Context, *emptypb.Empty) (*EtcdAlarmListResponse, error) + // EtcdAlarmDisarm disarms etcd alarms for the current node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdAlarmDisarm(context.Context, *emptypb.Empty) (*EtcdAlarmDisarmResponse, error) + // EtcdDefragment defragments etcd data directory for the current node. + // + // Defragmentation is a resource-heavy operation, so it should only run on a specific + // node. + // + // This method is available only on control plane nodes (which run etcd). + EtcdDefragment(context.Context, *emptypb.Empty) (*EtcdDefragmentResponse, error) + // EtcdStatus returns etcd status for the current member. + // + // This method is available only on control plane nodes (which run etcd). + EtcdStatus(context.Context, *emptypb.Empty) (*EtcdStatusResponse, error) GenerateConfiguration(context.Context, *GenerateConfigurationRequest) (*GenerateConfigurationResponse, error) Hostname(context.Context, *emptypb.Empty) (*HostnameResponse, error) Kubeconfig(*emptypb.Empty, MachineService_KubeconfigServer) error @@ -858,6 +932,18 @@ func (UnimplementedMachineServiceServer) EtcdRecover(MachineService_EtcdRecoverS func (UnimplementedMachineServiceServer) EtcdSnapshot(*EtcdSnapshotRequest, MachineService_EtcdSnapshotServer) error { return status.Errorf(codes.Unimplemented, "method EtcdSnapshot not implemented") } +func (UnimplementedMachineServiceServer) EtcdAlarmList(context.Context, *emptypb.Empty) (*EtcdAlarmListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdAlarmList not implemented") +} +func (UnimplementedMachineServiceServer) EtcdAlarmDisarm(context.Context, *emptypb.Empty) (*EtcdAlarmDisarmResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdAlarmDisarm not implemented") +} +func (UnimplementedMachineServiceServer) EtcdDefragment(context.Context, *emptypb.Empty) (*EtcdDefragmentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdDefragment not implemented") +} +func (UnimplementedMachineServiceServer) EtcdStatus(context.Context, *emptypb.Empty) (*EtcdStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdStatus not implemented") +} func (UnimplementedMachineServiceServer) GenerateConfiguration(context.Context, *GenerateConfigurationRequest) (*GenerateConfigurationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GenerateConfiguration not implemented") } @@ -1242,6 +1328,78 @@ func (x *machineServiceEtcdSnapshotServer) Send(m *common.Data) error { return x.ServerStream.SendMsg(m) } +func _MachineService_EtcdAlarmList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdAlarmList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdAlarmList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdAlarmList(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _MachineService_EtcdAlarmDisarm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdAlarmDisarm(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdAlarmDisarm", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdAlarmDisarm(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _MachineService_EtcdDefragment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdDefragment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdDefragment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdDefragment(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _MachineService_EtcdStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdStatus(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_GenerateConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenerateConfigurationRequest) if err := dec(in); err != nil { @@ -1793,6 +1951,22 @@ var MachineService_ServiceDesc = grpc.ServiceDesc{ MethodName: "EtcdForfeitLeadership", Handler: _MachineService_EtcdForfeitLeadership_Handler, }, + { + MethodName: "EtcdAlarmList", + Handler: _MachineService_EtcdAlarmList_Handler, + }, + { + MethodName: "EtcdAlarmDisarm", + Handler: _MachineService_EtcdAlarmDisarm_Handler, + }, + { + MethodName: "EtcdDefragment", + Handler: _MachineService_EtcdDefragment_Handler, + }, + { + MethodName: "EtcdStatus", + Handler: _MachineService_EtcdStatus_Handler, + }, { MethodName: "GenerateConfiguration", Handler: _MachineService_GenerateConfiguration_Handler, diff --git a/pkg/machinery/api/machine/machine_vtproto.pb.go b/pkg/machinery/api/machine/machine_vtproto.pb.go index 24231fab8..862321274 100644 --- a/pkg/machinery/api/machine/machine_vtproto.pb.go +++ b/pkg/machinery/api/machine/machine_vtproto.pb.go @@ -7316,6 +7316,577 @@ func (m *EtcdRecoverResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EtcdAlarmListResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdAlarmListResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdAlarmListResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Messages) > 0 { + for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Messages[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EtcdAlarm) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdAlarm) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdAlarm) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.MemberAlarms) > 0 { + for iNdEx := len(m.MemberAlarms) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.MemberAlarms[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.Metadata != nil { + if marshalto, ok := interface{}(m.Metadata).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EtcdMemberAlarm) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdMemberAlarm) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdMemberAlarm) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Alarm != 0 { + i = encodeVarint(dAtA, i, uint64(m.Alarm)) + i-- + dAtA[i] = 0x10 + } + if m.MemberId != 0 { + i = encodeVarint(dAtA, i, uint64(m.MemberId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *EtcdAlarmDisarmResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdAlarmDisarmResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdAlarmDisarmResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Messages) > 0 { + for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Messages[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EtcdAlarmDisarm) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdAlarmDisarm) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdAlarmDisarm) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.MemberAlarms) > 0 { + for iNdEx := len(m.MemberAlarms) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.MemberAlarms[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.Metadata != nil { + if marshalto, ok := interface{}(m.Metadata).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EtcdDefragmentResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdDefragmentResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdDefragmentResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Messages) > 0 { + for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Messages[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EtcdDefragment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdDefragment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdDefragment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Metadata != nil { + if marshalto, ok := interface{}(m.Metadata).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EtcdStatusResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdStatusResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdStatusResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Messages) > 0 { + for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Messages[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EtcdStatus) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdStatus) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.MemberStatus != nil { + size, err := m.MemberStatus.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Metadata != nil { + if marshalto, ok := interface{}(m.Metadata).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EtcdMemberStatus) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EtcdMemberStatus) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EtcdMemberStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.MemberId != 0 { + i = encodeVarint(dAtA, i, uint64(m.MemberId)) + i-- + dAtA[i] = 0x50 + } + if m.IsLearner { + i-- + if m.IsLearner { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x48 + } + if len(m.Errors) > 0 { + for iNdEx := len(m.Errors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Errors[iNdEx]) + copy(dAtA[i:], m.Errors[iNdEx]) + i = encodeVarint(dAtA, i, uint64(len(m.Errors[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if m.RaftAppliedIndex != 0 { + i = encodeVarint(dAtA, i, uint64(m.RaftAppliedIndex)) + i-- + dAtA[i] = 0x38 + } + if m.RaftTerm != 0 { + i = encodeVarint(dAtA, i, uint64(m.RaftTerm)) + i-- + dAtA[i] = 0x30 + } + if m.RaftIndex != 0 { + i = encodeVarint(dAtA, i, uint64(m.RaftIndex)) + i-- + dAtA[i] = 0x28 + } + if m.Leader != 0 { + i = encodeVarint(dAtA, i, uint64(m.Leader)) + i-- + dAtA[i] = 0x20 + } + if m.DbSizeInUse != 0 { + i = encodeVarint(dAtA, i, uint64(m.DbSizeInUse)) + i-- + dAtA[i] = 0x18 + } + if m.DbSize != 0 { + i = encodeVarint(dAtA, i, uint64(m.DbSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.ProtocolVersion) > 0 { + i -= len(m.ProtocolVersion) + copy(dAtA[i:], m.ProtocolVersion) + i = encodeVarint(dAtA, i, uint64(len(m.ProtocolVersion))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *RouteConfig) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -11485,6 +12056,246 @@ func (m *EtcdRecoverResponse) SizeVT() (n int) { return n } +func (m *EtcdAlarmListResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Messages) > 0 { + for _, e := range m.Messages { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdAlarm) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Metadata != nil { + if size, ok := interface{}(m.Metadata).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Metadata) + } + n += 1 + l + sov(uint64(l)) + } + if len(m.MemberAlarms) > 0 { + for _, e := range m.MemberAlarms { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdMemberAlarm) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemberId != 0 { + n += 1 + sov(uint64(m.MemberId)) + } + if m.Alarm != 0 { + n += 1 + sov(uint64(m.Alarm)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdAlarmDisarmResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Messages) > 0 { + for _, e := range m.Messages { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdAlarmDisarm) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Metadata != nil { + if size, ok := interface{}(m.Metadata).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Metadata) + } + n += 1 + l + sov(uint64(l)) + } + if len(m.MemberAlarms) > 0 { + for _, e := range m.MemberAlarms { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdDefragmentResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Messages) > 0 { + for _, e := range m.Messages { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdDefragment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Metadata != nil { + if size, ok := interface{}(m.Metadata).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Metadata) + } + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdStatusResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Messages) > 0 { + for _, e := range m.Messages { + l = e.SizeVT() + n += 1 + l + sov(uint64(l)) + } + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdStatus) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Metadata != nil { + if size, ok := interface{}(m.Metadata).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Metadata) + } + n += 1 + l + sov(uint64(l)) + } + if m.MemberStatus != nil { + l = m.MemberStatus.SizeVT() + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *EtcdMemberStatus) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ProtocolVersion) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.DbSize != 0 { + n += 1 + sov(uint64(m.DbSize)) + } + if m.DbSizeInUse != 0 { + n += 1 + sov(uint64(m.DbSizeInUse)) + } + if m.Leader != 0 { + n += 1 + sov(uint64(m.Leader)) + } + if m.RaftIndex != 0 { + n += 1 + sov(uint64(m.RaftIndex)) + } + if m.RaftTerm != 0 { + n += 1 + sov(uint64(m.RaftTerm)) + } + if m.RaftAppliedIndex != 0 { + n += 1 + sov(uint64(m.RaftAppliedIndex)) + } + if len(m.Errors) > 0 { + for _, s := range m.Errors { + l = len(s) + n += 1 + l + sov(uint64(l)) + } + } + if m.IsLearner { + n += 2 + } + if m.MemberId != 0 { + n += 1 + sov(uint64(m.MemberId)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func (m *RouteConfig) SizeVT() (n int) { if m == nil { return 0 @@ -28309,6 +29120,1187 @@ func (m *EtcdRecoverResponse) UnmarshalVT(dAtA []byte) error { } return nil } +func (m *EtcdAlarmListResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdAlarmListResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdAlarmListResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = append(m.Messages, &EtcdAlarm{}) + if err := m.Messages[len(m.Messages)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdAlarm) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdAlarm: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdAlarm: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = &common.Metadata{} + } + if unmarshal, ok := interface{}(m.Metadata).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemberAlarms", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MemberAlarms = append(m.MemberAlarms, &EtcdMemberAlarm{}) + if err := m.MemberAlarms[len(m.MemberAlarms)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdMemberAlarm) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdMemberAlarm: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdMemberAlarm: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MemberId", wireType) + } + m.MemberId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MemberId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Alarm", wireType) + } + m.Alarm = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Alarm |= EtcdMemberAlarm_AlarmType(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdAlarmDisarmResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdAlarmDisarmResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdAlarmDisarmResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = append(m.Messages, &EtcdAlarmDisarm{}) + if err := m.Messages[len(m.Messages)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdAlarmDisarm) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdAlarmDisarm: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdAlarmDisarm: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = &common.Metadata{} + } + if unmarshal, ok := interface{}(m.Metadata).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemberAlarms", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MemberAlarms = append(m.MemberAlarms, &EtcdMemberAlarm{}) + if err := m.MemberAlarms[len(m.MemberAlarms)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdDefragmentResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdDefragmentResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdDefragmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = append(m.Messages, &EtcdDefragment{}) + if err := m.Messages[len(m.Messages)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdDefragment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdDefragment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdDefragment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = &common.Metadata{} + } + if unmarshal, ok := interface{}(m.Metadata).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdStatusResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdStatusResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = append(m.Messages, &EtcdStatus{}) + if err := m.Messages[len(m.Messages)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdStatus) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = &common.Metadata{} + } + if unmarshal, ok := interface{}(m.Metadata).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemberStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemberStatus == nil { + m.MemberStatus = &EtcdMemberStatus{} + } + if err := m.MemberStatus.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EtcdMemberStatus) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EtcdMemberStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EtcdMemberStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProtocolVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProtocolVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DbSize", wireType) + } + m.DbSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DbSize |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DbSizeInUse", wireType) + } + m.DbSizeInUse = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DbSizeInUse |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Leader", wireType) + } + m.Leader = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Leader |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RaftIndex", wireType) + } + m.RaftIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RaftIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RaftTerm", wireType) + } + m.RaftTerm = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RaftTerm |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RaftAppliedIndex", wireType) + } + m.RaftAppliedIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RaftAppliedIndex |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Errors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Errors = append(m.Errors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsLearner", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsLearner = bool(v != 0) + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MemberId", wireType) + } + m.MemberId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MemberId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RouteConfig) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/machinery/client/client.go b/pkg/machinery/client/client.go index c81de521d..ad0358609 100644 --- a/pkg/machinery/client/client.go +++ b/pkg/machinery/client/client.go @@ -839,6 +839,61 @@ func (c *Client) EtcdRecover(ctx context.Context, snapshot io.Reader, callOption return resp, err } +// EtcdAlarmList lists etcd alarms for the current node. +// +// This method is available only on control plane nodes (which run etcd). +func (c *Client) EtcdAlarmList(ctx context.Context, opts ...grpc.CallOption) (*machineapi.EtcdAlarmListResponse, error) { + resp, err := c.MachineClient.EtcdAlarmList(ctx, &emptypb.Empty{}, opts...) + + var filtered interface{} + filtered, err = FilterMessages(resp, err) + resp, _ = filtered.(*machineapi.EtcdAlarmListResponse) //nolint:errcheck + + return resp, err +} + +// EtcdAlarmDisarm disarms etcd alarms for the current node. +// +// This method is available only on control plane nodes (which run etcd). +func (c *Client) EtcdAlarmDisarm(ctx context.Context, opts ...grpc.CallOption) (*machineapi.EtcdAlarmDisarmResponse, error) { + resp, err := c.MachineClient.EtcdAlarmDisarm(ctx, &emptypb.Empty{}, opts...) + + var filtered interface{} + filtered, err = FilterMessages(resp, err) + resp, _ = filtered.(*machineapi.EtcdAlarmDisarmResponse) //nolint:errcheck + + return resp, err +} + +// EtcdDefragment defragments etcd data directory for the current node. +// +// Defragmentation is a resource-heavy operation, so it should only run on a specific +// node. +// +// This method is available only on control plane nodes (which run etcd). +func (c *Client) EtcdDefragment(ctx context.Context, opts ...grpc.CallOption) (*machineapi.EtcdDefragmentResponse, error) { + resp, err := c.MachineClient.EtcdDefragment(ctx, &emptypb.Empty{}, opts...) + + var filtered interface{} + filtered, err = FilterMessages(resp, err) + resp, _ = filtered.(*machineapi.EtcdDefragmentResponse) //nolint:errcheck + + return resp, err +} + +// EtcdStatus returns etcd status for the current member. +// +// This method is available only on control plane nodes (which run etcd). +func (c *Client) EtcdStatus(ctx context.Context, opts ...grpc.CallOption) (*machineapi.EtcdStatusResponse, error) { + resp, err := c.MachineClient.EtcdStatus(ctx, &emptypb.Empty{}, opts...) + + var filtered interface{} + filtered, err = FilterMessages(resp, err) + resp, _ = filtered.(*machineapi.EtcdStatusResponse) //nolint:errcheck + + return resp, err +} + // GenerateClientConfiguration implements proto.MachineServiceClient interface. func (c *Client) GenerateClientConfiguration(ctx context.Context, req *machineapi.GenerateClientConfigurationRequest, callOptions ...grpc.CallOption) (resp *machineapi.GenerateClientConfigurationResponse, err error) { //nolint:lll resp, err = c.MachineClient.GenerateClientConfiguration(ctx, req, callOptions...) diff --git a/website/content/v1.4/advanced/etcd-maintenance.md b/website/content/v1.4/advanced/etcd-maintenance.md new file mode 100644 index 000000000..365b5ab9e --- /dev/null +++ b/website/content/v1.4/advanced/etcd-maintenance.md @@ -0,0 +1,76 @@ +--- +title: "etcd Maintenance" +description: "Operational instructions for etcd database." +--- + +`etcd` database backs Kubernetes control plane state, so `etcd` health is critical for Kubernetes availability. + +## Space Quota + +`etcd` default database space quota is set to 2 GiB by default. +If the database size exceeds the quota, `etcd` will stop operations until the issue is resolved. + +This condition can be checked with `talosctl etcd alarm list` command: + +```bash +$ talosctl -n etcd alarm list +NODE MEMBER ALARM +172.20.0.2 a49c021e76e707db NOSPACE +``` + +If the Kubernetes database contains lots of resources, space quota can be increased to match the actual usage. +The recommended maximum size is 8 GiB. + +To increase the space quota, edit the `etcd` section in the machine configuration: + +```yaml +machine: + etcd: + extraArgs: + quota-backend-bytes: 4294967296 # 4 GiB +``` + +Once the node is rebooted with the new configuration, use `talosctl etcd alarm disarm` to clear the `NOSPACE` alarm. + +## Defragmentation + +`etcd` database can become fragmented over time if there are lots of writes and deletes. +Kubernetes API server performs automatic compaction of the `etcd` database, which marks deleted space as free and ready to be reused. +However, the space is not actually freed until the database is defragmented. + +If the database is heavily fragmented (in use/db size ratio is less than 0.5), defragmentation might increase the performance. +If the database runs over the space quota (see above), but the actual in use database size is small, defragmentation is required to bring the on-disk database size below the limit. + +Current database size can be checked with `talosctl etcd status` command: + +```bash +$ talosctl -n ,, etcd status +NODE MEMBER DB SIZE IN USE LEADER RAFT INDEX RAFT TERM RAFT APPLIED INDEX LEARNER ERRORS +172.20.0.3 ecebb05b59a776f1 21 MB 6.0 MB (29.08%) ecebb05b59a776f1 53391 4 53391 false +172.20.0.2 a49c021e76e707db 17 MB 4.5 MB (26.10%) ecebb05b59a776f1 53391 4 53391 false +172.20.0.4 eb47fb33e59bf0e2 20 MB 5.9 MB (28.96%) ecebb05b59a776f1 53391 4 53391 false +``` + +If any of the nodes are over database size quota, alarms will be printed in the `ERRORS` column. + +To defragment the database, run `talosctl etcd defrag` command: + +```bash +talosctl -n etcd defrag +``` + +> Note: defragmentation is a resource-intensive operation, so it is recommended to run it on a single node at a time. +> Defragmentation to a live member blocks the system from reading and writing data while rebuilding its state. + +Once the defragmentation is complete, the database size will match closely to the in use size: + +```bash +$ talosctl -n etcd status +NODE MEMBER DB SIZE IN USE LEADER RAFT INDEX RAFT TERM RAFT APPLIED INDEX LEARNER ERRORS +172.20.0.2 a49c021e76e707db 4.5 MB 4.5 MB (100.00%) ecebb05b59a776f1 56065 4 56065 false +``` + +## Snapshotting + +Regular backups of `etcd` database should be performed to ensure that the cluster can be restored in case of a failure. +This procedure is described in the [disaster recovery]({{< relref "disaster-recovery" >}}) guide. diff --git a/website/content/v1.4/reference/api.md b/website/content/v1.4/reference/api.md index a599e9c60..0ddadf02c 100644 --- a/website/content/v1.4/reference/api.md +++ b/website/content/v1.4/reference/api.md @@ -235,6 +235,12 @@ description: Talos gRPC API reference. - [DiskUsageInfo](#machine.DiskUsageInfo) - [DiskUsageRequest](#machine.DiskUsageRequest) - [DmesgRequest](#machine.DmesgRequest) + - [EtcdAlarm](#machine.EtcdAlarm) + - [EtcdAlarmDisarm](#machine.EtcdAlarmDisarm) + - [EtcdAlarmDisarmResponse](#machine.EtcdAlarmDisarmResponse) + - [EtcdAlarmListResponse](#machine.EtcdAlarmListResponse) + - [EtcdDefragment](#machine.EtcdDefragment) + - [EtcdDefragmentResponse](#machine.EtcdDefragmentResponse) - [EtcdForfeitLeadership](#machine.EtcdForfeitLeadership) - [EtcdForfeitLeadershipRequest](#machine.EtcdForfeitLeadershipRequest) - [EtcdForfeitLeadershipResponse](#machine.EtcdForfeitLeadershipResponse) @@ -242,8 +248,10 @@ description: Talos gRPC API reference. - [EtcdLeaveClusterRequest](#machine.EtcdLeaveClusterRequest) - [EtcdLeaveClusterResponse](#machine.EtcdLeaveClusterResponse) - [EtcdMember](#machine.EtcdMember) + - [EtcdMemberAlarm](#machine.EtcdMemberAlarm) - [EtcdMemberListRequest](#machine.EtcdMemberListRequest) - [EtcdMemberListResponse](#machine.EtcdMemberListResponse) + - [EtcdMemberStatus](#machine.EtcdMemberStatus) - [EtcdMembers](#machine.EtcdMembers) - [EtcdRecover](#machine.EtcdRecover) - [EtcdRecoverResponse](#machine.EtcdRecoverResponse) @@ -254,6 +262,8 @@ description: Talos gRPC API reference. - [EtcdRemoveMemberRequest](#machine.EtcdRemoveMemberRequest) - [EtcdRemoveMemberResponse](#machine.EtcdRemoveMemberResponse) - [EtcdSnapshotRequest](#machine.EtcdSnapshotRequest) + - [EtcdStatus](#machine.EtcdStatus) + - [EtcdStatusResponse](#machine.EtcdStatusResponse) - [Event](#machine.Event) - [EventsRequest](#machine.EventsRequest) - [FeaturesInfo](#machine.FeaturesInfo) @@ -344,6 +354,7 @@ description: Talos gRPC API reference. - [VersionResponse](#machine.VersionResponse) - [ApplyConfigurationRequest.Mode](#machine.ApplyConfigurationRequest.Mode) + - [EtcdMemberAlarm.AlarmType](#machine.EtcdMemberAlarm.AlarmType) - [ListRequest.Type](#machine.ListRequest.Type) - [MachineConfig.MachineType](#machine.MachineConfig.MachineType) - [MachineStatusEvent.MachineStage](#machine.MachineStatusEvent.MachineStage) @@ -4109,6 +4120,98 @@ dmesg + + +### EtcdAlarm + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| metadata | [common.Metadata](#common.Metadata) | | | +| member_alarms | [EtcdMemberAlarm](#machine.EtcdMemberAlarm) | repeated | | + + + + + + + + +### EtcdAlarmDisarm + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| metadata | [common.Metadata](#common.Metadata) | | | +| member_alarms | [EtcdMemberAlarm](#machine.EtcdMemberAlarm) | repeated | | + + + + + + + + +### EtcdAlarmDisarmResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| messages | [EtcdAlarmDisarm](#machine.EtcdAlarmDisarm) | repeated | | + + + + + + + + +### EtcdAlarmListResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| messages | [EtcdAlarm](#machine.EtcdAlarm) | repeated | | + + + + + + + + +### EtcdDefragment + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| metadata | [common.Metadata](#common.Metadata) | | | + + + + + + + + +### EtcdDefragmentResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| messages | [EtcdDefragment](#machine.EtcdDefragment) | repeated | | + + + + + + ### EtcdForfeitLeadership @@ -4209,6 +4312,22 @@ EtcdMember describes a single etcd member. + + +### EtcdMemberAlarm + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| member_id | [uint64](#uint64) | | | +| alarm | [EtcdMemberAlarm.AlarmType](#machine.EtcdMemberAlarm.AlarmType) | | | + + + + + + ### EtcdMemberListRequest @@ -4239,6 +4358,30 @@ EtcdMember describes a single etcd member. + + +### EtcdMemberStatus + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| member_id | [uint64](#uint64) | | | +| protocol_version | [string](#string) | | | +| db_size | [int64](#int64) | | | +| db_size_in_use | [int64](#int64) | | | +| leader | [uint64](#uint64) | | | +| raft_index | [uint64](#uint64) | | | +| raft_term | [uint64](#uint64) | | | +| raft_applied_index | [uint64](#uint64) | | | +| errors | [string](#string) | repeated | | +| is_learner | [bool](#bool) | | | + + + + + + ### EtcdMembers @@ -4386,6 +4529,37 @@ EtcdMembers contains the list of members registered on the host. + + +### EtcdStatus + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| metadata | [common.Metadata](#common.Metadata) | | | +| member_status | [EtcdMemberStatus](#machine.EtcdMemberStatus) | | | + + + + + + + + +### EtcdStatusResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| messages | [EtcdStatus](#machine.EtcdStatus) | repeated | | + + + + + + ### Event @@ -5926,6 +6100,19 @@ rpc upgrade + + +### EtcdMemberAlarm.AlarmType + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NONE | 0 | | +| NOSPACE | 1 | | +| CORRUPT | 2 | | + + + ### ListRequest.Type @@ -6076,6 +6263,20 @@ This API should be used to remove members which don't have an associated Talos n Snapshot can be later used to recover the cluster via Bootstrap method. | | EtcdSnapshot | [EtcdSnapshotRequest](#machine.EtcdSnapshotRequest) | [.common.Data](#common.Data) stream | EtcdSnapshot method creates etcd data snapshot (backup) from the local etcd instance and streams it back to the client. +This method is available only on control plane nodes (which run etcd). | +| EtcdAlarmList | [.google.protobuf.Empty](#google.protobuf.Empty) | [EtcdAlarmListResponse](#machine.EtcdAlarmListResponse) | EtcdAlarmList lists etcd alarms for the current node. + +This method is available only on control plane nodes (which run etcd). | +| EtcdAlarmDisarm | [.google.protobuf.Empty](#google.protobuf.Empty) | [EtcdAlarmDisarmResponse](#machine.EtcdAlarmDisarmResponse) | EtcdAlarmDisarm disarms etcd alarms for the current node. + +This method is available only on control plane nodes (which run etcd). | +| EtcdDefragment | [.google.protobuf.Empty](#google.protobuf.Empty) | [EtcdDefragmentResponse](#machine.EtcdDefragmentResponse) | EtcdDefragment defragments etcd data directory for the current node. + +Defragmentation is a resource-heavy operation, so it should only run on a specific node. + +This method is available only on control plane nodes (which run etcd). | +| EtcdStatus | [.google.protobuf.Empty](#google.protobuf.Empty) | [EtcdStatusResponse](#machine.EtcdStatusResponse) | EtcdStatus returns etcd status for the current member. + This method is available only on control plane nodes (which run etcd). | | GenerateConfiguration | [GenerateConfigurationRequest](#machine.GenerateConfigurationRequest) | [GenerateConfigurationResponse](#machine.GenerateConfigurationResponse) | | | Hostname | [.google.protobuf.Empty](#google.protobuf.Empty) | [HostnameResponse](#machine.HostnameResponse) | | diff --git a/website/content/v1.4/reference/cli.md b/website/content/v1.4/reference/cli.md index 80a31884d..4ea284620 100644 --- a/website/content/v1.4/reference/cli.md +++ b/website/content/v1.4/reference/cli.md @@ -901,6 +901,121 @@ talosctl edit [] [flags] * [talosctl](#talosctl) - A CLI for out-of-band management of Kubernetes nodes created by Talos +## talosctl etcd alarm disarm + +Disarm the etcd alarms for the node. + +``` +talosctl etcd alarm disarm [flags] +``` + +### Options + +``` + -h, --help help for disarm +``` + +### Options inherited from parent commands + +``` + --cluster string Cluster to connect to if a proxy endpoint is used. + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. +``` + +### SEE ALSO + +* [talosctl etcd alarm](#talosctl-etcd-alarm) - Manage etcd alarms + +## talosctl etcd alarm list + +List the etcd alarms for the node. + +``` +talosctl etcd alarm list [flags] +``` + +### Options + +``` + -h, --help help for list +``` + +### Options inherited from parent commands + +``` + --cluster string Cluster to connect to if a proxy endpoint is used. + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. +``` + +### SEE ALSO + +* [talosctl etcd alarm](#talosctl-etcd-alarm) - Manage etcd alarms + +## talosctl etcd alarm + +Manage etcd alarms + +### Options + +``` + -h, --help help for alarm +``` + +### Options inherited from parent commands + +``` + --cluster string Cluster to connect to if a proxy endpoint is used. + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. +``` + +### SEE ALSO + +* [talosctl etcd](#talosctl-etcd) - Manage etcd +* [talosctl etcd alarm disarm](#talosctl-etcd-alarm-disarm) - Disarm the etcd alarms for the node. +* [talosctl etcd alarm list](#talosctl-etcd-alarm-list) - List the etcd alarms for the node. + +## talosctl etcd defrag + +Defragment etcd database on the node + +### Synopsis + +Defragmentation is a maintenance operation that releases unused space from the etcd database file. +Defragmentation is a resource heavy operation and should be performed only when necessary on a single node at a time. + +``` +talosctl etcd defrag [flags] +``` + +### Options + +``` + -h, --help help for defrag +``` + +### Options inherited from parent commands + +``` + --cluster string Cluster to connect to if a proxy endpoint is used. + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. +``` + +### SEE ALSO + +* [talosctl etcd](#talosctl-etcd) - Manage etcd + ## talosctl etcd forfeit-leadership Tell node to forfeit etcd cluster leadership @@ -1048,6 +1163,38 @@ talosctl etcd snapshot [flags] * [talosctl etcd](#talosctl-etcd) - Manage etcd +## talosctl etcd status + +Get the status of etcd cluster member + +### Synopsis + +Returns the status of etcd member on the node, use multiple nodes to get status of all members. + +``` +talosctl etcd status [flags] +``` + +### Options + +``` + -h, --help help for status +``` + +### Options inherited from parent commands + +``` + --cluster string Cluster to connect to if a proxy endpoint is used. + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. +``` + +### SEE ALSO + +* [talosctl etcd](#talosctl-etcd) - Manage etcd + ## talosctl etcd Manage etcd @@ -1071,11 +1218,14 @@ Manage etcd ### SEE ALSO * [talosctl](#talosctl) - A CLI for out-of-band management of Kubernetes nodes created by Talos +* [talosctl etcd alarm](#talosctl-etcd-alarm) - Manage etcd alarms +* [talosctl etcd defrag](#talosctl-etcd-defrag) - Defragment etcd database on the node * [talosctl etcd forfeit-leadership](#talosctl-etcd-forfeit-leadership) - Tell node to forfeit etcd cluster leadership * [talosctl etcd leave](#talosctl-etcd-leave) - Tell nodes to leave etcd cluster * [talosctl etcd members](#talosctl-etcd-members) - Get the list of etcd cluster members * [talosctl etcd remove-member](#talosctl-etcd-remove-member) - Remove the node from etcd cluster * [talosctl etcd snapshot](#talosctl-etcd-snapshot) - Stream snapshot of the etcd node to the path. +* [talosctl etcd status](#talosctl-etcd-status) - Get the status of etcd cluster member ## talosctl events