diff --git a/api/machine/machine.proto b/api/machine/machine.proto index 638c1cb32..c110f6856 100644 --- a/api/machine/machine.proto +++ b/api/machine/machine.proto @@ -14,7 +14,8 @@ import "common/common.proto"; // The machine service definition. service MachineService { - rpc ApplyConfiguration(ApplyConfigurationRequest) returns (ApplyConfigurationResponse); + rpc ApplyConfiguration(ApplyConfigurationRequest) + returns (ApplyConfigurationResponse); rpc Bootstrap(BootstrapRequest) returns (BootstrapResponse); rpc Containers(ContainersRequest) returns (ContainersResponse); rpc Copy(CopyRequest) returns (stream common.Data); @@ -22,6 +23,11 @@ service MachineService { rpc DiskStats(google.protobuf.Empty) returns (DiskStatsResponse); rpc Dmesg(DmesgRequest) returns (stream common.Data); rpc Events(EventsRequest) returns (stream Event); + rpc EtcdMemberList(EtcdMemberListRequest) returns (EtcdMemberListResponse); + rpc EtcdLeaveCluster(EtcdLeaveClusterRequest) + returns (EtcdLeaveClusterResponse); + rpc EtcdForfeitLeadership(EtcdForfeitLeadershipRequest) + returns (EtcdForfeitLeadershipResponse); rpc Hostname(google.protobuf.Empty) returns (HostnameResponse); rpc Kubeconfig(google.protobuf.Empty) returns (stream common.Data); rpc List(ListRequest) returns (stream FileInfo); @@ -29,7 +35,8 @@ service MachineService { rpc Logs(LogsRequest) returns (stream common.Data); rpc Memory(google.protobuf.Empty) returns (MemoryResponse); rpc Mounts(google.protobuf.Empty) returns (MountsResponse); - rpc NetworkDeviceStats(google.protobuf.Empty) returns (NetworkDeviceStatsResponse); + rpc NetworkDeviceStats(google.protobuf.Empty) + returns (NetworkDeviceStatsResponse); rpc Processes(google.protobuf.Empty) returns (ProcessesResponse); rpc Read(ReadRequest) returns (stream common.Data); rpc Reboot(google.protobuf.Empty) returns (RebootResponse); @@ -49,10 +56,9 @@ service MachineService { } // rpc applyConfiguration -// ApplyConfiguration describes a request to assert a new configuration upon a node. -message ApplyConfigurationRequest { - bytes data = 1; -} +// ApplyConfiguration describes a request to assert a new configuration upon a +// node. +message ApplyConfigurationRequest { bytes data = 1; } // ApplyConfigurationResponse describes the response to a configuration request. message ApplyConfiguration { common.Metadata metadata = 1; } @@ -499,9 +505,7 @@ message MemInfo { // rpc Hostname -message HostnameResponse { - repeated Hostname messages = 1; -} +message HostnameResponse { repeated Hostname messages = 1; } message Hostname { common.Metadata metadata = 1; @@ -510,9 +514,7 @@ message Hostname { // rpc LoadAvg -message LoadAvgResponse { - repeated LoadAvg messages = 1; -} +message LoadAvgResponse { repeated LoadAvg messages = 1; } message LoadAvg { common.Metadata metadata = 1; @@ -521,12 +523,9 @@ message LoadAvg { double load15 = 4; } - // rpc SystemStat -message SystemStatResponse { - repeated SystemStat messages = 1; -} +message SystemStatResponse { repeated SystemStat messages = 1; } message SystemStat { common.Metadata metadata = 1; @@ -569,12 +568,9 @@ message SoftIRQStat { uint64 rcu = 10; } - // rpc CPUInfo -message CPUInfoResponse { - repeated CPUsInfo messages = 1; -} +message CPUInfoResponse { repeated CPUsInfo messages = 1; } message CPUsInfo { common.Metadata metadata = 1; @@ -610,12 +606,9 @@ message CPUInfo { string power_management = 26; } - // rpc NetworkDeviceStats -message NetworkDeviceStatsResponse { - repeated NetworkDeviceStats messages = 1; -} +message NetworkDeviceStatsResponse { repeated NetworkDeviceStats messages = 1; } message NetworkDeviceStats { common.Metadata metadata = 1; @@ -643,12 +636,9 @@ message NetDev { uint64 tx_compressed = 17; } - // rpc DiskStats -message DiskStatsResponse { - repeated DiskStats messages = 1; -} +message DiskStatsResponse { repeated DiskStats messages = 1; } message DiskStats { common.Metadata metadata = 1; @@ -674,3 +664,23 @@ message DiskStat { uint64 discard_sectors = 15; uint64 discard_time_ms = 16; } + +message EtcdLeaveClusterRequest {} +message EtcdLeaveCluster { common.Metadata metadata = 1; } +message EtcdLeaveClusterResponse { repeated EtcdLeaveCluster messages = 1; } + +message EtcdForfeitLeadershipRequest {} +message EtcdForfeitLeadership { + common.Metadata metadata = 1; + string member = 2; +} +message EtcdForfeitLeadershipResponse { + repeated EtcdForfeitLeadership messages = 1; +} + +message EtcdMemberListRequest {} +message EtcdMemberList { + common.Metadata metadata = 1; + repeated string members = 2; +} +message EtcdMemberListResponse { repeated EtcdMemberList messages = 1; } diff --git a/internal/app/bootkube/recover.go b/internal/app/bootkube/recover.go index 2886ab8e2..857f6912e 100644 --- a/internal/app/bootkube/recover.go +++ b/internal/app/bootkube/recover.go @@ -14,7 +14,6 @@ import ( "os" "github.com/kubernetes-sigs/bootkube/pkg/recovery" - "go.etcd.io/etcd/clientv3" k8saes "k8s.io/apiserver/pkg/storage/value/encrypt/aes" "github.com/talos-systems/talos/internal/pkg/etcd" @@ -40,7 +39,7 @@ func recoverAssets(config config.Provider) error { switch *recoverSource { case machineapi.RecoverRequest_ETCD.String(): - var client *clientv3.Client + var client *etcd.Client client, err = etcd.NewClient([]string{"127.0.0.1:2379"}) if err != nil { @@ -54,7 +53,7 @@ func recoverAssets(config config.Provider) error { return err } - backend = recovery.NewEtcdBackendWithTransformer(client, "/registry", transform) + backend = recovery.NewEtcdBackendWithTransformer(client.Client, "/registry", transform) case machineapi.RecoverRequest_APISERVER.String(): backend, err = recovery.NewAPIServerBackend(constants.RecoveryKubeconfig) if err != nil { diff --git a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go index 1ab9b43ae..e0a71cd2c 100644 --- a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go +++ b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go @@ -240,7 +240,12 @@ func (s *Server) Upgrade(ctx context.Context, in *machine.UpgradeRequest) (reply return nil, fmt.Errorf("error validating installer image %q: %w", in.GetImage(), err) } - if err = etcd.ValidateForUpgrade(s.Controller.Runtime().Config(), in.GetPreserve()); err != nil { + client, err := etcd.NewClientFromControlPlaneIPs(ctx, s.Controller.Runtime().Config().Cluster().CA(), s.Controller.Runtime().Config().Cluster().Endpoint()) + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + if err = client.ValidateForUpgrade(ctx, s.Controller.Runtime().Config(), in.GetPreserve()); err != nil { return nil, fmt.Errorf("error validating etcd for upgrade: %w", err) } @@ -1200,3 +1205,84 @@ func (s *Server) Memory(ctx context.Context, in *empty.Empty) (reply *machine.Me return reply, err } + +// EtcdMemberList implements the machine.MachineServer interface. +func (s *Server) EtcdMemberList(ctx context.Context, in *machine.EtcdMemberListRequest) (reply *machine.EtcdMemberListResponse, err error) { + client, err := etcd.NewClientFromControlPlaneIPs(ctx, s.Controller.Runtime().Config().Cluster().CA(), s.Controller.Runtime().Config().Cluster().Endpoint()) + if err != nil { + return nil, err + } + + // nolint: errcheck + defer client.Close() + + resp, err := client.MemberList(ctx) + if err != nil { + return nil, err + } + + members := make([]string, 0, len(resp.Members)) + + for _, member := range resp.Members { + members = append(members, member.GetName()) + } + + reply = &machine.EtcdMemberListResponse{ + Messages: []*machine.EtcdMemberList{ + { + Members: members, + }, + }, + } + + return reply, nil +} + +// EtcdLeaveCluster implements the machine.MachineServer interface. +func (s *Server) EtcdLeaveCluster(ctx context.Context, in *machine.EtcdLeaveClusterRequest) (reply *machine.EtcdLeaveClusterResponse, err error) { + client, err := etcd.NewClientFromControlPlaneIPs(ctx, s.Controller.Runtime().Config().Cluster().CA(), s.Controller.Runtime().Config().Cluster().Endpoint()) + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + // nolint: errcheck + defer client.Close() + + if err = client.LeaveCluster(ctx); err != nil { + return nil, fmt.Errorf("failed to leave cluster: %w", err) + } + + reply = &machine.EtcdLeaveClusterResponse{ + Messages: []*machine.EtcdLeaveCluster{ + {}, + }, + } + + return reply, nil +} + +// EtcdForfeitLeadership implements the machine.MachineServer interface. +func (s *Server) EtcdForfeitLeadership(ctx context.Context, in *machine.EtcdForfeitLeadershipRequest) (reply *machine.EtcdForfeitLeadershipResponse, err error) { + client, err := etcd.NewClientFromControlPlaneIPs(ctx, s.Controller.Runtime().Config().Cluster().CA(), s.Controller.Runtime().Config().Cluster().Endpoint()) + if err != nil { + return nil, fmt.Errorf("failed to create etcd client: %w", err) + } + + // nolint: errcheck + defer client.Close() + + leader, err := client.ForfeitLeadership(ctx) + if err != nil { + return nil, fmt.Errorf("failed to forfeit leadership: %w", err) + } + + reply = &machine.EtcdForfeitLeadershipResponse{ + Messages: []*machine.EtcdForfeitLeadership{ + { + Member: leader, + }, + }, + } + + return reply, nil +} diff --git a/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go b/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go index ca3a9e706..13caf25b3 100644 --- a/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go +++ b/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go @@ -1160,53 +1160,16 @@ func UncordonNode(seq runtime.Sequence, data interface{}) (runtime.TaskExecution // nolint: gocyclo func LeaveEtcd(seq runtime.Sequence, data interface{}) (runtime.TaskExecutionFunc, string) { return func(ctx context.Context, logger *log.Logger, r runtime.Runtime) (err error) { - hostname, err := os.Hostname() - if err != nil { - return err - } - client, err := etcd.NewClientFromControlPlaneIPs(ctx, r.Config().Cluster().CA(), r.Config().Cluster().Endpoint()) if err != nil { - return err + return fmt.Errorf("failed to create etcd client: %w", err) } // nolint: errcheck defer client.Close() - resp, err := client.MemberList(ctx) - if err != nil { - return err - } - - var id *uint64 - - for _, member := range resp.Members { - if member.Name == hostname { - member := member - id = &member.ID - - break - } - } - - if id == nil { - return fmt.Errorf("failed to find %q in list of etcd members", hostname) - } - - logger.Println("leaving etcd cluster") - - _, err = client.MemberRemove(ctx, *id) - if err != nil { - return err - } - - if err = system.Services(nil).Stop(ctx, "etcd"); err != nil { - return err - } - - // Once the member is removed, the data is no longer valid. - if err = os.RemoveAll(constants.EtcdDataPath); err != nil { - return err + if err = client.LeaveCluster(ctx); err != nil { + return fmt.Errorf("failed to leave cluster: %w", err) } return nil diff --git a/internal/integration/api/etcd.go b/internal/integration/api/etcd.go new file mode 100644 index 000000000..7c8451c37 --- /dev/null +++ b/internal/integration/api/etcd.go @@ -0,0 +1,139 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +// +build integration_api + +package api + +import ( + "context" + "io" + "testing" + "time" + + "github.com/golang/protobuf/ptypes/empty" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "github.com/talos-systems/talos/internal/integration/base" + machineapi "github.com/talos-systems/talos/pkg/machinery/api/machine" + "github.com/talos-systems/talos/pkg/machinery/client" + "github.com/talos-systems/talos/pkg/machinery/config/types/v1alpha1/machine" + "github.com/talos-systems/talos/pkg/machinery/constants" +) + +type EtcdSuite struct { + base.APISuite + + ctx context.Context + ctxCancel context.CancelFunc +} + +// SuiteName ... +func (suite *EtcdSuite) SuiteName() string { + return "api.EtcdSuite" +} + +// SetupTest ... +func (suite *EtcdSuite) SetupTest() { + if testing.Short() { + suite.T().Skip("skipping in short mode") + } + + // make sure we abort at some point in time, but give enough room for Etcds + suite.ctx, suite.ctxCancel = context.WithTimeout(context.Background(), 30*time.Minute) +} + +// TearDownTest ... +func (suite *EtcdSuite) TearDownTest() { + if suite.ctxCancel != nil { + suite.ctxCancel() + } +} + +// TestEtcdForfeitLeadership tests moving etcd leadership to another member. +func (suite *EtcdSuite) TestEtcdForfeitLeadership() { + if suite.Cluster == nil { + suite.T().Skip("without full cluster state etcd test is not reliable (can't wait for cluster readiness in between resets)") + } + + nodes := suite.DiscoverNodes().NodesByType(machine.TypeControlPlane) + + var leader string + + for _, node := range nodes { + resp, err := suite.Client.MachineClient.EtcdForfeitLeadership(client.WithNodes(suite.ctx, node), &machineapi.EtcdForfeitLeadershipRequest{}) + suite.Require().NoError(err) + + suite.Assert().Empty(resp.Messages[0].Metadata.Error, "node: %s", node) + + if resp.Messages[0].GetMember() != "" { + leader = resp.Messages[0].GetMember() + + suite.T().Log("Moved leadership to", leader) + } + } + + suite.Assert().NotEmpty(leader) +} + +// TestEtcdLeaveCluster tests removing an etcd member. +func (suite *EtcdSuite) TestEtcdLeaveCluster() { + if !suite.Capabilities().SupportsReboot { + suite.T().Skip("cluster doesn't support reboot (and reset)") + } + + if suite.Cluster == nil { + suite.T().Skip("without full cluster state reset test is not reliable (can't wait for cluster readiness in between resets)") + } + + nodes := suite.DiscoverNodes().NodesByType(machine.TypeControlPlane) + + node := nodes[2] + + suite.T().Log("Removing etcd member", node) + + nodeCtx := client.WithNodes(suite.ctx, node) + + _, err := suite.Client.MachineClient.EtcdForfeitLeadership(nodeCtx, &machineapi.EtcdForfeitLeadershipRequest{}) + suite.Require().NoError(err) + + _, err = suite.Client.MachineClient.EtcdLeaveCluster(nodeCtx, &machineapi.EtcdLeaveClusterRequest{}) + suite.Require().NoError(err) + + services, err := suite.Client.MachineClient.ServiceList(nodeCtx, &empty.Empty{}) + suite.Require().NoError(err) + + for _, service := range services.Messages[0].GetServices() { + if service.Id == "etcd" && service.State != "Finished" { + suite.Assert().Equal("Finished", service.State) + } + } + + stream, err := suite.Client.MachineClient.List(nodeCtx, &machineapi.ListRequest{Root: constants.EtcdDataPath}) + suite.Require().NoError(err) + + for { + info, err := stream.Recv() + if err != nil { + if err == io.EOF || status.Code(err) == codes.Canceled { + break + } + } + + suite.Assert().Equal("rpc error: code = Unknown desc = lstat /var/lib/etcd: no such file or directory", info.Metadata.Error) + } + + // NB: Reboot the node so that it can rejoin the etcd cluster. This allows us + // to check the cluster health and catch any issues in rejoining. + suite.AssertRebooted(suite.ctx, node, func(nodeCtx context.Context) error { + _, err = suite.Client.MachineClient.Reboot(nodeCtx, &empty.Empty{}) + + return err + }, 10*time.Minute) +} + +func init() { + allSuites = append(allSuites, new(EtcdSuite)) +} diff --git a/internal/pkg/etcd/etcd.go b/internal/pkg/etcd/etcd.go index 4d5d12493..d5c4db204 100644 --- a/internal/pkg/etcd/etcd.go +++ b/internal/pkg/etcd/etcd.go @@ -7,10 +7,13 @@ package etcd import ( "context" "fmt" + "log" "net/url" + "os" "time" "go.etcd.io/etcd/clientv3" + "go.etcd.io/etcd/etcdserver/etcdserverpb" "go.etcd.io/etcd/pkg/transport" "google.golang.org/grpc" @@ -18,15 +21,21 @@ import ( "github.com/talos-systems/net" + "github.com/talos-systems/talos/internal/app/machined/pkg/system" "github.com/talos-systems/talos/pkg/kubernetes" "github.com/talos-systems/talos/pkg/machinery/config" "github.com/talos-systems/talos/pkg/machinery/config/types/v1alpha1/machine" "github.com/talos-systems/talos/pkg/machinery/constants" ) +// Client is a wrapper around the official etcd client. +type Client struct { + *clientv3.Client +} + // NewClient initializes and returns an etcd client configured to talk to // a local endpoint. -func NewClient(endpoints []string) (client *clientv3.Client, err error) { +func NewClient(endpoints []string) (client *Client, err error) { tlsInfo := transport.TLSInfo{ CertFile: constants.KubernetesEtcdPeerCert, KeyFile: constants.KubernetesEtcdPeerKey, @@ -38,7 +47,7 @@ func NewClient(endpoints []string) (client *clientv3.Client, err error) { return nil, err } - client, err = clientv3.New(clientv3.Config{ + c, err := clientv3.New(clientv3.Config{ Endpoints: endpoints, DialTimeout: 5 * time.Second, DialOptions: []grpc.DialOption{grpc.WithBlock()}, @@ -48,12 +57,12 @@ func NewClient(endpoints []string) (client *clientv3.Client, err error) { return nil, err } - return client, nil + return &Client{Client: c}, nil } // NewClientFromControlPlaneIPs initializes and returns an etcd client // configured to talk to all members. -func NewClientFromControlPlaneIPs(ctx context.Context, creds *x509.PEMEncodedCertificateAndKey, endpoint *url.URL) (client *clientv3.Client, err error) { +func NewClientFromControlPlaneIPs(ctx context.Context, creds *x509.PEMEncodedCertificateAndKey, endpoint *url.URL) (client *Client, err error) { h, err := kubernetes.NewTemporaryClientFromPKI(creds, endpoint) if err != nil { return nil, err @@ -75,17 +84,9 @@ func NewClientFromControlPlaneIPs(ctx context.Context, creds *x509.PEMEncodedCer // ValidateForUpgrade validates the etcd cluster state to ensure that performing // an upgrade is safe. -func ValidateForUpgrade(config config.Provider, preserve bool) error { +func (c *Client) ValidateForUpgrade(ctx context.Context, config config.Provider, preserve bool) error { if config.Machine().Type() != machine.TypeJoin { - client, err := NewClientFromControlPlaneIPs(context.TODO(), config.Cluster().CA(), config.Cluster().Endpoint()) - if err != nil { - return err - } - - // nolint: errcheck - defer client.Close() - - resp, err := client.MemberList(context.Background()) + resp, err := c.MemberList(context.Background()) if err != nil { return err } @@ -106,3 +107,112 @@ func ValidateForUpgrade(config config.Provider, preserve bool) error { return nil } + +// LeaveCluster removes the current member from the etcd cluster. +// +// nolint: gocyclo +func (c *Client) LeaveCluster(ctx context.Context) error { + hostname, err := os.Hostname() + if err != nil { + return err + } + + resp, err := c.MemberList(ctx) + if err != nil { + return err + } + + var id *uint64 + + for _, member := range resp.Members { + if member.Name == hostname { + member := member + id = &member.ID + + break + } + } + + if id == nil { + return fmt.Errorf("failed to find %q in list of etcd members", hostname) + } + + _, err = c.MemberRemove(ctx, *id) + if err != nil { + return fmt.Errorf("failed to remove member %d: %w", *id, err) + } + + if err = system.Services(nil).Stop(ctx, "etcd"); err != nil { + return fmt.Errorf("failed to stop etcd: %w", err) + } + + // Once the member is removed, the data is no longer valid. + if err = os.RemoveAll(constants.EtcdDataPath); err != nil { + return fmt.Errorf("failed to remove %s: %w", constants.EtcdDataPath, err) + } + + return nil +} + +// ForfeitLeadership transfers leadership from the current member to another +// member. +// +// nolint: gocyclo +func (c *Client) ForfeitLeadership(ctx context.Context) (string, error) { + hostname, err := os.Hostname() + if err != nil { + return "", fmt.Errorf("failed to get hostname: %w", err) + } + + resp, err := c.MemberList(ctx) + if err != nil { + return "", fmt.Errorf("failed to list etcd members: %w", err) + } + + if len(resp.Members) == 1 { + return "", fmt.Errorf("cannot forfeit leadership, only one member") + } + + var member *etcdserverpb.Member + + for _, m := range resp.Members { + if m.Name == hostname { + member = m + break + } + } + + if member == nil { + return "", fmt.Errorf("failed to find %q in list of etcd members", hostname) + } + + for _, ep := range member.GetClientURLs() { + var status *clientv3.StatusResponse + + status, err = c.Status(ctx, ep) + if err != nil { + return "", err + } + + if status.Leader != member.GetID() { + return "", nil + } + + for _, m := range resp.Members { + if m.GetID() != member.GetID() { + log.Printf("moving leadership from %q to %q", member.GetName(), m.GetName()) + + c.SetEndpoints(ep) + + _, err = c.MoveLeader(ctx, m.GetID()) + if err != nil { + return "", err + } + + return m.GetName(), nil + } + } + } + + return "", nil +} diff --git a/pkg/machinery/api/machine/machine.pb.go b/pkg/machinery/api/machine/machine.pb.go index 4d68642f1..075902346 100644 --- a/pkg/machinery/api/machine/machine.pb.go +++ b/pkg/machinery/api/machine/machine.pb.go @@ -287,7 +287,8 @@ func (RecoverRequest_Source) EnumDescriptor() ([]byte, []int) { } // rpc applyConfiguration -// ApplyConfiguration describes a request to assert a new configuration upon a node. +// ApplyConfiguration describes a request to assert a new configuration upon a +// node. type ApplyConfigurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6551,6 +6552,418 @@ func (x *DiskStat) GetDiscardTimeMs() uint64 { return 0 } +type EtcdLeaveClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EtcdLeaveClusterRequest) Reset() { + *x = EtcdLeaveClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdLeaveClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdLeaveClusterRequest) ProtoMessage() {} + +func (x *EtcdLeaveClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdLeaveClusterRequest.ProtoReflect.Descriptor instead. +func (*EtcdLeaveClusterRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{95} +} + +type EtcdLeaveCluster 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 *EtcdLeaveCluster) Reset() { + *x = EtcdLeaveCluster{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdLeaveCluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdLeaveCluster) ProtoMessage() {} + +func (x *EtcdLeaveCluster) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdLeaveCluster.ProtoReflect.Descriptor instead. +func (*EtcdLeaveCluster) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{96} +} + +func (x *EtcdLeaveCluster) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +type EtcdLeaveClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdLeaveCluster `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdLeaveClusterResponse) Reset() { + *x = EtcdLeaveClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdLeaveClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdLeaveClusterResponse) ProtoMessage() {} + +func (x *EtcdLeaveClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdLeaveClusterResponse.ProtoReflect.Descriptor instead. +func (*EtcdLeaveClusterResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{97} +} + +func (x *EtcdLeaveClusterResponse) GetMessages() []*EtcdLeaveCluster { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdForfeitLeadershipRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EtcdForfeitLeadershipRequest) Reset() { + *x = EtcdForfeitLeadershipRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdForfeitLeadershipRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdForfeitLeadershipRequest) ProtoMessage() {} + +func (x *EtcdForfeitLeadershipRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdForfeitLeadershipRequest.ProtoReflect.Descriptor instead. +func (*EtcdForfeitLeadershipRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{98} +} + +type EtcdForfeitLeadership struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Member string `protobuf:"bytes,2,opt,name=member,proto3" json:"member,omitempty"` +} + +func (x *EtcdForfeitLeadership) Reset() { + *x = EtcdForfeitLeadership{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdForfeitLeadership) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdForfeitLeadership) ProtoMessage() {} + +func (x *EtcdForfeitLeadership) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdForfeitLeadership.ProtoReflect.Descriptor instead. +func (*EtcdForfeitLeadership) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{99} +} + +func (x *EtcdForfeitLeadership) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *EtcdForfeitLeadership) GetMember() string { + if x != nil { + return x.Member + } + return "" +} + +type EtcdForfeitLeadershipResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdForfeitLeadership `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdForfeitLeadershipResponse) Reset() { + *x = EtcdForfeitLeadershipResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdForfeitLeadershipResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdForfeitLeadershipResponse) ProtoMessage() {} + +func (x *EtcdForfeitLeadershipResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdForfeitLeadershipResponse.ProtoReflect.Descriptor instead. +func (*EtcdForfeitLeadershipResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{100} +} + +func (x *EtcdForfeitLeadershipResponse) GetMessages() []*EtcdForfeitLeadership { + if x != nil { + return x.Messages + } + return nil +} + +type EtcdMemberListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EtcdMemberListRequest) Reset() { + *x = EtcdMemberListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdMemberListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdMemberListRequest) ProtoMessage() {} + +func (x *EtcdMemberListRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdMemberListRequest.ProtoReflect.Descriptor instead. +func (*EtcdMemberListRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{101} +} + +type EtcdMemberList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *EtcdMemberList) Reset() { + *x = EtcdMemberList{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdMemberList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdMemberList) ProtoMessage() {} + +func (x *EtcdMemberList) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdMemberList.ProtoReflect.Descriptor instead. +func (*EtcdMemberList) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{102} +} + +func (x *EtcdMemberList) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *EtcdMemberList) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type EtcdMemberListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*EtcdMemberList `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *EtcdMemberListResponse) Reset() { + *x = EtcdMemberListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtcdMemberListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtcdMemberListResponse) ProtoMessage() {} + +func (x *EtcdMemberListResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtcdMemberListResponse.ProtoReflect.Descriptor instead. +func (*EtcdMemberListResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{103} +} + +func (x *EtcdMemberListResponse) GetMessages() []*EtcdMemberList { + if x != nil { + return x.Messages + } + return nil +} + var File_machine_machine_proto protoreflect.FileDescriptor var file_machine_machine_proto_rawDesc = []byte{ @@ -7326,140 +7739,194 @@ var file_machine_machine_proto_rawDesc = []byte{ 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x32, - 0xe9, 0x0f, 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, 0x3d, 0x0a, 0x08, - 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x22, + 0x19, 0x0a, 0x17, 0x45, 0x74, 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x10, 0x45, 0x74, + 0x63, 0x64, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x51, 0x0a, 0x18, + 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, 0x35, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 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, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, + 0x1e, 0x0a, 0x1c, 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, 0x22, + 0x5d, 0x0a, 0x15, 0x45, 0x74, 0x63, 0x64, 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 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, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, + 0x0a, 0x1d, 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, + 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, 0x45, 0x74, 0x63, 0x64, + 0x46, 0x6f, 0x72, 0x66, 0x65, 0x69, 0x74, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x45, + 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x0e, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 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, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x4d, + 0x0a, 0x16, 0x45, 0x74, 0x63, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 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, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x32, 0xfd, 0x11, + 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, 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, 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, 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, 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, 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, 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, 0x3c, 0x0a, 0x07, 0x52, + 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, + 0x72, 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, 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, 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, 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, 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, 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, 0x3c, 0x0a, 0x07, 0x52, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 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, + 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, 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, 0x3d, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, - 0x77, 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, 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, + 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, 0x3d, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 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, 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, 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, 0x42, 0x59, 0x0a, 0x0f, 0x63, - 0x6f, 0x6d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a, - 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x70, 0x69, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 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, + 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, 0x42, 0x59, 0x0a, + 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x42, 0x0a, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x70, 0x69, 0x50, 0x01, 0x5a, 0x38, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, + 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 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 ( @@ -7476,272 +7943,293 @@ func file_machine_machine_proto_rawDescGZIP() []byte { var ( file_machine_machine_proto_enumTypes = make([]protoimpl.EnumInfo, 5) - file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 95) + file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 104) file_machine_machine_proto_goTypes = []interface{}{ - (SequenceEvent_Action)(0), // 0: machine.SequenceEvent.Action - (PhaseEvent_Action)(0), // 1: machine.PhaseEvent.Action - (TaskEvent_Action)(0), // 2: machine.TaskEvent.Action - (ServiceStateEvent_Action)(0), // 3: machine.ServiceStateEvent.Action - (RecoverRequest_Source)(0), // 4: machine.RecoverRequest.Source - (*ApplyConfigurationRequest)(nil), // 5: machine.ApplyConfigurationRequest - (*ApplyConfiguration)(nil), // 6: machine.ApplyConfiguration - (*ApplyConfigurationResponse)(nil), // 7: machine.ApplyConfigurationResponse - (*Reboot)(nil), // 8: machine.Reboot - (*RebootResponse)(nil), // 9: machine.RebootResponse - (*BootstrapRequest)(nil), // 10: machine.BootstrapRequest - (*Bootstrap)(nil), // 11: machine.Bootstrap - (*BootstrapResponse)(nil), // 12: machine.BootstrapResponse - (*SequenceEvent)(nil), // 13: machine.SequenceEvent - (*PhaseEvent)(nil), // 14: machine.PhaseEvent - (*TaskEvent)(nil), // 15: machine.TaskEvent - (*ServiceStateEvent)(nil), // 16: machine.ServiceStateEvent - (*EventsRequest)(nil), // 17: machine.EventsRequest - (*Event)(nil), // 18: machine.Event - (*ResetRequest)(nil), // 19: machine.ResetRequest - (*Reset)(nil), // 20: machine.Reset - (*ResetResponse)(nil), // 21: machine.ResetResponse - (*RecoverRequest)(nil), // 22: machine.RecoverRequest - (*Recover)(nil), // 23: machine.Recover - (*RecoverResponse)(nil), // 24: machine.RecoverResponse - (*Shutdown)(nil), // 25: machine.Shutdown - (*ShutdownResponse)(nil), // 26: machine.ShutdownResponse - (*UpgradeRequest)(nil), // 27: machine.UpgradeRequest - (*Upgrade)(nil), // 28: machine.Upgrade - (*UpgradeResponse)(nil), // 29: machine.UpgradeResponse - (*ServiceList)(nil), // 30: machine.ServiceList - (*ServiceListResponse)(nil), // 31: machine.ServiceListResponse - (*ServiceInfo)(nil), // 32: machine.ServiceInfo - (*ServiceEvents)(nil), // 33: machine.ServiceEvents - (*ServiceEvent)(nil), // 34: machine.ServiceEvent - (*ServiceHealth)(nil), // 35: machine.ServiceHealth - (*ServiceStartRequest)(nil), // 36: machine.ServiceStartRequest - (*ServiceStart)(nil), // 37: machine.ServiceStart - (*ServiceStartResponse)(nil), // 38: machine.ServiceStartResponse - (*ServiceStopRequest)(nil), // 39: machine.ServiceStopRequest - (*ServiceStop)(nil), // 40: machine.ServiceStop - (*ServiceStopResponse)(nil), // 41: machine.ServiceStopResponse - (*ServiceRestartRequest)(nil), // 42: machine.ServiceRestartRequest - (*ServiceRestart)(nil), // 43: machine.ServiceRestart - (*ServiceRestartResponse)(nil), // 44: machine.ServiceRestartResponse - (*StartRequest)(nil), // 45: machine.StartRequest - (*StartResponse)(nil), // 46: machine.StartResponse - (*StopRequest)(nil), // 47: machine.StopRequest - (*StopResponse)(nil), // 48: machine.StopResponse - (*CopyRequest)(nil), // 49: machine.CopyRequest - (*ListRequest)(nil), // 50: machine.ListRequest - (*FileInfo)(nil), // 51: machine.FileInfo - (*Mounts)(nil), // 52: machine.Mounts - (*MountsResponse)(nil), // 53: machine.MountsResponse - (*MountStat)(nil), // 54: machine.MountStat - (*Version)(nil), // 55: machine.Version - (*VersionResponse)(nil), // 56: machine.VersionResponse - (*VersionInfo)(nil), // 57: machine.VersionInfo - (*PlatformInfo)(nil), // 58: machine.PlatformInfo - (*LogsRequest)(nil), // 59: machine.LogsRequest - (*ReadRequest)(nil), // 60: machine.ReadRequest - (*RollbackRequest)(nil), // 61: machine.RollbackRequest - (*Rollback)(nil), // 62: machine.Rollback - (*RollbackResponse)(nil), // 63: machine.RollbackResponse - (*ContainersRequest)(nil), // 64: machine.ContainersRequest - (*ContainerInfo)(nil), // 65: machine.ContainerInfo - (*Container)(nil), // 66: machine.Container - (*ContainersResponse)(nil), // 67: machine.ContainersResponse - (*DmesgRequest)(nil), // 68: machine.DmesgRequest - (*ProcessesRequest)(nil), // 69: machine.ProcessesRequest - (*ProcessesResponse)(nil), // 70: machine.ProcessesResponse - (*Process)(nil), // 71: machine.Process - (*ProcessInfo)(nil), // 72: machine.ProcessInfo - (*RestartRequest)(nil), // 73: machine.RestartRequest - (*Restart)(nil), // 74: machine.Restart - (*RestartResponse)(nil), // 75: machine.RestartResponse - (*StatsRequest)(nil), // 76: machine.StatsRequest - (*Stats)(nil), // 77: machine.Stats - (*StatsResponse)(nil), // 78: machine.StatsResponse - (*Stat)(nil), // 79: machine.Stat - (*Memory)(nil), // 80: machine.Memory - (*MemoryResponse)(nil), // 81: machine.MemoryResponse - (*MemInfo)(nil), // 82: machine.MemInfo - (*HostnameResponse)(nil), // 83: machine.HostnameResponse - (*Hostname)(nil), // 84: machine.Hostname - (*LoadAvgResponse)(nil), // 85: machine.LoadAvgResponse - (*LoadAvg)(nil), // 86: machine.LoadAvg - (*SystemStatResponse)(nil), // 87: machine.SystemStatResponse - (*SystemStat)(nil), // 88: machine.SystemStat - (*CPUStat)(nil), // 89: machine.CPUStat - (*SoftIRQStat)(nil), // 90: machine.SoftIRQStat - (*CPUInfoResponse)(nil), // 91: machine.CPUInfoResponse - (*CPUsInfo)(nil), // 92: machine.CPUsInfo - (*CPUInfo)(nil), // 93: machine.CPUInfo - (*NetworkDeviceStatsResponse)(nil), // 94: machine.NetworkDeviceStatsResponse - (*NetworkDeviceStats)(nil), // 95: machine.NetworkDeviceStats - (*NetDev)(nil), // 96: machine.NetDev - (*DiskStatsResponse)(nil), // 97: machine.DiskStatsResponse - (*DiskStats)(nil), // 98: machine.DiskStats - (*DiskStat)(nil), // 99: machine.DiskStat - (*common.Metadata)(nil), // 100: common.Metadata - (*common.Error)(nil), // 101: common.Error - (*any.Any)(nil), // 102: google.protobuf.Any - (*timestamp.Timestamp)(nil), // 103: google.protobuf.Timestamp - (common.ContainerDriver)(0), // 104: common.ContainerDriver - (*empty.Empty)(nil), // 105: google.protobuf.Empty - (*common.Data)(nil), // 106: common.Data + (SequenceEvent_Action)(0), // 0: machine.SequenceEvent.Action + (PhaseEvent_Action)(0), // 1: machine.PhaseEvent.Action + (TaskEvent_Action)(0), // 2: machine.TaskEvent.Action + (ServiceStateEvent_Action)(0), // 3: machine.ServiceStateEvent.Action + (RecoverRequest_Source)(0), // 4: machine.RecoverRequest.Source + (*ApplyConfigurationRequest)(nil), // 5: machine.ApplyConfigurationRequest + (*ApplyConfiguration)(nil), // 6: machine.ApplyConfiguration + (*ApplyConfigurationResponse)(nil), // 7: machine.ApplyConfigurationResponse + (*Reboot)(nil), // 8: machine.Reboot + (*RebootResponse)(nil), // 9: machine.RebootResponse + (*BootstrapRequest)(nil), // 10: machine.BootstrapRequest + (*Bootstrap)(nil), // 11: machine.Bootstrap + (*BootstrapResponse)(nil), // 12: machine.BootstrapResponse + (*SequenceEvent)(nil), // 13: machine.SequenceEvent + (*PhaseEvent)(nil), // 14: machine.PhaseEvent + (*TaskEvent)(nil), // 15: machine.TaskEvent + (*ServiceStateEvent)(nil), // 16: machine.ServiceStateEvent + (*EventsRequest)(nil), // 17: machine.EventsRequest + (*Event)(nil), // 18: machine.Event + (*ResetRequest)(nil), // 19: machine.ResetRequest + (*Reset)(nil), // 20: machine.Reset + (*ResetResponse)(nil), // 21: machine.ResetResponse + (*RecoverRequest)(nil), // 22: machine.RecoverRequest + (*Recover)(nil), // 23: machine.Recover + (*RecoverResponse)(nil), // 24: machine.RecoverResponse + (*Shutdown)(nil), // 25: machine.Shutdown + (*ShutdownResponse)(nil), // 26: machine.ShutdownResponse + (*UpgradeRequest)(nil), // 27: machine.UpgradeRequest + (*Upgrade)(nil), // 28: machine.Upgrade + (*UpgradeResponse)(nil), // 29: machine.UpgradeResponse + (*ServiceList)(nil), // 30: machine.ServiceList + (*ServiceListResponse)(nil), // 31: machine.ServiceListResponse + (*ServiceInfo)(nil), // 32: machine.ServiceInfo + (*ServiceEvents)(nil), // 33: machine.ServiceEvents + (*ServiceEvent)(nil), // 34: machine.ServiceEvent + (*ServiceHealth)(nil), // 35: machine.ServiceHealth + (*ServiceStartRequest)(nil), // 36: machine.ServiceStartRequest + (*ServiceStart)(nil), // 37: machine.ServiceStart + (*ServiceStartResponse)(nil), // 38: machine.ServiceStartResponse + (*ServiceStopRequest)(nil), // 39: machine.ServiceStopRequest + (*ServiceStop)(nil), // 40: machine.ServiceStop + (*ServiceStopResponse)(nil), // 41: machine.ServiceStopResponse + (*ServiceRestartRequest)(nil), // 42: machine.ServiceRestartRequest + (*ServiceRestart)(nil), // 43: machine.ServiceRestart + (*ServiceRestartResponse)(nil), // 44: machine.ServiceRestartResponse + (*StartRequest)(nil), // 45: machine.StartRequest + (*StartResponse)(nil), // 46: machine.StartResponse + (*StopRequest)(nil), // 47: machine.StopRequest + (*StopResponse)(nil), // 48: machine.StopResponse + (*CopyRequest)(nil), // 49: machine.CopyRequest + (*ListRequest)(nil), // 50: machine.ListRequest + (*FileInfo)(nil), // 51: machine.FileInfo + (*Mounts)(nil), // 52: machine.Mounts + (*MountsResponse)(nil), // 53: machine.MountsResponse + (*MountStat)(nil), // 54: machine.MountStat + (*Version)(nil), // 55: machine.Version + (*VersionResponse)(nil), // 56: machine.VersionResponse + (*VersionInfo)(nil), // 57: machine.VersionInfo + (*PlatformInfo)(nil), // 58: machine.PlatformInfo + (*LogsRequest)(nil), // 59: machine.LogsRequest + (*ReadRequest)(nil), // 60: machine.ReadRequest + (*RollbackRequest)(nil), // 61: machine.RollbackRequest + (*Rollback)(nil), // 62: machine.Rollback + (*RollbackResponse)(nil), // 63: machine.RollbackResponse + (*ContainersRequest)(nil), // 64: machine.ContainersRequest + (*ContainerInfo)(nil), // 65: machine.ContainerInfo + (*Container)(nil), // 66: machine.Container + (*ContainersResponse)(nil), // 67: machine.ContainersResponse + (*DmesgRequest)(nil), // 68: machine.DmesgRequest + (*ProcessesRequest)(nil), // 69: machine.ProcessesRequest + (*ProcessesResponse)(nil), // 70: machine.ProcessesResponse + (*Process)(nil), // 71: machine.Process + (*ProcessInfo)(nil), // 72: machine.ProcessInfo + (*RestartRequest)(nil), // 73: machine.RestartRequest + (*Restart)(nil), // 74: machine.Restart + (*RestartResponse)(nil), // 75: machine.RestartResponse + (*StatsRequest)(nil), // 76: machine.StatsRequest + (*Stats)(nil), // 77: machine.Stats + (*StatsResponse)(nil), // 78: machine.StatsResponse + (*Stat)(nil), // 79: machine.Stat + (*Memory)(nil), // 80: machine.Memory + (*MemoryResponse)(nil), // 81: machine.MemoryResponse + (*MemInfo)(nil), // 82: machine.MemInfo + (*HostnameResponse)(nil), // 83: machine.HostnameResponse + (*Hostname)(nil), // 84: machine.Hostname + (*LoadAvgResponse)(nil), // 85: machine.LoadAvgResponse + (*LoadAvg)(nil), // 86: machine.LoadAvg + (*SystemStatResponse)(nil), // 87: machine.SystemStatResponse + (*SystemStat)(nil), // 88: machine.SystemStat + (*CPUStat)(nil), // 89: machine.CPUStat + (*SoftIRQStat)(nil), // 90: machine.SoftIRQStat + (*CPUInfoResponse)(nil), // 91: machine.CPUInfoResponse + (*CPUsInfo)(nil), // 92: machine.CPUsInfo + (*CPUInfo)(nil), // 93: machine.CPUInfo + (*NetworkDeviceStatsResponse)(nil), // 94: machine.NetworkDeviceStatsResponse + (*NetworkDeviceStats)(nil), // 95: machine.NetworkDeviceStats + (*NetDev)(nil), // 96: machine.NetDev + (*DiskStatsResponse)(nil), // 97: machine.DiskStatsResponse + (*DiskStats)(nil), // 98: machine.DiskStats + (*DiskStat)(nil), // 99: machine.DiskStat + (*EtcdLeaveClusterRequest)(nil), // 100: machine.EtcdLeaveClusterRequest + (*EtcdLeaveCluster)(nil), // 101: machine.EtcdLeaveCluster + (*EtcdLeaveClusterResponse)(nil), // 102: machine.EtcdLeaveClusterResponse + (*EtcdForfeitLeadershipRequest)(nil), // 103: machine.EtcdForfeitLeadershipRequest + (*EtcdForfeitLeadership)(nil), // 104: machine.EtcdForfeitLeadership + (*EtcdForfeitLeadershipResponse)(nil), // 105: machine.EtcdForfeitLeadershipResponse + (*EtcdMemberListRequest)(nil), // 106: machine.EtcdMemberListRequest + (*EtcdMemberList)(nil), // 107: machine.EtcdMemberList + (*EtcdMemberListResponse)(nil), // 108: machine.EtcdMemberListResponse + (*common.Metadata)(nil), // 109: common.Metadata + (*common.Error)(nil), // 110: common.Error + (*any.Any)(nil), // 111: google.protobuf.Any + (*timestamp.Timestamp)(nil), // 112: google.protobuf.Timestamp + (common.ContainerDriver)(0), // 113: common.ContainerDriver + (*empty.Empty)(nil), // 114: google.protobuf.Empty + (*common.Data)(nil), // 115: common.Data } ) var file_machine_machine_proto_depIdxs = []int32{ - 100, // 0: machine.ApplyConfiguration.metadata:type_name -> common.Metadata + 109, // 0: machine.ApplyConfiguration.metadata:type_name -> common.Metadata 6, // 1: machine.ApplyConfigurationResponse.messages:type_name -> machine.ApplyConfiguration - 100, // 2: machine.Reboot.metadata:type_name -> common.Metadata + 109, // 2: machine.Reboot.metadata:type_name -> common.Metadata 8, // 3: machine.RebootResponse.messages:type_name -> machine.Reboot - 100, // 4: machine.Bootstrap.metadata:type_name -> common.Metadata + 109, // 4: machine.Bootstrap.metadata:type_name -> common.Metadata 11, // 5: machine.BootstrapResponse.messages:type_name -> machine.Bootstrap 0, // 6: machine.SequenceEvent.action:type_name -> machine.SequenceEvent.Action - 101, // 7: machine.SequenceEvent.error:type_name -> common.Error + 110, // 7: machine.SequenceEvent.error:type_name -> common.Error 1, // 8: machine.PhaseEvent.action:type_name -> machine.PhaseEvent.Action 2, // 9: machine.TaskEvent.action:type_name -> machine.TaskEvent.Action 3, // 10: machine.ServiceStateEvent.action:type_name -> machine.ServiceStateEvent.Action - 100, // 11: machine.Event.metadata:type_name -> common.Metadata - 102, // 12: machine.Event.data:type_name -> google.protobuf.Any - 100, // 13: machine.Reset.metadata:type_name -> common.Metadata + 109, // 11: machine.Event.metadata:type_name -> common.Metadata + 111, // 12: machine.Event.data:type_name -> google.protobuf.Any + 109, // 13: machine.Reset.metadata:type_name -> common.Metadata 20, // 14: machine.ResetResponse.messages:type_name -> machine.Reset 4, // 15: machine.RecoverRequest.source:type_name -> machine.RecoverRequest.Source - 100, // 16: machine.Recover.metadata:type_name -> common.Metadata + 109, // 16: machine.Recover.metadata:type_name -> common.Metadata 23, // 17: machine.RecoverResponse.messages:type_name -> machine.Recover - 100, // 18: machine.Shutdown.metadata:type_name -> common.Metadata + 109, // 18: machine.Shutdown.metadata:type_name -> common.Metadata 25, // 19: machine.ShutdownResponse.messages:type_name -> machine.Shutdown - 100, // 20: machine.Upgrade.metadata:type_name -> common.Metadata + 109, // 20: machine.Upgrade.metadata:type_name -> common.Metadata 28, // 21: machine.UpgradeResponse.messages:type_name -> machine.Upgrade - 100, // 22: machine.ServiceList.metadata:type_name -> common.Metadata + 109, // 22: machine.ServiceList.metadata:type_name -> common.Metadata 32, // 23: machine.ServiceList.services:type_name -> machine.ServiceInfo 30, // 24: machine.ServiceListResponse.messages:type_name -> machine.ServiceList 33, // 25: machine.ServiceInfo.events:type_name -> machine.ServiceEvents 35, // 26: machine.ServiceInfo.health:type_name -> machine.ServiceHealth 34, // 27: machine.ServiceEvents.events:type_name -> machine.ServiceEvent - 103, // 28: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp - 103, // 29: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp - 100, // 30: machine.ServiceStart.metadata:type_name -> common.Metadata + 112, // 28: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp + 112, // 29: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp + 109, // 30: machine.ServiceStart.metadata:type_name -> common.Metadata 37, // 31: machine.ServiceStartResponse.messages:type_name -> machine.ServiceStart - 100, // 32: machine.ServiceStop.metadata:type_name -> common.Metadata + 109, // 32: machine.ServiceStop.metadata:type_name -> common.Metadata 40, // 33: machine.ServiceStopResponse.messages:type_name -> machine.ServiceStop - 100, // 34: machine.ServiceRestart.metadata:type_name -> common.Metadata + 109, // 34: machine.ServiceRestart.metadata:type_name -> common.Metadata 43, // 35: machine.ServiceRestartResponse.messages:type_name -> machine.ServiceRestart - 100, // 36: machine.FileInfo.metadata:type_name -> common.Metadata - 100, // 37: machine.Mounts.metadata:type_name -> common.Metadata + 109, // 36: machine.FileInfo.metadata:type_name -> common.Metadata + 109, // 37: machine.Mounts.metadata:type_name -> common.Metadata 54, // 38: machine.Mounts.stats:type_name -> machine.MountStat 52, // 39: machine.MountsResponse.messages:type_name -> machine.Mounts - 100, // 40: machine.Version.metadata:type_name -> common.Metadata + 109, // 40: machine.Version.metadata:type_name -> common.Metadata 57, // 41: machine.Version.version:type_name -> machine.VersionInfo 58, // 42: machine.Version.platform:type_name -> machine.PlatformInfo 55, // 43: machine.VersionResponse.messages:type_name -> machine.Version - 104, // 44: machine.LogsRequest.driver:type_name -> common.ContainerDriver - 100, // 45: machine.Rollback.metadata:type_name -> common.Metadata + 113, // 44: machine.LogsRequest.driver:type_name -> common.ContainerDriver + 109, // 45: machine.Rollback.metadata:type_name -> common.Metadata 62, // 46: machine.RollbackResponse.messages:type_name -> machine.Rollback - 104, // 47: machine.ContainersRequest.driver:type_name -> common.ContainerDriver - 100, // 48: machine.Container.metadata:type_name -> common.Metadata + 113, // 47: machine.ContainersRequest.driver:type_name -> common.ContainerDriver + 109, // 48: machine.Container.metadata:type_name -> common.Metadata 65, // 49: machine.Container.containers:type_name -> machine.ContainerInfo 66, // 50: machine.ContainersResponse.messages:type_name -> machine.Container 71, // 51: machine.ProcessesResponse.messages:type_name -> machine.Process - 100, // 52: machine.Process.metadata:type_name -> common.Metadata + 109, // 52: machine.Process.metadata:type_name -> common.Metadata 72, // 53: machine.Process.processes:type_name -> machine.ProcessInfo - 104, // 54: machine.RestartRequest.driver:type_name -> common.ContainerDriver - 100, // 55: machine.Restart.metadata:type_name -> common.Metadata + 113, // 54: machine.RestartRequest.driver:type_name -> common.ContainerDriver + 109, // 55: machine.Restart.metadata:type_name -> common.Metadata 74, // 56: machine.RestartResponse.messages:type_name -> machine.Restart - 104, // 57: machine.StatsRequest.driver:type_name -> common.ContainerDriver - 100, // 58: machine.Stats.metadata:type_name -> common.Metadata + 113, // 57: machine.StatsRequest.driver:type_name -> common.ContainerDriver + 109, // 58: machine.Stats.metadata:type_name -> common.Metadata 79, // 59: machine.Stats.stats:type_name -> machine.Stat 77, // 60: machine.StatsResponse.messages:type_name -> machine.Stats - 100, // 61: machine.Memory.metadata:type_name -> common.Metadata + 109, // 61: machine.Memory.metadata:type_name -> common.Metadata 82, // 62: machine.Memory.meminfo:type_name -> machine.MemInfo 80, // 63: machine.MemoryResponse.messages:type_name -> machine.Memory 84, // 64: machine.HostnameResponse.messages:type_name -> machine.Hostname - 100, // 65: machine.Hostname.metadata:type_name -> common.Metadata + 109, // 65: machine.Hostname.metadata:type_name -> common.Metadata 86, // 66: machine.LoadAvgResponse.messages:type_name -> machine.LoadAvg - 100, // 67: machine.LoadAvg.metadata:type_name -> common.Metadata + 109, // 67: machine.LoadAvg.metadata:type_name -> common.Metadata 88, // 68: machine.SystemStatResponse.messages:type_name -> machine.SystemStat - 100, // 69: machine.SystemStat.metadata:type_name -> common.Metadata + 109, // 69: machine.SystemStat.metadata:type_name -> common.Metadata 89, // 70: machine.SystemStat.cpu_total:type_name -> machine.CPUStat 89, // 71: machine.SystemStat.cpu:type_name -> machine.CPUStat 90, // 72: machine.SystemStat.soft_irq:type_name -> machine.SoftIRQStat 92, // 73: machine.CPUInfoResponse.messages:type_name -> machine.CPUsInfo - 100, // 74: machine.CPUsInfo.metadata:type_name -> common.Metadata + 109, // 74: machine.CPUsInfo.metadata:type_name -> common.Metadata 93, // 75: machine.CPUsInfo.cpu_info:type_name -> machine.CPUInfo 95, // 76: machine.NetworkDeviceStatsResponse.messages:type_name -> machine.NetworkDeviceStats - 100, // 77: machine.NetworkDeviceStats.metadata:type_name -> common.Metadata + 109, // 77: machine.NetworkDeviceStats.metadata:type_name -> common.Metadata 96, // 78: machine.NetworkDeviceStats.total:type_name -> machine.NetDev 96, // 79: machine.NetworkDeviceStats.devices:type_name -> machine.NetDev 98, // 80: machine.DiskStatsResponse.messages:type_name -> machine.DiskStats - 100, // 81: machine.DiskStats.metadata:type_name -> common.Metadata + 109, // 81: machine.DiskStats.metadata:type_name -> common.Metadata 99, // 82: machine.DiskStats.total:type_name -> machine.DiskStat 99, // 83: machine.DiskStats.devices:type_name -> machine.DiskStat - 5, // 84: machine.MachineService.ApplyConfiguration:input_type -> machine.ApplyConfigurationRequest - 10, // 85: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest - 64, // 86: machine.MachineService.Containers:input_type -> machine.ContainersRequest - 49, // 87: machine.MachineService.Copy:input_type -> machine.CopyRequest - 105, // 88: machine.MachineService.CPUInfo:input_type -> google.protobuf.Empty - 105, // 89: machine.MachineService.DiskStats:input_type -> google.protobuf.Empty - 68, // 90: machine.MachineService.Dmesg:input_type -> machine.DmesgRequest - 17, // 91: machine.MachineService.Events:input_type -> machine.EventsRequest - 105, // 92: machine.MachineService.Hostname:input_type -> google.protobuf.Empty - 105, // 93: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty - 50, // 94: machine.MachineService.List:input_type -> machine.ListRequest - 105, // 95: machine.MachineService.LoadAvg:input_type -> google.protobuf.Empty - 59, // 96: machine.MachineService.Logs:input_type -> machine.LogsRequest - 105, // 97: machine.MachineService.Memory:input_type -> google.protobuf.Empty - 105, // 98: machine.MachineService.Mounts:input_type -> google.protobuf.Empty - 105, // 99: machine.MachineService.NetworkDeviceStats:input_type -> google.protobuf.Empty - 105, // 100: machine.MachineService.Processes:input_type -> google.protobuf.Empty - 60, // 101: machine.MachineService.Read:input_type -> machine.ReadRequest - 105, // 102: machine.MachineService.Reboot:input_type -> google.protobuf.Empty - 73, // 103: machine.MachineService.Restart:input_type -> machine.RestartRequest - 61, // 104: machine.MachineService.Rollback:input_type -> machine.RollbackRequest - 19, // 105: machine.MachineService.Reset:input_type -> machine.ResetRequest - 22, // 106: machine.MachineService.Recover:input_type -> machine.RecoverRequest - 105, // 107: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty - 42, // 108: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest - 36, // 109: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest - 39, // 110: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest - 105, // 111: machine.MachineService.Shutdown:input_type -> google.protobuf.Empty - 76, // 112: machine.MachineService.Stats:input_type -> machine.StatsRequest - 105, // 113: machine.MachineService.SystemStat:input_type -> google.protobuf.Empty - 27, // 114: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest - 105, // 115: machine.MachineService.Version:input_type -> google.protobuf.Empty - 7, // 116: machine.MachineService.ApplyConfiguration:output_type -> machine.ApplyConfigurationResponse - 12, // 117: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse - 67, // 118: machine.MachineService.Containers:output_type -> machine.ContainersResponse - 106, // 119: machine.MachineService.Copy:output_type -> common.Data - 91, // 120: machine.MachineService.CPUInfo:output_type -> machine.CPUInfoResponse - 97, // 121: machine.MachineService.DiskStats:output_type -> machine.DiskStatsResponse - 106, // 122: machine.MachineService.Dmesg:output_type -> common.Data - 18, // 123: machine.MachineService.Events:output_type -> machine.Event - 83, // 124: machine.MachineService.Hostname:output_type -> machine.HostnameResponse - 106, // 125: machine.MachineService.Kubeconfig:output_type -> common.Data - 51, // 126: machine.MachineService.List:output_type -> machine.FileInfo - 85, // 127: machine.MachineService.LoadAvg:output_type -> machine.LoadAvgResponse - 106, // 128: machine.MachineService.Logs:output_type -> common.Data - 81, // 129: machine.MachineService.Memory:output_type -> machine.MemoryResponse - 53, // 130: machine.MachineService.Mounts:output_type -> machine.MountsResponse - 94, // 131: machine.MachineService.NetworkDeviceStats:output_type -> machine.NetworkDeviceStatsResponse - 70, // 132: machine.MachineService.Processes:output_type -> machine.ProcessesResponse - 106, // 133: machine.MachineService.Read:output_type -> common.Data - 9, // 134: machine.MachineService.Reboot:output_type -> machine.RebootResponse - 75, // 135: machine.MachineService.Restart:output_type -> machine.RestartResponse - 63, // 136: machine.MachineService.Rollback:output_type -> machine.RollbackResponse - 21, // 137: machine.MachineService.Reset:output_type -> machine.ResetResponse - 24, // 138: machine.MachineService.Recover:output_type -> machine.RecoverResponse - 31, // 139: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse - 44, // 140: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse - 38, // 141: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse - 41, // 142: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse - 26, // 143: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse - 78, // 144: machine.MachineService.Stats:output_type -> machine.StatsResponse - 87, // 145: machine.MachineService.SystemStat:output_type -> machine.SystemStatResponse - 29, // 146: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse - 56, // 147: machine.MachineService.Version:output_type -> machine.VersionResponse - 116, // [116:148] is the sub-list for method output_type - 84, // [84:116] is the sub-list for method input_type - 84, // [84:84] is the sub-list for extension type_name - 84, // [84:84] is the sub-list for extension extendee - 0, // [0:84] is the sub-list for field type_name + 109, // 84: machine.EtcdLeaveCluster.metadata:type_name -> common.Metadata + 101, // 85: machine.EtcdLeaveClusterResponse.messages:type_name -> machine.EtcdLeaveCluster + 109, // 86: machine.EtcdForfeitLeadership.metadata:type_name -> common.Metadata + 104, // 87: machine.EtcdForfeitLeadershipResponse.messages:type_name -> machine.EtcdForfeitLeadership + 109, // 88: machine.EtcdMemberList.metadata:type_name -> common.Metadata + 107, // 89: machine.EtcdMemberListResponse.messages:type_name -> machine.EtcdMemberList + 5, // 90: machine.MachineService.ApplyConfiguration:input_type -> machine.ApplyConfigurationRequest + 10, // 91: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest + 64, // 92: machine.MachineService.Containers:input_type -> machine.ContainersRequest + 49, // 93: machine.MachineService.Copy:input_type -> machine.CopyRequest + 114, // 94: machine.MachineService.CPUInfo:input_type -> google.protobuf.Empty + 114, // 95: machine.MachineService.DiskStats:input_type -> google.protobuf.Empty + 68, // 96: machine.MachineService.Dmesg:input_type -> machine.DmesgRequest + 17, // 97: machine.MachineService.Events:input_type -> machine.EventsRequest + 106, // 98: machine.MachineService.EtcdMemberList:input_type -> machine.EtcdMemberListRequest + 100, // 99: machine.MachineService.EtcdLeaveCluster:input_type -> machine.EtcdLeaveClusterRequest + 103, // 100: machine.MachineService.EtcdForfeitLeadership:input_type -> machine.EtcdForfeitLeadershipRequest + 114, // 101: machine.MachineService.Hostname:input_type -> google.protobuf.Empty + 114, // 102: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty + 50, // 103: machine.MachineService.List:input_type -> machine.ListRequest + 114, // 104: machine.MachineService.LoadAvg:input_type -> google.protobuf.Empty + 59, // 105: machine.MachineService.Logs:input_type -> machine.LogsRequest + 114, // 106: machine.MachineService.Memory:input_type -> google.protobuf.Empty + 114, // 107: machine.MachineService.Mounts:input_type -> google.protobuf.Empty + 114, // 108: machine.MachineService.NetworkDeviceStats:input_type -> google.protobuf.Empty + 114, // 109: machine.MachineService.Processes:input_type -> google.protobuf.Empty + 60, // 110: machine.MachineService.Read:input_type -> machine.ReadRequest + 114, // 111: machine.MachineService.Reboot:input_type -> google.protobuf.Empty + 73, // 112: machine.MachineService.Restart:input_type -> machine.RestartRequest + 61, // 113: machine.MachineService.Rollback:input_type -> machine.RollbackRequest + 19, // 114: machine.MachineService.Reset:input_type -> machine.ResetRequest + 22, // 115: machine.MachineService.Recover:input_type -> machine.RecoverRequest + 114, // 116: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty + 42, // 117: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest + 36, // 118: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest + 39, // 119: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest + 114, // 120: machine.MachineService.Shutdown:input_type -> google.protobuf.Empty + 76, // 121: machine.MachineService.Stats:input_type -> machine.StatsRequest + 114, // 122: machine.MachineService.SystemStat:input_type -> google.protobuf.Empty + 27, // 123: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest + 114, // 124: machine.MachineService.Version:input_type -> google.protobuf.Empty + 7, // 125: machine.MachineService.ApplyConfiguration:output_type -> machine.ApplyConfigurationResponse + 12, // 126: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse + 67, // 127: machine.MachineService.Containers:output_type -> machine.ContainersResponse + 115, // 128: machine.MachineService.Copy:output_type -> common.Data + 91, // 129: machine.MachineService.CPUInfo:output_type -> machine.CPUInfoResponse + 97, // 130: machine.MachineService.DiskStats:output_type -> machine.DiskStatsResponse + 115, // 131: machine.MachineService.Dmesg:output_type -> common.Data + 18, // 132: machine.MachineService.Events:output_type -> machine.Event + 108, // 133: machine.MachineService.EtcdMemberList:output_type -> machine.EtcdMemberListResponse + 102, // 134: machine.MachineService.EtcdLeaveCluster:output_type -> machine.EtcdLeaveClusterResponse + 105, // 135: machine.MachineService.EtcdForfeitLeadership:output_type -> machine.EtcdForfeitLeadershipResponse + 83, // 136: machine.MachineService.Hostname:output_type -> machine.HostnameResponse + 115, // 137: machine.MachineService.Kubeconfig:output_type -> common.Data + 51, // 138: machine.MachineService.List:output_type -> machine.FileInfo + 85, // 139: machine.MachineService.LoadAvg:output_type -> machine.LoadAvgResponse + 115, // 140: machine.MachineService.Logs:output_type -> common.Data + 81, // 141: machine.MachineService.Memory:output_type -> machine.MemoryResponse + 53, // 142: machine.MachineService.Mounts:output_type -> machine.MountsResponse + 94, // 143: machine.MachineService.NetworkDeviceStats:output_type -> machine.NetworkDeviceStatsResponse + 70, // 144: machine.MachineService.Processes:output_type -> machine.ProcessesResponse + 115, // 145: machine.MachineService.Read:output_type -> common.Data + 9, // 146: machine.MachineService.Reboot:output_type -> machine.RebootResponse + 75, // 147: machine.MachineService.Restart:output_type -> machine.RestartResponse + 63, // 148: machine.MachineService.Rollback:output_type -> machine.RollbackResponse + 21, // 149: machine.MachineService.Reset:output_type -> machine.ResetResponse + 24, // 150: machine.MachineService.Recover:output_type -> machine.RecoverResponse + 31, // 151: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse + 44, // 152: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse + 38, // 153: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse + 41, // 154: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse + 26, // 155: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse + 78, // 156: machine.MachineService.Stats:output_type -> machine.StatsResponse + 87, // 157: machine.MachineService.SystemStat:output_type -> machine.SystemStatResponse + 29, // 158: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse + 56, // 159: machine.MachineService.Version:output_type -> machine.VersionResponse + 125, // [125:160] is the sub-list for method output_type + 90, // [90:125] is the sub-list for method input_type + 90, // [90:90] is the sub-list for extension type_name + 90, // [90:90] is the sub-list for extension extendee + 0, // [0:90] is the sub-list for field type_name } func init() { file_machine_machine_proto_init() } @@ -8890,6 +9378,114 @@ func file_machine_machine_proto_init() { return nil } } + file_machine_machine_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdLeaveClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdLeaveCluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdLeaveClusterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdForfeitLeadershipRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdForfeitLeadership); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdForfeitLeadershipResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdMemberListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdMemberList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtcdMemberListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -8897,7 +9493,7 @@ func file_machine_machine_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_machine_machine_proto_rawDesc, NumEnums: 5, - NumMessages: 95, + NumMessages: 104, NumExtensions: 0, NumServices: 1, }, @@ -8934,6 +9530,9 @@ type MachineServiceClient interface { DiskStats(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DiskStatsResponse, error) Dmesg(ctx context.Context, in *DmesgRequest, opts ...grpc.CallOption) (MachineService_DmesgClient, error) Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (MachineService_EventsClient, error) + EtcdMemberList(ctx context.Context, in *EtcdMemberListRequest, opts ...grpc.CallOption) (*EtcdMemberListResponse, error) + EtcdLeaveCluster(ctx context.Context, in *EtcdLeaveClusterRequest, opts ...grpc.CallOption) (*EtcdLeaveClusterResponse, error) + EtcdForfeitLeadership(ctx context.Context, in *EtcdForfeitLeadershipRequest, opts ...grpc.CallOption) (*EtcdForfeitLeadershipResponse, error) Hostname(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HostnameResponse, error) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (MachineService_KubeconfigClient, error) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (MachineService_ListClient, error) @@ -9109,6 +9708,33 @@ func (x *machineServiceEventsClient) Recv() (*Event, error) { return m, nil } +func (c *machineServiceClient) EtcdMemberList(ctx context.Context, in *EtcdMemberListRequest, opts ...grpc.CallOption) (*EtcdMemberListResponse, error) { + out := new(EtcdMemberListResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdMemberList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *machineServiceClient) EtcdLeaveCluster(ctx context.Context, in *EtcdLeaveClusterRequest, opts ...grpc.CallOption) (*EtcdLeaveClusterResponse, error) { + out := new(EtcdLeaveClusterResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdLeaveCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *machineServiceClient) EtcdForfeitLeadership(ctx context.Context, in *EtcdForfeitLeadershipRequest, opts ...grpc.CallOption) (*EtcdForfeitLeadershipResponse, error) { + out := new(EtcdForfeitLeadershipResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/EtcdForfeitLeadership", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Hostname(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HostnameResponse, error) { out := new(HostnameResponse) err := c.cc.Invoke(ctx, "/machine.MachineService/Hostname", in, out, opts...) @@ -9427,6 +10053,9 @@ type MachineServiceServer interface { DiskStats(context.Context, *empty.Empty) (*DiskStatsResponse, error) Dmesg(*DmesgRequest, MachineService_DmesgServer) error Events(*EventsRequest, MachineService_EventsServer) error + EtcdMemberList(context.Context, *EtcdMemberListRequest) (*EtcdMemberListResponse, error) + EtcdLeaveCluster(context.Context, *EtcdLeaveClusterRequest) (*EtcdLeaveClusterResponse, error) + EtcdForfeitLeadership(context.Context, *EtcdForfeitLeadershipRequest) (*EtcdForfeitLeadershipResponse, error) Hostname(context.Context, *empty.Empty) (*HostnameResponse, error) Kubeconfig(*empty.Empty, MachineService_KubeconfigServer) error List(*ListRequest, MachineService_ListServer) error @@ -9489,6 +10118,18 @@ func (*UnimplementedMachineServiceServer) Events(*EventsRequest, MachineService_ return status.Errorf(codes.Unimplemented, "method Events not implemented") } +func (*UnimplementedMachineServiceServer) EtcdMemberList(context.Context, *EtcdMemberListRequest) (*EtcdMemberListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdMemberList not implemented") +} + +func (*UnimplementedMachineServiceServer) EtcdLeaveCluster(context.Context, *EtcdLeaveClusterRequest) (*EtcdLeaveClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdLeaveCluster not implemented") +} + +func (*UnimplementedMachineServiceServer) EtcdForfeitLeadership(context.Context, *EtcdForfeitLeadershipRequest) (*EtcdForfeitLeadershipResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EtcdForfeitLeadership not implemented") +} + func (*UnimplementedMachineServiceServer) Hostname(context.Context, *empty.Empty) (*HostnameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Hostname not implemented") } @@ -9742,6 +10383,60 @@ func (x *machineServiceEventsServer) Send(m *Event) error { return x.ServerStream.SendMsg(m) } +func _MachineService_EtcdMemberList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EtcdMemberListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdMemberList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdMemberList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdMemberList(ctx, req.(*EtcdMemberListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MachineService_EtcdLeaveCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EtcdLeaveClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdLeaveCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdLeaveCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdLeaveCluster(ctx, req.(*EtcdLeaveClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MachineService_EtcdForfeitLeadership_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EtcdForfeitLeadershipRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).EtcdForfeitLeadership(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/EtcdForfeitLeadership", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).EtcdForfeitLeadership(ctx, req.(*EtcdForfeitLeadershipRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Hostname_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(empty.Empty) if err := dec(in); err != nil { @@ -10210,6 +10905,18 @@ var _MachineService_serviceDesc = grpc.ServiceDesc{ MethodName: "DiskStats", Handler: _MachineService_DiskStats_Handler, }, + { + MethodName: "EtcdMemberList", + Handler: _MachineService_EtcdMemberList_Handler, + }, + { + MethodName: "EtcdLeaveCluster", + Handler: _MachineService_EtcdLeaveCluster_Handler, + }, + { + MethodName: "EtcdForfeitLeadership", + Handler: _MachineService_EtcdForfeitLeadership_Handler, + }, { MethodName: "Hostname", Handler: _MachineService_Hostname_Handler,