diff --git a/.travis.yml b/.travis.yml
index e61aea381e..10be276453 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -46,9 +46,10 @@ env:
# what we used for the latest PMM release
- GO_VERSION=1.15.x
# what will be used for PMM releases soon
- # - GO_VERSION=1.16.x
+ - GO_VERSION=1.16.x
# the latest HEAD
- - GO_VERSION=tip
+ # TODO enable when 1.15.x is removed
+ # - GO_VERSION=tip
matrix:
fast_finish: true
diff --git a/Gopkg.lock b/Gopkg.lock
index 24197660cc..7f70f3ab11 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -408,8 +408,8 @@
revision = "c158e23a172f892cc389233858238449efec1dbb"
[[projects]]
- branch = "PMM-2.0"
- digest = "1:a3113281b924c96d25babbdd2a7611ed58ff4e5184dab85353d4199666abe275"
+ branch = "PMM-5194-tunnels"
+ digest = "1:95e3caad5d89c543e3a4b895a57a0c8db29c839c3af859786e4d7150f9c3c4ef"
name = "github.com/percona/pmm"
packages = [
"api/agentpb",
@@ -433,7 +433,7 @@
"version",
]
pruneopts = "NUT"
- revision = "4559713b8bc01ab2538bd183bca387cebe624966"
+ revision = "4a47e69663fbf943789a2168b24d3f6f3c870cb2"
[[projects]]
digest = "1:65230c46134944510adb8844cf4098b5c9fdd1dd11992c3980afc1d3e0c8e4bd"
diff --git a/Gopkg.toml b/Gopkg.toml
index 78292aefdc..4341375f3a 100644
--- a/Gopkg.toml
+++ b/Gopkg.toml
@@ -14,7 +14,8 @@ required = [
[[constraint]]
name = "github.com/percona/pmm"
- branch = "PMM-2.0"
+ # branch = "PMM-2.0"
+ branch = "PMM-5194-tunnels"
[[constraint]]
name = "github.com/percona-platform/saas"
@@ -24,7 +25,7 @@ required = [
name = "github.com/percona-platform/dbaas-api"
branch = "main"
-# to prevent unexpected downgrades; see https://github.com/percona/exporter_shared/releases/tag/v0.6.0
-[[constraint]]
- name = "github.com/percona/exporter_shared"
- version = "0.7.2"
+# # to prevent unexpected downgrades; see https://github.com/percona/exporter_shared/releases/tag/v0.6.0
+# [[constraint]]
+# name = "github.com/percona/exporter_shared"
+# version = "0.7.2"
diff --git a/docker-compose.yml b/docker-compose.yml
index 34cc29d976..82180d114d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,7 +2,7 @@
version: '3.7'
services:
pmm-managed-server:
- image: ${PMM_SERVER_IMAGE:-perconalab/pmm-server:dev-latest}
+ image: perconalab/pmm-server-fb:PR-1459-bf4d9f9
container_name: pmm-managed-server
hostname: pmm-managed-server
environment:
diff --git a/main.go b/main.go
index 67d5510ed0..9e913bb0f4 100644
--- a/main.go
+++ b/main.go
@@ -160,6 +160,7 @@ func runGRPCServer(ctx context.Context, deps *gRPCServerDeps) {
inventorypb.RegisterNodesServer(gRPCServer, inventorygrpc.NewNodesServer(nodesSvc))
inventorypb.RegisterServicesServer(gRPCServer, inventorygrpc.NewServicesServer(servicesSvc))
inventorypb.RegisterAgentsServer(gRPCServer, inventorygrpc.NewAgentsServer(agentsSvc))
+ inventorypb.RegisterTunnelsServer(gRPCServer, inventory.NewTunnelsService(deps.db, deps.agentsRegistry))
nodeSvc := management.NewNodeService(deps.db, deps.agentsRegistry)
serviceSvc := management.NewServiceService(deps.db, deps.agentsRegistry, deps.vmdb)
@@ -276,6 +277,7 @@ func runHTTP1Server(ctx context.Context, deps *http1ServerDeps) {
inventorypb.RegisterNodesHandlerFromEndpoint,
inventorypb.RegisterServicesHandlerFromEndpoint,
inventorypb.RegisterAgentsHandlerFromEndpoint,
+ inventorypb.RegisterTunnelsHandlerFromEndpoint,
managementpb.RegisterNodeHandlerFromEndpoint,
managementpb.RegisterServiceHandlerFromEndpoint,
diff --git a/models/database.go b/models/database.go
index 1f863bf363..0eea4195a6 100644
--- a/models/database.go
+++ b/models/database.go
@@ -413,12 +413,15 @@ var databaseSchema = [][]string{
PRIMARY KEY (id)
)`,
},
+
25: {
`ALTER TABLE agents ADD COLUMN mongo_db_tls_options JSONB`,
},
+
26: {
`ALTER TABLE ia_rules ALTER COLUMN channel_ids DROP NOT NULL`,
},
+
27: {
`CREATE TABLE backup_locations (
id VARCHAR NOT NULL,
@@ -436,9 +439,26 @@ var databaseSchema = [][]string{
UNIQUE (name)
)`,
},
+
28: {
`ALTER TABLE agents ADD COLUMN disabled_collectors VARCHAR[]`,
},
+
+ 29: {
+ `CREATE TABLE tunnels (
+ tunnel_id VARCHAR NOT NULL,
+ listen_agent_id VARCHAR NOT NULL,
+ listen_port INTEGER NOT NULL CHECK (listen_port > 0),
+ connect_agent_id VARCHAR NOT NULL,
+ connect_port INTEGER NOT NULL CHECK (connect_port > 0),
+ created_at TIMESTAMP NOT NULL,
+ updated_at TIMESTAMP NOT NULL,
+
+ PRIMARY KEY (tunnel_id),
+ FOREIGN KEY (listen_agent_id) REFERENCES agents (agent_id),
+ FOREIGN KEY (connect_agent_id) REFERENCES agents (agent_id)
+ )`,
+ },
}
// ^^^ Avoid default values in schema definition. ^^^
@@ -524,9 +544,17 @@ func SetupDB(sqlDB *sql.DB, params *SetupDBParams) (*reform.DB, error) {
}
queries := databaseSchema[version]
+ if len(queries) == 0 {
+ return fmt.Errorf("no queries in version %d: missed migration number?", version)
+ }
+
queries = append(queries, fmt.Sprintf(`INSERT INTO schema_migrations (id) VALUES (%d)`, version))
for _, q := range queries {
q = strings.TrimSpace(q)
+ if q == "" {
+ return fmt.Errorf("empty query in version %d: missed migration number?", version)
+ }
+
if _, err = tx.Exec(q); err != nil {
return errors.Wrapf(err, "failed to execute statement:\n%s", q)
}
diff --git a/models/tunnel_helpers.go b/models/tunnel_helpers.go
new file mode 100644
index 0000000000..1afcf3bd29
--- /dev/null
+++ b/models/tunnel_helpers.go
@@ -0,0 +1,127 @@
+// pmm-managed
+// Copyright (C) 2017 Percona LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package models
+
+import (
+ "github.com/google/uuid"
+ "github.com/pkg/errors"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
+ "gopkg.in/reform.v1"
+)
+
+func checkUniqueTunnelID(q *reform.Querier, id string) error {
+ if id == "" {
+ panic("empty Tunnel ID")
+ }
+
+ tunnel := &Tunnel{TunnelID: id}
+ switch err := q.Reload(tunnel); err {
+ case nil:
+ return status.Errorf(codes.AlreadyExists, "Tunnel with ID %q already exists.", id)
+ case reform.ErrNoRows:
+ return nil
+ default:
+ return errors.WithStack(err)
+ }
+}
+
+// FindTunnels returns Tunnels for given pmm-agent, or all, if pmmAgentID is empty.
+func FindTunnels(q *reform.Querier, pmmAgentID string) ([]*Tunnel, error) {
+ var args []interface{}
+ tail := "ORDER BY tunnel_id"
+ if pmmAgentID != "" {
+ // TODO check that agent exist
+ args = []interface{}{pmmAgentID, pmmAgentID}
+ tail = "WHERE listen_agent_id = $1 OR connect_agent_id = $2 " + tail
+ }
+
+ structs, err := q.SelectAllFrom(TunnelTable, tail, args...)
+ if err != nil {
+ return nil, errors.WithStack(err)
+ }
+
+ tunnels := make([]*Tunnel, len(structs))
+ for i, s := range structs {
+ tunnels[i] = s.(*Tunnel)
+ }
+
+ return tunnels, nil
+}
+
+// FindTunnelByID finds Tunnel by ID.
+func FindTunnelByID(q *reform.Querier, id string) (*Tunnel, error) {
+ if id == "" {
+ return nil, status.Error(codes.InvalidArgument, "Empty Tunnel ID.")
+ }
+
+ tunnel := &Tunnel{TunnelID: id}
+ switch err := q.Reload(tunnel); err {
+ case nil:
+ return tunnel, nil
+ case reform.ErrNoRows:
+ return nil, status.Errorf(codes.NotFound, "Tunnel with ID %q not found.", id)
+ default:
+ return nil, errors.WithStack(err)
+ }
+}
+
+// CreateTunnelParams TODO.
+type CreateTunnelParams struct {
+ ListenAgentID string
+ ListenPort uint16
+ ConnectAgentID string
+ ConnectPort uint16
+}
+
+// CreateTunnel creates Tunnel.
+func CreateTunnel(q *reform.Querier, params *CreateTunnelParams) (*Tunnel, error) {
+ id := "/tunnel_id/" + uuid.New().String()
+ if err := checkUniqueTunnelID(q, id); err != nil {
+ return nil, err
+ }
+
+ // TODO check that agents exist
+ // TODO check that ports > 0
+
+ row := &Tunnel{
+ TunnelID: id,
+ ListenAgentID: params.ListenAgentID,
+ ListenPort: params.ListenPort,
+ ConnectAgentID: params.ConnectAgentID,
+ ConnectPort: params.ConnectPort,
+ }
+
+ if err := q.Insert(row); err != nil {
+ return nil, errors.WithStack(err)
+ }
+
+ return row, nil
+}
+
+// RemoveTunnel removes Tunnel by ID.
+func RemoveTunnel(q *reform.Querier, id string, mode RemoveMode) (*Tunnel, error) {
+ // TODO find agents
+ // TODO cascade delete
+
+ t := &Tunnel{TunnelID: id}
+ if err := q.Delete(t); err != nil {
+ return nil, errors.Wrap(err, "failed to delete Tunnel")
+ }
+
+ return t, nil
+}
diff --git a/models/tunnel_model.go b/models/tunnel_model.go
new file mode 100644
index 0000000000..ce1ac5f4d5
--- /dev/null
+++ b/models/tunnel_model.go
@@ -0,0 +1,64 @@
+// pmm-managed
+// Copyright (C) 2017 Percona LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package models
+
+import (
+ "time"
+
+ "gopkg.in/reform.v1"
+)
+
+//go:generate reform
+
+//reform:tunnels
+type Tunnel struct {
+ TunnelID string `reform:"tunnel_id,pk"`
+ ListenAgentID string `reform:"listen_agent_id"`
+ ListenPort uint16 `reform:"listen_port"`
+ ConnectAgentID string `reform:"connect_agent_id"`
+ ConnectPort uint16 `reform:"connect_port"`
+ CreatedAt time.Time `reform:"created_at"`
+ UpdatedAt time.Time `reform:"updated_at"`
+}
+
+// BeforeInsert implements reform.BeforeInserter interface.
+func (s *Tunnel) BeforeInsert() error {
+ now := Now()
+ s.CreatedAt = now
+ s.UpdatedAt = now
+ return nil
+}
+
+// BeforeUpdate implements reform.BeforeUpdater interface.
+func (s *Tunnel) BeforeUpdate() error {
+ s.UpdatedAt = Now()
+ return nil
+}
+
+// AfterFind implements reform.AfterFinder interface.
+func (s *Tunnel) AfterFind() error {
+ s.CreatedAt = s.CreatedAt.UTC()
+ s.UpdatedAt = s.UpdatedAt.UTC()
+ return nil
+}
+
+// check interfaces
+var (
+ _ reform.BeforeInserter = (*Tunnel)(nil)
+ _ reform.BeforeUpdater = (*Tunnel)(nil)
+ _ reform.AfterFinder = (*Tunnel)(nil)
+)
diff --git a/models/tunnel_model_reform.go b/models/tunnel_model_reform.go
new file mode 100644
index 0000000000..361039c028
--- /dev/null
+++ b/models/tunnel_model_reform.go
@@ -0,0 +1,161 @@
+// Code generated by gopkg.in/reform.v1. DO NOT EDIT.
+
+package models
+
+import (
+ "fmt"
+ "strings"
+
+ "gopkg.in/reform.v1"
+ "gopkg.in/reform.v1/parse"
+)
+
+type tunnelTableType struct {
+ s parse.StructInfo
+ z []interface{}
+}
+
+// Schema returns a schema name in SQL database ("").
+func (v *tunnelTableType) Schema() string {
+ return v.s.SQLSchema
+}
+
+// Name returns a view or table name in SQL database ("tunnels").
+func (v *tunnelTableType) Name() string {
+ return v.s.SQLName
+}
+
+// Columns returns a new slice of column names for that view or table in SQL database.
+func (v *tunnelTableType) Columns() []string {
+ return []string{
+ "tunnel_id",
+ "listen_agent_id",
+ "listen_port",
+ "connect_agent_id",
+ "connect_port",
+ "created_at",
+ "updated_at",
+ }
+}
+
+// NewStruct makes a new struct for that view or table.
+func (v *tunnelTableType) NewStruct() reform.Struct {
+ return new(Tunnel)
+}
+
+// NewRecord makes a new record for that table.
+func (v *tunnelTableType) NewRecord() reform.Record {
+ return new(Tunnel)
+}
+
+// PKColumnIndex returns an index of primary key column for that table in SQL database.
+func (v *tunnelTableType) PKColumnIndex() uint {
+ return uint(v.s.PKFieldIndex)
+}
+
+// TunnelTable represents tunnels view or table in SQL database.
+var TunnelTable = &tunnelTableType{
+ s: parse.StructInfo{
+ Type: "Tunnel",
+ SQLName: "tunnels",
+ Fields: []parse.FieldInfo{
+ {Name: "TunnelID", Type: "string", Column: "tunnel_id"},
+ {Name: "ListenAgentID", Type: "string", Column: "listen_agent_id"},
+ {Name: "ListenPort", Type: "uint16", Column: "listen_port"},
+ {Name: "ConnectAgentID", Type: "string", Column: "connect_agent_id"},
+ {Name: "ConnectPort", Type: "uint16", Column: "connect_port"},
+ {Name: "CreatedAt", Type: "time.Time", Column: "created_at"},
+ {Name: "UpdatedAt", Type: "time.Time", Column: "updated_at"},
+ },
+ PKFieldIndex: 0,
+ },
+ z: new(Tunnel).Values(),
+}
+
+// String returns a string representation of this struct or record.
+func (s Tunnel) String() string {
+ res := make([]string, 7)
+ res[0] = "TunnelID: " + reform.Inspect(s.TunnelID, true)
+ res[1] = "ListenAgentID: " + reform.Inspect(s.ListenAgentID, true)
+ res[2] = "ListenPort: " + reform.Inspect(s.ListenPort, true)
+ res[3] = "ConnectAgentID: " + reform.Inspect(s.ConnectAgentID, true)
+ res[4] = "ConnectPort: " + reform.Inspect(s.ConnectPort, true)
+ res[5] = "CreatedAt: " + reform.Inspect(s.CreatedAt, true)
+ res[6] = "UpdatedAt: " + reform.Inspect(s.UpdatedAt, true)
+ return strings.Join(res, ", ")
+}
+
+// Values returns a slice of struct or record field values.
+// Returned interface{} values are never untyped nils.
+func (s *Tunnel) Values() []interface{} {
+ return []interface{}{
+ s.TunnelID,
+ s.ListenAgentID,
+ s.ListenPort,
+ s.ConnectAgentID,
+ s.ConnectPort,
+ s.CreatedAt,
+ s.UpdatedAt,
+ }
+}
+
+// Pointers returns a slice of pointers to struct or record fields.
+// Returned interface{} values are never untyped nils.
+func (s *Tunnel) Pointers() []interface{} {
+ return []interface{}{
+ &s.TunnelID,
+ &s.ListenAgentID,
+ &s.ListenPort,
+ &s.ConnectAgentID,
+ &s.ConnectPort,
+ &s.CreatedAt,
+ &s.UpdatedAt,
+ }
+}
+
+// View returns View object for that struct.
+func (s *Tunnel) View() reform.View {
+ return TunnelTable
+}
+
+// Table returns Table object for that record.
+func (s *Tunnel) Table() reform.Table {
+ return TunnelTable
+}
+
+// PKValue returns a value of primary key for that record.
+// Returned interface{} value is never untyped nil.
+func (s *Tunnel) PKValue() interface{} {
+ return s.TunnelID
+}
+
+// PKPointer returns a pointer to primary key field for that record.
+// Returned interface{} value is never untyped nil.
+func (s *Tunnel) PKPointer() interface{} {
+ return &s.TunnelID
+}
+
+// HasPK returns true if record has non-zero primary key set, false otherwise.
+func (s *Tunnel) HasPK() bool {
+ return s.TunnelID != TunnelTable.z[TunnelTable.s.PKFieldIndex]
+}
+
+// SetPK sets record primary key, if possible.
+//
+// Deprecated: prefer direct field assignment where possible: s.TunnelID = pk.
+func (s *Tunnel) SetPK(pk interface{}) {
+ reform.SetPK(s, pk)
+}
+
+// check interfaces
+var (
+ _ reform.View = TunnelTable
+ _ reform.Struct = (*Tunnel)(nil)
+ _ reform.Table = TunnelTable
+ _ reform.Record = (*Tunnel)(nil)
+ _ fmt.Stringer = (*Tunnel)(nil)
+)
+
+func init() {
+ parse.AssertUpToDate(&TunnelTable.s, new(Tunnel))
+}
diff --git a/services/agents/channel/channel.go b/services/agents/channel/channel.go
index b5648374e3..e823d233cd 100644
--- a/services/agents/channel/channel.go
+++ b/services/agents/channel/channel.go
@@ -59,6 +59,9 @@ type Metrics struct {
// Channel encapsulates two-way communication channel between pmm-managed and pmm-agent.
//
+// pmm-agent establishes a single gRPC connection with pmm-managed
+// and then starts a single gRPC bidirectional stream, which is represented by this type.
+//
// All exported methods are thread-safe.
//nolint:maligned
type Channel struct {
@@ -79,7 +82,7 @@ type Channel struct {
closeErr error
}
-// New creates new two-way communication channel with given stream.
+// New creates new two-way communication channel with given gRPC bidirectional stream.
//
// Stream should not be used by the caller after channel is created.
func New(stream agentpb.Agent_ConnectServer) *Channel {
@@ -126,7 +129,7 @@ func (c *Channel) Requests() <-chan *AgentRequest {
return c.requests
}
-// SendResponse sends message to pmm-managed. It is no-op once channel is closed (see Wait).
+// SendResponse sends response to pmm-managed. It is no-op once channel is closed (see Wait).
func (c *Channel) SendResponse(resp *ServerResponse) {
msg := &agentpb.ServerMessage{
Id: resp.ID,
@@ -221,6 +224,11 @@ func (c *Channel) runReceiver() {
ID: msg.Id,
Payload: p.ActionResult,
}
+ case *agentpb.AgentMessage_TunnelData:
+ c.requests <- &AgentRequest{
+ ID: msg.Id,
+ Payload: p.TunnelData,
+ }
// responses
case *agentpb.AgentMessage_Pong:
@@ -233,6 +241,8 @@ func (c *Channel) runReceiver() {
c.publish(msg.Id, p.StopAction)
case *agentpb.AgentMessage_CheckConnection:
c.publish(msg.Id, p.CheckConnection)
+ case *agentpb.AgentMessage_TunnelDataAck:
+ c.publish(msg.Id, p.TunnelDataAck)
case nil:
c.close(errors.Errorf("failed to handle received message %s", msg))
diff --git a/services/agents/channel/tunnel.go b/services/agents/channel/tunnel.go
new file mode 100644
index 0000000000..d92722265d
--- /dev/null
+++ b/services/agents/channel/tunnel.go
@@ -0,0 +1,17 @@
+// pmm-managed
+// Copyright (C) 2017 Percona LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package channel
diff --git a/services/agents/registry.go b/services/agents/registry.go
index d3cadb5492..c4017b1bec 100644
--- a/services/agents/registry.go
+++ b/services/agents/registry.go
@@ -94,13 +94,14 @@ type pmmAgentInfo struct {
// TODO Split into several types https://jira.percona.com/browse/PMM-4932
type Registry struct {
db *reform.DB
- vmdb prometheusService
qanClient qanClient
+ vmdb prometheusService
rw sync.RWMutex
agents map[string]*pmmAgentInfo // id -> info
roster *roster
+ // tunnels *tunnelRegistry
mAgents prom.GaugeFunc
mConnects prom.Counter
@@ -114,12 +115,13 @@ func NewRegistry(db *reform.DB, qanClient qanClient, vmdb prometheusService) *Re
agents := make(map[string]*pmmAgentInfo)
r := &Registry{
db: db,
- vmdb: vmdb,
qanClient: qanClient,
+ vmdb: vmdb,
agents: agents,
roster: newRoster(),
+ // tunnels: newTunnelRegistry(),
mAgents: prom.NewGaugeFunc(prom.GaugeOpts{
Namespace: prometheusNamespace,
@@ -265,6 +267,57 @@ func (r *Registry) Run(stream agentpb.Agent_ConnectServer) error {
Payload: new(agentpb.ActionResultResponse),
})
+ case *agentpb.TunnelData:
+ t, err := models.FindTunnelByID(r.db.Querier, p.TunnelId)
+ if err != nil {
+ agent.channel.SendResponse(&channel.ServerResponse{
+ ID: req.ID,
+ Payload: &agentpb.TunnelDataAck{
+ Status: status.Convert(err).Proto(),
+ },
+ })
+ continue
+ }
+
+ var otherAgentID string
+ switch agent.id {
+ case t.ListenAgentID:
+ otherAgentID = t.ConnectAgentID
+ case t.ConnectAgentID:
+ otherAgentID = t.ListenAgentID
+ default:
+ agent.channel.SendResponse(&channel.ServerResponse{
+ ID: req.ID,
+ Payload: &agentpb.TunnelDataAck{
+ Status: status.Newf(codes.NotFound, "TODO").Proto(),
+ },
+ })
+ continue
+ }
+
+ otherAgent, err := r.get(otherAgentID)
+ if err != nil {
+ agent.channel.SendResponse(&channel.ServerResponse{
+ ID: req.ID,
+ Payload: &agentpb.TunnelDataAck{
+ Status: status.Convert(err).Proto(),
+ },
+ })
+ continue
+ }
+
+ res := otherAgent.channel.SendRequest(&agentpb.TunnelData{
+ TunnelId: p.TunnelId,
+ ConnectionId: p.ConnectionId,
+ Close: p.Close,
+ Data: p.Data,
+ })
+ l.Debugf("%+v", res)
+
+ agent.channel.SendResponse(&channel.ServerResponse{
+ ID: req.ID,
+ })
+
case nil:
l.Warnf("Unexpected request: %v.", req)
disconnectReason = "unimplemented"
@@ -741,10 +794,19 @@ func (r *Registry) sendSetStateRequest(ctx context.Context, agent *pmmAgentInfo)
l.Errorf("%+v", err)
}
}
+
+ tunnels, err := getTunnels(r.db.Querier, agent.id)
+ if err != nil {
+ l.Errorf("Failed to get tunnels for pmm-agent %s: %s.", agent.id, err)
+ return
+ }
+
state := &agentpb.SetStateRequest{
AgentProcesses: agentProcesses,
BuiltinAgents: builtinAgents,
+ Tunnels: tunnels,
}
+
l.Infof("sendSetStateRequest:\n%s", proto.MarshalTextString(state))
resp := agent.channel.SendRequest(state)
l.Infof("SetState response: %+v.", resp)
diff --git a/services/agents/tunnel_registry.go b/services/agents/tunnel_registry.go
new file mode 100644
index 0000000000..438d6541ac
--- /dev/null
+++ b/services/agents/tunnel_registry.go
@@ -0,0 +1,54 @@
+// pmm-managed
+// Copyright (C) 2017 Percona LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package agents
+
+import (
+ "github.com/percona/pmm/api/agentpb"
+ "gopkg.in/reform.v1"
+
+ "github.com/percona/pmm-managed/models"
+)
+
+// type tunnelRegistry struct {
+// }
+
+// func newTunnelRegistry() *tunnelRegistry {
+// return &tunnelRegistry{}
+// }
+
+// getTunnels returns SetStateRequest's tunnels for given pmm-agent ID.
+func getTunnels(q *reform.Querier, pmmAgentID string) (map[string]*agentpb.SetStateRequest_Tunnel, error) {
+ tunnels, err := models.FindTunnels(q, pmmAgentID)
+ if err != nil {
+ return nil, err
+ }
+
+ res := make(map[string]*agentpb.SetStateRequest_Tunnel, len(tunnels))
+ for _, t := range tunnels {
+ var req agentpb.SetStateRequest_Tunnel
+ switch pmmAgentID {
+ case t.ListenAgentID:
+ req.ListenPort = uint32(t.ListenPort)
+ case t.ConnectAgentID:
+ req.ConnectPort = uint32(t.ConnectPort)
+ }
+
+ res[t.TunnelID] = &req
+ }
+
+ return res, nil
+}
diff --git a/services/inventory/tunnels.go b/services/inventory/tunnels.go
new file mode 100644
index 0000000000..577d5430c8
--- /dev/null
+++ b/services/inventory/tunnels.go
@@ -0,0 +1,97 @@
+// pmm-managed
+// Copyright (C) 2017 Percona LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package inventory
+
+import (
+ "context"
+
+ "github.com/percona/pmm/api/inventorypb"
+ "gopkg.in/reform.v1"
+
+ "github.com/percona/pmm-managed/models"
+)
+
+// TunnelsService works with inventory API Tunnels.
+type TunnelsService struct {
+ db *reform.DB
+ r agentsRegistry
+}
+
+// NewTunnelsService returns Inventory API handler for managing Tunnels.
+func NewTunnelsService(db *reform.DB, r agentsRegistry) inventorypb.TunnelsServer {
+ return &TunnelsService{
+ db: db,
+ r: r,
+ }
+}
+
+// ListTunnels returns a list of all Tunnels.
+func (s *TunnelsService) ListTunnels(ctx context.Context, req *inventorypb.ListTunnelsRequest) (*inventorypb.ListTunnelsResponse, error) {
+ tunnels, err := models.FindTunnels(s.db.Querier, req.AgentId)
+ if err != nil {
+ return nil, err
+ }
+
+ res := &inventorypb.ListTunnelsResponse{
+ Tunnel: make([]*inventorypb.Tunnel, len(tunnels)),
+ }
+ for i, t := range tunnels {
+ res.Tunnel[i] = &inventorypb.Tunnel{
+ TunnelId: t.TunnelID,
+ ListenAgentId: t.ListenAgentID,
+ ListenPort: uint32(t.ListenPort),
+ ConnectAgentId: t.ConnectAgentID,
+ ConnectPort: uint32(t.ConnectPort),
+ }
+ }
+ return res, nil
+}
+
+// AddTunnel adds a Tunnel.
+func (s *TunnelsService) AddTunnel(ctx context.Context, req *inventorypb.AddTunnelRequest) (*inventorypb.AddTunnelResponse, error) {
+ params := &models.CreateTunnelParams{
+ ListenAgentID: req.ListenAgentId,
+ ListenPort: uint16(req.ListenPort),
+ ConnectAgentID: req.ConnectAgentId,
+ ConnectPort: uint16(req.ConnectPort),
+ }
+
+ t, err := models.CreateTunnel(s.db.Querier, params)
+ if err != nil {
+ return nil, err
+ }
+
+ s.r.RequestStateUpdate(ctx, req.ListenAgentId)
+ s.r.RequestStateUpdate(ctx, req.ConnectAgentId)
+
+ return &inventorypb.AddTunnelResponse{
+ TunnelId: t.TunnelID,
+ }, nil
+}
+
+// RemoveTunnel removes a Tunnel.
+func (s *TunnelsService) RemoveTunnel(ctx context.Context, req *inventorypb.RemoveTunnelRequest) (*inventorypb.RemoveTunnelResponse, error) {
+ t, err := models.RemoveTunnel(s.db.Querier, req.TunnelId, models.RemoveCascade)
+ if err != nil {
+ return nil, err
+ }
+
+ s.r.RequestStateUpdate(ctx, t.ListenAgentID)
+ s.r.RequestStateUpdate(ctx, t.ConnectAgentID)
+
+ return new(inventorypb.RemoveTunnelResponse), nil
+}
diff --git a/vendor/github.com/percona/pmm/api/agentpb/agent.go b/vendor/github.com/percona/pmm/api/agentpb/agent.go
index f134520862..415ec7740b 100644
--- a/vendor/github.com/percona/pmm/api/agentpb/agent.go
+++ b/vendor/github.com/percona/pmm/api/agentpb/agent.go
@@ -41,7 +41,8 @@ type ServerRequestPayload interface {
sealed()
}
-// AgentMessage request payloads
+// AgentMessage request payloads.
+
func (m *Ping) AgentMessageRequestPayload() isAgentMessage_Payload {
return &AgentMessage_Ping{Ping: m}
}
@@ -54,8 +55,12 @@ func (m *QANCollectRequest) AgentMessageRequestPayload() isAgentMessage_Payload
func (m *ActionResultRequest) AgentMessageRequestPayload() isAgentMessage_Payload {
return &AgentMessage_ActionResult{ActionResult: m}
}
+func (m *TunnelData) AgentMessageRequestPayload() isAgentMessage_Payload {
+ return &AgentMessage_TunnelData{TunnelData: m}
+}
+
+// AgentMessage response payloads.
-// AgentMessage response payloads
func (m *Pong) AgentMessageResponsePayload() isAgentMessage_Payload {
return &AgentMessage_Pong{Pong: m}
}
@@ -71,8 +76,12 @@ func (m *StopActionResponse) AgentMessageResponsePayload() isAgentMessage_Payloa
func (m *CheckConnectionResponse) AgentMessageResponsePayload() isAgentMessage_Payload {
return &AgentMessage_CheckConnection{CheckConnection: m}
}
+func (m *TunnelDataAck) AgentMessageResponsePayload() isAgentMessage_Payload {
+ return &AgentMessage_TunnelDataAck{TunnelDataAck: m}
+}
+
+// ServerMessage response payloads.
-// ServerMessage response payloads
func (m *Pong) ServerMessageResponsePayload() isServerMessage_Payload {
return &ServerMessage_Pong{Pong: m}
}
@@ -85,8 +94,12 @@ func (m *QANCollectResponse) ServerMessageResponsePayload() isServerMessage_Payl
func (m *ActionResultResponse) ServerMessageResponsePayload() isServerMessage_Payload {
return &ServerMessage_ActionResult{ActionResult: m}
}
+func (m *TunnelDataAck) ServerMessageResponsePayload() isServerMessage_Payload {
+ return &ServerMessage_TunnelDataAck{TunnelDataAck: m}
+}
+
+// ServerMessage request payloads.
-// ServerMessage request payloads
func (m *Ping) ServerMessageRequestPayload() isServerMessage_Payload {
return &ServerMessage_Ping{Ping: m}
}
@@ -102,8 +115,11 @@ func (m *StopActionRequest) ServerMessageRequestPayload() isServerMessage_Payloa
func (m *CheckConnectionRequest) ServerMessageRequestPayload() isServerMessage_Payload {
return &ServerMessage_CheckConnection{CheckConnection: m}
}
+func (m *TunnelData) ServerMessageRequestPayload() isServerMessage_Payload {
+ return &ServerMessage_TunnelData{TunnelData: m}
+}
-// in alphabetical order
+// In alphabetical order.
func (*ActionResultRequest) sealed() {}
func (*ActionResultResponse) sealed() {}
func (*CheckConnectionRequest) sealed() {}
@@ -120,34 +136,40 @@ func (*StateChangedRequest) sealed() {}
func (*StateChangedResponse) sealed() {}
func (*StopActionRequest) sealed() {}
func (*StopActionResponse) sealed() {}
+func (*TunnelData) sealed() {}
+func (*TunnelDataAck) sealed() {}
// check interfaces
var (
- // AgentMessage request payloads
+ // AgentMessage request payloads.
_ AgentRequestPayload = (*Ping)(nil)
_ AgentRequestPayload = (*StateChangedRequest)(nil)
_ AgentRequestPayload = (*QANCollectRequest)(nil)
_ AgentRequestPayload = (*ActionResultRequest)(nil)
+ _ AgentRequestPayload = (*TunnelData)(nil)
- // AgentMessage response payloads
+ // AgentMessage response payloads.
_ AgentResponsePayload = (*Pong)(nil)
_ AgentResponsePayload = (*SetStateResponse)(nil)
_ AgentResponsePayload = (*StartActionResponse)(nil)
_ AgentResponsePayload = (*StopActionResponse)(nil)
_ AgentResponsePayload = (*CheckConnectionResponse)(nil)
+ _ AgentResponsePayload = (*TunnelDataAck)(nil)
- // ServerMessage response payloads
+ // ServerMessage response payloads.
_ ServerResponsePayload = (*Pong)(nil)
_ ServerResponsePayload = (*StateChangedResponse)(nil)
_ ServerResponsePayload = (*QANCollectResponse)(nil)
_ ServerResponsePayload = (*ActionResultResponse)(nil)
+ _ ServerResponsePayload = (*TunnelDataAck)(nil)
- // ServerMessage request payloads
+ // ServerMessage request payloads.
_ ServerRequestPayload = (*Ping)(nil)
_ ServerRequestPayload = (*SetStateRequest)(nil)
_ ServerRequestPayload = (*StartActionRequest)(nil)
_ ServerRequestPayload = (*StopActionRequest)(nil)
_ ServerRequestPayload = (*CheckConnectionRequest)(nil)
+ _ ServerRequestPayload = (*TunnelData)(nil)
)
//go-sumtype:decl AgentParams
diff --git a/vendor/github.com/percona/pmm/api/agentpb/agent.pb.go b/vendor/github.com/percona/pmm/api/agentpb/agent.pb.go
index 894b4402c9..422ca27e6c 100644
--- a/vendor/github.com/percona/pmm/api/agentpb/agent.pb.go
+++ b/vendor/github.com/percona/pmm/api/agentpb/agent.pb.go
@@ -11,10 +11,12 @@ import (
proto "github.com/golang/protobuf/proto"
duration "github.com/golang/protobuf/ptypes/duration"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ _ "github.com/mwitkow/go-proto-validators"
inventorypb "github.com/percona/pmm/api/inventorypb"
+ status "google.golang.org/genproto/googleapis/rpc/status"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
- status "google.golang.org/grpc/status"
+ status1 "google.golang.org/grpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
@@ -432,7 +434,8 @@ func (*StateChangedResponse) Descriptor() ([]byte, []int) {
return file_agentpb_agent_proto_rawDescGZIP(), []int{6}
}
-// SetStateRequest is a ServerMessage asking pmm-agent to run agents according to desired state.
+// SetStateRequest is a ServerMessage asking pmm-agent to run agents and setup tunnels
+// according to desired state.
type SetStateRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -440,6 +443,8 @@ type SetStateRequest struct {
AgentProcesses map[string]*SetStateRequest_AgentProcess `protobuf:"bytes,1,rep,name=agent_processes,json=agentProcesses,proto3" json:"agent_processes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
BuiltinAgents map[string]*SetStateRequest_BuiltinAgent `protobuf:"bytes,2,rep,name=builtin_agents,json=builtinAgents,proto3" json:"builtin_agents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Desired Tunnel configurations and their IDs.
+ Tunnels map[string]*SetStateRequest_Tunnel `protobuf:"bytes,3,rep,name=tunnels,proto3" json:"tunnels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SetStateRequest) Reset() {
@@ -488,11 +493,20 @@ func (x *SetStateRequest) GetBuiltinAgents() map[string]*SetStateRequest_Builtin
return nil
}
+func (x *SetStateRequest) GetTunnels() map[string]*SetStateRequest_Tunnel {
+ if x != nil {
+ return x.Tunnels
+ }
+ return nil
+}
+
// SetStateResponse is an AgentMessage for SetStateRequest acceptance.
type SetStateResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Tunnels map[string]*status.Status `protobuf:"bytes,3,rep,name=tunnels,proto3" json:"tunnels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SetStateResponse) Reset() {
@@ -527,6 +541,13 @@ func (*SetStateResponse) Descriptor() ([]byte, []int) {
return file_agentpb_agent_proto_rawDescGZIP(), []int{8}
}
+func (x *SetStateResponse) GetTunnels() map[string]*status.Status {
+ if x != nil {
+ return x.Tunnels
+ }
+ return nil
+}
+
// QueryActionValue represents a single value used in query Actions.
type QueryActionValue struct {
state protoimpl.MessageState
@@ -1404,6 +1425,132 @@ func (*ActionResultResponse) Descriptor() ([]byte, []int) {
return file_agentpb_agent_proto_rawDescGZIP(), []int{18}
}
+// TunnelData is a AgentMessage/ServerMessage for transferring data chunk over the Tunnel.
+type TunnelData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Tunnel ID.
+ TunnelId string `protobuf:"bytes,1,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"`
+ // ID of the connection within a Tunnel.
+ // Unlike other IDs, this one is generated by pmm-agent, not by pmm-managed.
+ ConnectionId string `protobuf:"bytes,2,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
+ // True if this is the last chunk of data in this direction for this connection.
+ Close bool `protobuf:"varint,3,opt,name=close,proto3" json:"close,omitempty"`
+ // Data chunk.
+ Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *TunnelData) Reset() {
+ *x = TunnelData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_agentpb_agent_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TunnelData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TunnelData) ProtoMessage() {}
+
+func (x *TunnelData) ProtoReflect() protoreflect.Message {
+ mi := &file_agentpb_agent_proto_msgTypes[19]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TunnelData.ProtoReflect.Descriptor instead.
+func (*TunnelData) Descriptor() ([]byte, []int) {
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *TunnelData) GetTunnelId() string {
+ if x != nil {
+ return x.TunnelId
+ }
+ return ""
+}
+
+func (x *TunnelData) GetConnectionId() string {
+ if x != nil {
+ return x.ConnectionId
+ }
+ return ""
+}
+
+func (x *TunnelData) GetClose() bool {
+ if x != nil {
+ return x.Close
+ }
+ return false
+}
+
+func (x *TunnelData) GetData() []byte {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+// TunnelDataAck is a AgentMessage/ServerMessage for TunnelData acceptance.
+type TunnelDataAck struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // TODO
+ Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+}
+
+func (x *TunnelDataAck) Reset() {
+ *x = TunnelDataAck{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_agentpb_agent_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TunnelDataAck) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TunnelDataAck) ProtoMessage() {}
+
+func (x *TunnelDataAck) ProtoReflect() protoreflect.Message {
+ mi := &file_agentpb_agent_proto_msgTypes[20]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TunnelDataAck.ProtoReflect.Descriptor instead.
+func (*TunnelDataAck) Descriptor() ([]byte, []int) {
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *TunnelDataAck) GetStatus() *status.Status {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
// CheckConnectionRequest is a ServerMessage asking pmm-agent to check connection with Service.
type CheckConnectionRequest struct {
state protoimpl.MessageState
@@ -1423,7 +1570,7 @@ type CheckConnectionRequest struct {
func (x *CheckConnectionRequest) Reset() {
*x = CheckConnectionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[19]
+ mi := &file_agentpb_agent_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1436,7 +1583,7 @@ func (x *CheckConnectionRequest) String() string {
func (*CheckConnectionRequest) ProtoMessage() {}
func (x *CheckConnectionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[19]
+ mi := &file_agentpb_agent_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1449,7 +1596,7 @@ func (x *CheckConnectionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckConnectionRequest.ProtoReflect.Descriptor instead.
func (*CheckConnectionRequest) Descriptor() ([]byte, []int) {
- return file_agentpb_agent_proto_rawDescGZIP(), []int{19}
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{21}
}
func (x *CheckConnectionRequest) GetType() inventorypb.ServiceType {
@@ -1494,7 +1641,7 @@ type CheckConnectionResponse struct {
func (x *CheckConnectionResponse) Reset() {
*x = CheckConnectionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[20]
+ mi := &file_agentpb_agent_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1507,7 +1654,7 @@ func (x *CheckConnectionResponse) String() string {
func (*CheckConnectionResponse) ProtoMessage() {}
func (x *CheckConnectionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[20]
+ mi := &file_agentpb_agent_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1520,7 +1667,7 @@ func (x *CheckConnectionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckConnectionResponse.ProtoReflect.Descriptor instead.
func (*CheckConnectionResponse) Descriptor() ([]byte, []int) {
- return file_agentpb_agent_proto_rawDescGZIP(), []int{20}
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{22}
}
func (x *CheckConnectionResponse) GetError() string {
@@ -1548,18 +1695,20 @@ type AgentMessage struct {
// *AgentMessage_StateChanged
// *AgentMessage_QanCollect
// *AgentMessage_ActionResult
+ // *AgentMessage_TunnelData
// *AgentMessage_Pong
// *AgentMessage_SetState
// *AgentMessage_StartAction
// *AgentMessage_StopAction
// *AgentMessage_CheckConnection
+ // *AgentMessage_TunnelDataAck
Payload isAgentMessage_Payload `protobuf_oneof:"payload"`
}
func (x *AgentMessage) Reset() {
*x = AgentMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[21]
+ mi := &file_agentpb_agent_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1572,7 +1721,7 @@ func (x *AgentMessage) String() string {
func (*AgentMessage) ProtoMessage() {}
func (x *AgentMessage) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[21]
+ mi := &file_agentpb_agent_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1585,7 +1734,7 @@ func (x *AgentMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use AgentMessage.ProtoReflect.Descriptor instead.
func (*AgentMessage) Descriptor() ([]byte, []int) {
- return file_agentpb_agent_proto_rawDescGZIP(), []int{21}
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{23}
}
func (x *AgentMessage) GetId() uint32 {
@@ -1630,6 +1779,13 @@ func (x *AgentMessage) GetActionResult() *ActionResultRequest {
return nil
}
+func (x *AgentMessage) GetTunnelData() *TunnelData {
+ if x, ok := x.GetPayload().(*AgentMessage_TunnelData); ok {
+ return x.TunnelData
+ }
+ return nil
+}
+
func (x *AgentMessage) GetPong() *Pong {
if x, ok := x.GetPayload().(*AgentMessage_Pong); ok {
return x.Pong
@@ -1665,6 +1821,13 @@ func (x *AgentMessage) GetCheckConnection() *CheckConnectionResponse {
return nil
}
+func (x *AgentMessage) GetTunnelDataAck() *TunnelDataAck {
+ if x, ok := x.GetPayload().(*AgentMessage_TunnelDataAck); ok {
+ return x.TunnelDataAck
+ }
+ return nil
+}
+
type isAgentMessage_Payload interface {
isAgentMessage_Payload()
}
@@ -1686,6 +1849,10 @@ type AgentMessage_ActionResult struct {
ActionResult *ActionResultRequest `protobuf:"bytes,5,opt,name=action_result,json=actionResult,proto3,oneof"`
}
+type AgentMessage_TunnelData struct {
+ TunnelData *TunnelData `protobuf:"bytes,6,opt,name=tunnel_data,json=tunnelData,proto3,oneof"`
+}
+
type AgentMessage_Pong struct {
// responses from agent
Pong *Pong `protobuf:"bytes,8,opt,name=pong,proto3,oneof"`
@@ -1707,6 +1874,10 @@ type AgentMessage_CheckConnection struct {
CheckConnection *CheckConnectionResponse `protobuf:"bytes,12,opt,name=check_connection,json=checkConnection,proto3,oneof"`
}
+type AgentMessage_TunnelDataAck struct {
+ TunnelDataAck *TunnelDataAck `protobuf:"bytes,13,opt,name=tunnel_data_ack,json=tunnelDataAck,proto3,oneof"`
+}
+
func (*AgentMessage_Ping) isAgentMessage_Payload() {}
func (*AgentMessage_StateChanged) isAgentMessage_Payload() {}
@@ -1715,6 +1886,8 @@ func (*AgentMessage_QanCollect) isAgentMessage_Payload() {}
func (*AgentMessage_ActionResult) isAgentMessage_Payload() {}
+func (*AgentMessage_TunnelData) isAgentMessage_Payload() {}
+
func (*AgentMessage_Pong) isAgentMessage_Payload() {}
func (*AgentMessage_SetState) isAgentMessage_Payload() {}
@@ -1725,6 +1898,8 @@ func (*AgentMessage_StopAction) isAgentMessage_Payload() {}
func (*AgentMessage_CheckConnection) isAgentMessage_Payload() {}
+func (*AgentMessage_TunnelDataAck) isAgentMessage_Payload() {}
+
type ServerMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1736,18 +1911,20 @@ type ServerMessage struct {
// *ServerMessage_StateChanged
// *ServerMessage_QanCollect
// *ServerMessage_ActionResult
+ // *ServerMessage_TunnelDataAck
// *ServerMessage_Ping
// *ServerMessage_SetState
// *ServerMessage_StartAction
// *ServerMessage_StopAction
// *ServerMessage_CheckConnection
+ // *ServerMessage_TunnelData
Payload isServerMessage_Payload `protobuf_oneof:"payload"`
}
func (x *ServerMessage) Reset() {
*x = ServerMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[22]
+ mi := &file_agentpb_agent_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1760,7 +1937,7 @@ func (x *ServerMessage) String() string {
func (*ServerMessage) ProtoMessage() {}
func (x *ServerMessage) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[22]
+ mi := &file_agentpb_agent_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1773,7 +1950,7 @@ func (x *ServerMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use ServerMessage.ProtoReflect.Descriptor instead.
func (*ServerMessage) Descriptor() ([]byte, []int) {
- return file_agentpb_agent_proto_rawDescGZIP(), []int{22}
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{24}
}
func (x *ServerMessage) GetId() uint32 {
@@ -1818,6 +1995,13 @@ func (x *ServerMessage) GetActionResult() *ActionResultResponse {
return nil
}
+func (x *ServerMessage) GetTunnelDataAck() *TunnelDataAck {
+ if x, ok := x.GetPayload().(*ServerMessage_TunnelDataAck); ok {
+ return x.TunnelDataAck
+ }
+ return nil
+}
+
func (x *ServerMessage) GetPing() *Ping {
if x, ok := x.GetPayload().(*ServerMessage_Ping); ok {
return x.Ping
@@ -1853,6 +2037,13 @@ func (x *ServerMessage) GetCheckConnection() *CheckConnectionRequest {
return nil
}
+func (x *ServerMessage) GetTunnelData() *TunnelData {
+ if x, ok := x.GetPayload().(*ServerMessage_TunnelData); ok {
+ return x.TunnelData
+ }
+ return nil
+}
+
type isServerMessage_Payload interface {
isServerMessage_Payload()
}
@@ -1874,6 +2065,10 @@ type ServerMessage_ActionResult struct {
ActionResult *ActionResultResponse `protobuf:"bytes,5,opt,name=action_result,json=actionResult,proto3,oneof"`
}
+type ServerMessage_TunnelDataAck struct {
+ TunnelDataAck *TunnelDataAck `protobuf:"bytes,6,opt,name=tunnel_data_ack,json=tunnelDataAck,proto3,oneof"`
+}
+
type ServerMessage_Ping struct {
// requests from server
Ping *Ping `protobuf:"bytes,8,opt,name=ping,proto3,oneof"`
@@ -1895,6 +2090,10 @@ type ServerMessage_CheckConnection struct {
CheckConnection *CheckConnectionRequest `protobuf:"bytes,12,opt,name=check_connection,json=checkConnection,proto3,oneof"`
}
+type ServerMessage_TunnelData struct {
+ TunnelData *TunnelData `protobuf:"bytes,13,opt,name=tunnel_data,json=tunnelData,proto3,oneof"`
+}
+
func (*ServerMessage_Pong) isServerMessage_Payload() {}
func (*ServerMessage_StateChanged) isServerMessage_Payload() {}
@@ -1903,6 +2102,8 @@ func (*ServerMessage_QanCollect) isServerMessage_Payload() {}
func (*ServerMessage_ActionResult) isServerMessage_Payload() {}
+func (*ServerMessage_TunnelDataAck) isServerMessage_Payload() {}
+
func (*ServerMessage_Ping) isServerMessage_Payload() {}
func (*ServerMessage_SetState) isServerMessage_Payload() {}
@@ -1913,6 +2114,8 @@ func (*ServerMessage_StopAction) isServerMessage_Payload() {}
func (*ServerMessage_CheckConnection) isServerMessage_Payload() {}
+func (*ServerMessage_TunnelData) isServerMessage_Payload() {}
+
// AgentProcess describes desired configuration of a single agent process started by pmm-agent.
type SetStateRequest_AgentProcess struct {
state protoimpl.MessageState
@@ -1931,7 +2134,7 @@ type SetStateRequest_AgentProcess struct {
func (x *SetStateRequest_AgentProcess) Reset() {
*x = SetStateRequest_AgentProcess{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[24]
+ mi := &file_agentpb_agent_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1944,7 +2147,7 @@ func (x *SetStateRequest_AgentProcess) String() string {
func (*SetStateRequest_AgentProcess) ProtoMessage() {}
func (x *SetStateRequest_AgentProcess) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[24]
+ mi := &file_agentpb_agent_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2028,7 +2231,7 @@ type SetStateRequest_BuiltinAgent struct {
func (x *SetStateRequest_BuiltinAgent) Reset() {
*x = SetStateRequest_BuiltinAgent{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[26]
+ mi := &file_agentpb_agent_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2041,7 +2244,7 @@ func (x *SetStateRequest_BuiltinAgent) String() string {
func (*SetStateRequest_BuiltinAgent) ProtoMessage() {}
func (x *SetStateRequest_BuiltinAgent) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[26]
+ mi := &file_agentpb_agent_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2092,6 +2295,64 @@ func (x *SetStateRequest_BuiltinAgent) GetTextFiles() *TextFiles {
return nil
}
+// Tunnel describes desired configuration of a single Tunnel for pmm-agent.
+type SetStateRequest_Tunnel struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Listen port of the listening pmm-agent; one of listen_port and connect_port should be set.
+ ListenPort uint32 `protobuf:"varint,1,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
+ // Target port of the connecting pmm-agent; one of listen_port and connect_port should be set.
+ ConnectPort uint32 `protobuf:"varint,2,opt,name=connect_port,json=connectPort,proto3" json:"connect_port,omitempty"`
+}
+
+func (x *SetStateRequest_Tunnel) Reset() {
+ *x = SetStateRequest_Tunnel{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_agentpb_agent_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SetStateRequest_Tunnel) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetStateRequest_Tunnel) ProtoMessage() {}
+
+func (x *SetStateRequest_Tunnel) ProtoReflect() protoreflect.Message {
+ mi := &file_agentpb_agent_proto_msgTypes[30]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetStateRequest_Tunnel.ProtoReflect.Descriptor instead.
+func (*SetStateRequest_Tunnel) Descriptor() ([]byte, []int) {
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{7, 4}
+}
+
+func (x *SetStateRequest_Tunnel) GetListenPort() uint32 {
+ if x != nil {
+ return x.ListenPort
+ }
+ return 0
+}
+
+func (x *SetStateRequest_Tunnel) GetConnectPort() uint32 {
+ if x != nil {
+ return x.ConnectPort
+ }
+ return 0
+}
+
// MySQLExplainParams describes MySQL EXPLAIN action parameters.
type StartActionRequest_MySQLExplainParams struct {
state protoimpl.MessageState
@@ -2107,7 +2368,7 @@ type StartActionRequest_MySQLExplainParams struct {
func (x *StartActionRequest_MySQLExplainParams) Reset() {
*x = StartActionRequest_MySQLExplainParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[30]
+ mi := &file_agentpb_agent_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2120,7 +2381,7 @@ func (x *StartActionRequest_MySQLExplainParams) String() string {
func (*StartActionRequest_MySQLExplainParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLExplainParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[30]
+ mi := &file_agentpb_agent_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2171,7 +2432,7 @@ type StartActionRequest_MySQLShowCreateTableParams struct {
func (x *StartActionRequest_MySQLShowCreateTableParams) Reset() {
*x = StartActionRequest_MySQLShowCreateTableParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[31]
+ mi := &file_agentpb_agent_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2184,7 +2445,7 @@ func (x *StartActionRequest_MySQLShowCreateTableParams) String() string {
func (*StartActionRequest_MySQLShowCreateTableParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLShowCreateTableParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[31]
+ mi := &file_agentpb_agent_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2228,7 +2489,7 @@ type StartActionRequest_MySQLShowTableStatusParams struct {
func (x *StartActionRequest_MySQLShowTableStatusParams) Reset() {
*x = StartActionRequest_MySQLShowTableStatusParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[32]
+ mi := &file_agentpb_agent_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2241,7 +2502,7 @@ func (x *StartActionRequest_MySQLShowTableStatusParams) String() string {
func (*StartActionRequest_MySQLShowTableStatusParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLShowTableStatusParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[32]
+ mi := &file_agentpb_agent_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2285,7 +2546,7 @@ type StartActionRequest_MySQLShowIndexParams struct {
func (x *StartActionRequest_MySQLShowIndexParams) Reset() {
*x = StartActionRequest_MySQLShowIndexParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[33]
+ mi := &file_agentpb_agent_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2298,7 +2559,7 @@ func (x *StartActionRequest_MySQLShowIndexParams) String() string {
func (*StartActionRequest_MySQLShowIndexParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLShowIndexParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[33]
+ mi := &file_agentpb_agent_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2342,7 +2603,7 @@ type StartActionRequest_PostgreSQLShowCreateTableParams struct {
func (x *StartActionRequest_PostgreSQLShowCreateTableParams) Reset() {
*x = StartActionRequest_PostgreSQLShowCreateTableParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[34]
+ mi := &file_agentpb_agent_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2355,7 +2616,7 @@ func (x *StartActionRequest_PostgreSQLShowCreateTableParams) String() string {
func (*StartActionRequest_PostgreSQLShowCreateTableParams) ProtoMessage() {}
func (x *StartActionRequest_PostgreSQLShowCreateTableParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[34]
+ mi := &file_agentpb_agent_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2399,7 +2660,7 @@ type StartActionRequest_PostgreSQLShowIndexParams struct {
func (x *StartActionRequest_PostgreSQLShowIndexParams) Reset() {
*x = StartActionRequest_PostgreSQLShowIndexParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[35]
+ mi := &file_agentpb_agent_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2412,7 +2673,7 @@ func (x *StartActionRequest_PostgreSQLShowIndexParams) String() string {
func (*StartActionRequest_PostgreSQLShowIndexParams) ProtoMessage() {}
func (x *StartActionRequest_PostgreSQLShowIndexParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[35]
+ mi := &file_agentpb_agent_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2459,7 +2720,7 @@ type StartActionRequest_MongoDBExplainParams struct {
func (x *StartActionRequest_MongoDBExplainParams) Reset() {
*x = StartActionRequest_MongoDBExplainParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[36]
+ mi := &file_agentpb_agent_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2472,7 +2733,7 @@ func (x *StartActionRequest_MongoDBExplainParams) String() string {
func (*StartActionRequest_MongoDBExplainParams) ProtoMessage() {}
func (x *StartActionRequest_MongoDBExplainParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[36]
+ mi := &file_agentpb_agent_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2519,7 +2780,7 @@ type StartActionRequest_PTSummaryParams struct {
func (x *StartActionRequest_PTSummaryParams) Reset() {
*x = StartActionRequest_PTSummaryParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[37]
+ mi := &file_agentpb_agent_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2532,7 +2793,7 @@ func (x *StartActionRequest_PTSummaryParams) String() string {
func (*StartActionRequest_PTSummaryParams) ProtoMessage() {}
func (x *StartActionRequest_PTSummaryParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[37]
+ mi := &file_agentpb_agent_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2563,7 +2824,7 @@ type StartActionRequest_PTMongoDBSummaryParams struct {
func (x *StartActionRequest_PTMongoDBSummaryParams) Reset() {
*x = StartActionRequest_PTMongoDBSummaryParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[38]
+ mi := &file_agentpb_agent_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2576,7 +2837,7 @@ func (x *StartActionRequest_PTMongoDBSummaryParams) String() string {
func (*StartActionRequest_PTMongoDBSummaryParams) ProtoMessage() {}
func (x *StartActionRequest_PTMongoDBSummaryParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[38]
+ mi := &file_agentpb_agent_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2635,7 +2896,7 @@ type StartActionRequest_MySQLQueryShowParams struct {
func (x *StartActionRequest_MySQLQueryShowParams) Reset() {
*x = StartActionRequest_MySQLQueryShowParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[39]
+ mi := &file_agentpb_agent_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2648,7 +2909,7 @@ func (x *StartActionRequest_MySQLQueryShowParams) String() string {
func (*StartActionRequest_MySQLQueryShowParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLQueryShowParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[39]
+ mi := &file_agentpb_agent_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2693,7 +2954,7 @@ type StartActionRequest_MySQLQuerySelectParams struct {
func (x *StartActionRequest_MySQLQuerySelectParams) Reset() {
*x = StartActionRequest_MySQLQuerySelectParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[40]
+ mi := &file_agentpb_agent_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2706,7 +2967,7 @@ func (x *StartActionRequest_MySQLQuerySelectParams) String() string {
func (*StartActionRequest_MySQLQuerySelectParams) ProtoMessage() {}
func (x *StartActionRequest_MySQLQuerySelectParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[40]
+ mi := &file_agentpb_agent_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2749,7 +3010,7 @@ type StartActionRequest_PostgreSQLQueryShowParams struct {
func (x *StartActionRequest_PostgreSQLQueryShowParams) Reset() {
*x = StartActionRequest_PostgreSQLQueryShowParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[41]
+ mi := &file_agentpb_agent_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2762,7 +3023,7 @@ func (x *StartActionRequest_PostgreSQLQueryShowParams) String() string {
func (*StartActionRequest_PostgreSQLQueryShowParams) ProtoMessage() {}
func (x *StartActionRequest_PostgreSQLQueryShowParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[41]
+ mi := &file_agentpb_agent_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2800,7 +3061,7 @@ type StartActionRequest_PostgreSQLQuerySelectParams struct {
func (x *StartActionRequest_PostgreSQLQuerySelectParams) Reset() {
*x = StartActionRequest_PostgreSQLQuerySelectParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[42]
+ mi := &file_agentpb_agent_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2813,7 +3074,7 @@ func (x *StartActionRequest_PostgreSQLQuerySelectParams) String() string {
func (*StartActionRequest_PostgreSQLQuerySelectParams) ProtoMessage() {}
func (x *StartActionRequest_PostgreSQLQuerySelectParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[42]
+ mi := &file_agentpb_agent_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2859,7 +3120,7 @@ type StartActionRequest_MongoDBQueryGetParameterParams struct {
func (x *StartActionRequest_MongoDBQueryGetParameterParams) Reset() {
*x = StartActionRequest_MongoDBQueryGetParameterParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[43]
+ mi := &file_agentpb_agent_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2872,7 +3133,7 @@ func (x *StartActionRequest_MongoDBQueryGetParameterParams) String() string {
func (*StartActionRequest_MongoDBQueryGetParameterParams) ProtoMessage() {}
func (x *StartActionRequest_MongoDBQueryGetParameterParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[43]
+ mi := &file_agentpb_agent_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2918,7 +3179,7 @@ type StartActionRequest_MongoDBQueryBuildInfoParams struct {
func (x *StartActionRequest_MongoDBQueryBuildInfoParams) Reset() {
*x = StartActionRequest_MongoDBQueryBuildInfoParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[44]
+ mi := &file_agentpb_agent_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2931,7 +3192,7 @@ func (x *StartActionRequest_MongoDBQueryBuildInfoParams) String() string {
func (*StartActionRequest_MongoDBQueryBuildInfoParams) ProtoMessage() {}
func (x *StartActionRequest_MongoDBQueryBuildInfoParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[44]
+ mi := &file_agentpb_agent_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2977,7 +3238,7 @@ type StartActionRequest_MongoDBQueryGetCmdLineOptsParams struct {
func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) Reset() {
*x = StartActionRequest_MongoDBQueryGetCmdLineOptsParams{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[45]
+ mi := &file_agentpb_agent_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2990,7 +3251,7 @@ func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) String() string {
func (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams) ProtoMessage() {}
func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[45]
+ mi := &file_agentpb_agent_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3033,7 +3294,7 @@ type CheckConnectionResponse_Stats struct {
func (x *CheckConnectionResponse_Stats) Reset() {
*x = CheckConnectionResponse_Stats{}
if protoimpl.UnsafeEnabled {
- mi := &file_agentpb_agent_proto_msgTypes[46]
+ mi := &file_agentpb_agent_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3046,7 +3307,7 @@ func (x *CheckConnectionResponse_Stats) String() string {
func (*CheckConnectionResponse_Stats) ProtoMessage() {}
func (x *CheckConnectionResponse_Stats) ProtoReflect() protoreflect.Message {
- mi := &file_agentpb_agent_proto_msgTypes[46]
+ mi := &file_agentpb_agent_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3059,7 +3320,7 @@ func (x *CheckConnectionResponse_Stats) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckConnectionResponse_Stats.ProtoReflect.Descriptor instead.
func (*CheckConnectionResponse_Stats) Descriptor() ([]byte, []int) {
- return file_agentpb_agent_proto_rawDescGZIP(), []int{20, 0}
+ return file_agentpb_agent_proto_rawDescGZIP(), []int{22, 0}
}
func (x *CheckConnectionResponse_Stats) GetTableCount() int32 {
@@ -3075,63 +3336,72 @@ var file_agentpb_agent_proto_rawDesc = []byte{
0x0a, 0x13, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x17, 0x61, 0x67,
0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72,
- 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72,
- 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x1a, 0x1a, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x2f, 0x73, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01, 0x0a,
- 0x09, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x66, 0x69,
- 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a,
- 0x13, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x64,
- 0x65, 0x6c, 0x69, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70,
- 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x12, 0x30, 0x0a,
- 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f,
- 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x65, 0x6d,
- 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x1a,
- 0x38, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x06, 0x0a, 0x04, 0x50, 0x69, 0x6e,
- 0x67, 0x22, 0x45, 0x0a, 0x04, 0x50, 0x6f, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72,
- 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x75, 0x72,
- 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x11, 0x51, 0x41, 0x4e, 0x43,
- 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a,
- 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0d, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x41,
- 0x4e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x81, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e,
- 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f,
- 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
- 0x50, 0x6f, 0x72, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x07, 0x0a,
- 0x0f, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x53, 0x0a, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x65, 0x6e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x76, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
+ 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f,
+ 0x72, 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f,
+ 0x72, 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1a, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x2f, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01,
+ 0x0a, 0x09, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x66,
+ 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c,
+ 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2e,
+ 0x0a, 0x13, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f,
+ 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x12, 0x30,
+ 0x0a, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x65,
+ 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x6d,
+ 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
+ 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
+ 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x06, 0x0a, 0x04, 0x50, 0x69,
+ 0x6e, 0x67, 0x22, 0x45, 0x0a, 0x04, 0x50, 0x6f, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x11, 0x51, 0x41, 0x4e,
+ 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b,
+ 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0d, 0x6d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51,
+ 0x41, 0x4e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
+ 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65,
+ 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x09,
+ 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x53, 0x0a, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f,
+ 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69,
+ 0x6e, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x41, 0x67,
+ 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x74,
+ 0x69, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x74, 0x75, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x67, 0x65, 0x6e,
0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x63,
- 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e,
- 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,
- 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x41, 0x67, 0x65,
- 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69,
- 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xf4, 0x02, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e,
+ 0x74, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
+ 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xf4, 0x02, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e,
0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f,
0x72, 0x79, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
@@ -3181,382 +3451,430 @@ var file_agentpb_agent_proto_rawDesc = []byte{
0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x41, 0x67,
- 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x12,
- 0x0a, 0x10, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x6e, 0x69, 0x6c, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x04, 0x62,
- 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f,
- 0x6c, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
- 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x18, 0x0a, 0x06, 0x75, 0x69, 0x6e,
- 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e,
- 0x74, 0x36, 0x34, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a,
- 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05,
- 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x69,
- 0x63, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x42, 0x06, 0x0a,
- 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x41, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x6c, 0x69,
- 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60,
+ 0x0a, 0x06, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74,
+ 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x08, 0xe2,
+ 0xdf, 0x1f, 0x04, 0x18, 0x80, 0x80, 0x04, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50,
+ 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x08, 0xe2, 0xdf, 0x1f, 0x04, 0x18,
+ 0x80, 0x80, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74,
+ 0x1a, 0x59, 0x0a, 0x0c, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa2, 0x01, 0x0a, 0x10,
+ 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x3e, 0x0a, 0x07, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65,
+ 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73,
+ 0x1a, 0x4e, 0x0a, 0x0c, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x6e, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x6f, 0x6f,
+ 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12,
+ 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00,
+ 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x18, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36,
+ 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36,
+ 0x34, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x01, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x62,
+ 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79,
+ 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
+ 0x2f, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65,
+ 0x12, 0x29, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x6b,
+ 0x69, 0x6e, 0x64, 0x22, 0x41, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x03, 0x6d, 0x61, 0x70,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x2e, 0x4d, 0x61,
+ 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x1a, 0x4f, 0x0a, 0x08, 0x4d,
+ 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x03, 0x6d,
- 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
- 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x2e,
- 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x1a, 0x4f, 0x0a,
- 0x08, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65,
- 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85,
- 0x01, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2b,
- 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
- 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x64,
- 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70,
- 0x52, 0x04, 0x64, 0x6f, 0x63, 0x73, 0x22, 0xce, 0x19, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a,
- 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x14, 0x6d, 0x79,
- 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61,
- 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
- 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x45,
- 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x1e,
- 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61,
- 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
- 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x79,
- 0x73, 0x71, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x1e, 0x6d, 0x79, 0x73, 0x71,
- 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x34, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51,
- 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53,
+ 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a,
+ 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x04,
+ 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c,
+ 0x69, 0x63, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x6f, 0x63,
+ 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x04,
+ 0x64, 0x6f, 0x63, 0x73, 0x22, 0xce, 0x19, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x14, 0x6d, 0x79, 0x73, 0x71,
+ 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70,
+ 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x1e, 0x6d, 0x79,
+ 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79,
+ 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x79, 0x73, 0x71,
+ 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7a, 0x0a, 0x1e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f,
+ 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53,
0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61,
- 0x72, 0x61, 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x17, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68,
- 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74,
- 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50,
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x68,
- 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x89, 0x01,
- 0x0a, 0x23, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f,
- 0x77, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70,
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x61, 0x67,
+ 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x68, 0x6f,
+ 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61,
+ 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x17, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77,
+ 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d,
+ 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x68, 0x6f, 0x77,
+ 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x23,
+ 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x61, 0x67, 0x65, 0x6e,
+ 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x53,
+ 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73,
+ 0x71, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x76, 0x0a, 0x1c, 0x70, 0x6f, 0x73, 0x74, 0x67,
+ 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65,
+ 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61,
+ 0x6d, 0x73, 0x48, 0x00, 0x52, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c,
+ 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x66, 0x0a, 0x16, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61,
+ 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f,
+ 0x44, 0x42, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48,
+ 0x00, 0x52, 0x14, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69,
+ 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x74, 0x5f, 0x73, 0x75,
+ 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x54,
+ 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52,
+ 0x0f, 0x70, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x12, 0x6d, 0x0a, 0x19, 0x70, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x73,
+ 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0d, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50,
+ 0x54, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x16, 0x70, 0x74, 0x4d, 0x6f, 0x6e, 0x67, 0x6f,
+ 0x64, 0x62, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x67, 0x0a, 0x17, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73,
+ 0x68, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51,
+ 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x48, 0x00, 0x52, 0x14, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68,
+ 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6d, 0x0a, 0x19, 0x6d, 0x79, 0x73, 0x71,
+ 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x67,
0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51,
- 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72,
- 0x65, 0x73, 0x71, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x76, 0x0a, 0x1c, 0x70, 0x6f, 0x73,
- 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x64,
- 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x33, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67,
- 0x72, 0x65, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61,
- 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73,
- 0x71, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x66, 0x0a, 0x16, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70,
- 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e,
- 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6c,
- 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x74, 0x5f,
- 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61,
- 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
- 0x50, 0x54, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48,
- 0x00, 0x52, 0x0f, 0x70, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61,
- 0x6d, 0x73, 0x12, 0x6d, 0x0a, 0x19, 0x70, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62,
- 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18,
- 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74,
- 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x2e, 0x50, 0x54, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
- 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x16, 0x70, 0x74, 0x4d, 0x6f, 0x6e,
- 0x67, 0x6f, 0x64, 0x62, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x67, 0x0a, 0x17, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x32, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79,
- 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61,
- 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6d, 0x0a, 0x19, 0x6d, 0x79,
- 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52,
+ 0x16, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x76, 0x0a, 0x1c, 0x70, 0x6f, 0x73, 0x74, 0x67,
+ 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x68, 0x6f, 0x77,
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e,
0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48,
- 0x00, 0x52, 0x16, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c,
- 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x76, 0x0a, 0x1c, 0x70, 0x6f, 0x73,
- 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x68,
- 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x33, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67,
- 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61,
- 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73,
- 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x7c, 0x0a, 0x1e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x72,
- 0x61, 0x6d, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x67, 0x65, 0x6e,
+ 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65,
+ 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61,
+ 0x6d, 0x73, 0x48, 0x00, 0x52, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x7c, 0x0a, 0x1e, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x71, 0x75,
+ 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00,
+ 0x52, 0x1b, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x85, 0x01,
+ 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
+ 0x67, 0x65, 0x74, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x61, 0x67, 0x65, 0x6e,
0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51,
- 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
- 0x48, 0x00, 0x52, 0x1b, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
- 0x85, 0x01, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x5f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x70,
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x61, 0x67,
- 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50,
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
- 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7c, 0x0a, 0x1e, 0x6d, 0x6f, 0x6e, 0x67, 0x6f,
- 0x64, 0x62, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e,
- 0x66, 0x6f, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x35, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f,
- 0x44, 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64,
- 0x62, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x50,
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64,
- 0x62, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x67, 0x65, 0x74, 0x63, 0x6d, 0x64, 0x6c, 0x69,
- 0x6e, 0x65, 0x6f, 0x70, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x38, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72,
- 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d,
- 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6d,
- 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x4f, 0x70, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48,
- 0x00, 0x52, 0x20, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47,
- 0x65, 0x74, 0x63, 0x6d, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x6f, 0x70, 0x74, 0x73, 0x50, 0x61, 0x72,
- 0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x82, 0x01, 0x0a, 0x12, 0x4d, 0x79, 0x53,
- 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x7c, 0x0a, 0x1e, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62,
+ 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x66, 0x6f,
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x67, 0x65, 0x74, 0x63, 0x6d, 0x64, 0x6c, 0x69, 0x6e, 0x65,
+ 0x6f, 0x70, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x38, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x3a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e,
+ 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6d, 0x64, 0x4c,
+ 0x69, 0x6e, 0x65, 0x4f, 0x70, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52,
+ 0x20, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74,
+ 0x63, 0x6d, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x6f, 0x70, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x82, 0x01, 0x0a, 0x12, 0x4d, 0x79, 0x53, 0x51, 0x4c,
+ 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a,
+ 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12,
+ 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
+ 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69,
+ 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x6f,
+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0x44, 0x0a, 0x1a, 0x4d,
+ 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x1a, 0x44, 0x0a, 0x1a, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
+ 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x3e, 0x0a, 0x14, 0x4d, 0x79, 0x53, 0x51, 0x4c,
+ 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
+ 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x49, 0x0a, 0x1f, 0x50, 0x6f, 0x73, 0x74, 0x67,
+ 0x72, 0x65, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x1a, 0x43, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c,
+ 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
+ 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x4d, 0x6f, 0x6e, 0x67, 0x6f,
+ 0x44, 0x42, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75,
- 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f,
- 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6c,
- 0x61, 0x69, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52,
- 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0x44, 0x0a,
- 0x1a, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64,
- 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a,
- 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x1a, 0x44, 0x0a, 0x1a, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x3e, 0x0a, 0x14, 0x4d, 0x79, 0x53,
- 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x49, 0x0a, 0x1f, 0x50, 0x6f, 0x73,
- 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03,
- 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14,
- 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x43, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53,
- 0x51, 0x4c, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x4d, 0x6f, 0x6e,
- 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78,
- 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
- 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52,
- 0x09, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x11, 0x0a, 0x0f, 0x50, 0x54,
- 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x78, 0x0a,
- 0x16, 0x50, 0x54, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
- 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70,
- 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12,
- 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
- 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
- 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x3e, 0x0a, 0x14, 0x4d, 0x79, 0x53, 0x51, 0x4c,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f,
+ 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x67,
+ 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x74,
+ 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x11, 0x0a, 0x0f, 0x50, 0x54, 0x53, 0x75,
+ 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x78, 0x0a, 0x16, 0x50,
+ 0x54, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a,
+ 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73,
+ 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73,
+ 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x3e, 0x0a, 0x14, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a,
+ 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12,
+ 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x40, 0x0a, 0x16, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x40, 0x0a, 0x16, 0x4d, 0x79, 0x53, 0x51, 0x4c,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x2d, 0x0a, 0x19, 0x50, 0x6f, 0x73,
- 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x1a, 0x45, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74,
- 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a,
- 0x63, 0x0a, 0x1e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47,
- 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x2d, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x67,
+ 0x72, 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x1a, 0x45, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72,
+ 0x65, 0x53, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x63, 0x0a,
+ 0x1e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
+ 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
+ 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65,
+ 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c,
+ 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x1b, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x64, 0x73, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x46,
- 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x1b, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51,
- 0x75, 0x65, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72,
- 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69,
- 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x78,
- 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x65, 0x0a, 0x20, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44,
- 0x42, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6d, 0x64, 0x4c, 0x69, 0x6e, 0x65,
- 0x4f, 0x70, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73,
- 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x2f, 0x0a, 0x0a,
- 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x10, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c,
- 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x42, 0x08, 0x0a,
- 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30,
- 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
- 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a,
- 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75,
- 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70,
- 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x16, 0x0a, 0x14,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f,
- 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
- 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64,
- 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x33, 0x0a,
- 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
- 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54,
- 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69,
- 0x6c, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e,
- 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65,
- 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
- 0x73, 0x1a, 0x28, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb6, 0x04, 0x0a, 0x0c,
- 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x04,
- 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65,
- 0x6e, 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12,
- 0x41, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x71, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
- 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
- 0x51, 0x41, 0x4e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x48, 0x00, 0x52, 0x0a, 0x71, 0x61, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12,
- 0x41, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x41,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x48, 0x00, 0x52,
- 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61,
- 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
- 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a,
- 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72,
- 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
- 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c,
- 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00,
- 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x10,
- 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43,
+ 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x65, 0x0a, 0x20, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x43, 0x6d, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x4f, 0x70,
+ 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65,
+ 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
+ 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x11,
+ 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x14,
+ 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70,
+ 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
+ 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
+ 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74,
+ 0x61, 0x12, 0x23, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x58, 0x01, 0x52, 0x08, 0x74, 0x75,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe2,
+ 0xdf, 0x1f, 0x02, 0x58, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3b, 0x0a,
+ 0x0d, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x6b, 0x12, 0x2a,
+ 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x43,
- 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79,
- 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xb6, 0x04, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x6e,
- 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61,
- 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
- 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x3c, 0x0a,
- 0x0b, 0x71, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x41, 0x4e, 0x43, 0x6f,
- 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
- 0x0a, 0x71, 0x61, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
- 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
- 0x21, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
- 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69,
- 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65,
- 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
- 0x08, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x73, 0x74, 0x61,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x64, 0x73, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74,
+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x09,
+ 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x43, 0x68,
+ 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73,
+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x28, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
+ 0x74, 0x22, 0xac, 0x05, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52,
+ 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74,
+ 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x71, 0x61, 0x6e, 0x5f,
+ 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x41, 0x4e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x71, 0x61, 0x6e, 0x43, 0x6f,
+ 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
+ 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61,
+ 0x48, 0x00, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21,
+ 0x0a, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6e,
+ 0x67, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
+ 0x08, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x61,
0x72, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x19, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74,
- 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x73, 0x74, 0x6f,
- 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
- 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f,
- 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
- 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2a, 0xc4, 0x01,
- 0x0a, 0x18, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x75,
- 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59,
- 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50,
- 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
- 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50,
- 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d,
- 0x41, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20,
+ 0x1a, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x74,
+ 0x6f, 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x19, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74,
+ 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63,
+ 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
+ 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74,
+ 0x61, 0x41, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61,
+ 0x74, 0x61, 0x41, 0x63, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
+ 0x22, 0xac, 0x05, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x48, 0x00, 0x52,
+ 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x71, 0x61, 0x6e,
+ 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x41, 0x4e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x71, 0x61, 0x6e,
+ 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3e, 0x0a, 0x0f, 0x74,
+ 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x75, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x75,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x04, 0x70,
+ 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x67, 0x65, 0x6e,
+ 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x35,
+ 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x74,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67,
+ 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34,
+ 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x75, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x44, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2a,
+ 0xc4, 0x01, 0x0a, 0x18, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e,
+ 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x23,
0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55,
- 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53, 0x4f, 0x4e,
- 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4c,
- 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41,
- 0x54, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x4a, 0x53,
- 0x4f, 0x4e, 0x10, 0x03, 0x32, 0x41, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a,
- 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
- 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e,
- 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x15, 0x5a, 0x13, 0x61, 0x70, 0x69, 0x2f, 0x61,
- 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41,
+ 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45,
+ 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f,
+ 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x24,
+ 0x0a, 0x20, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f,
+ 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53,
+ 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58,
+ 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52,
+ 0x4d, 0x41, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f,
+ 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x03, 0x32, 0x41, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12,
+ 0x38, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x13, 0x2e, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a,
+ 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x15, 0x5a, 0x13, 0x61, 0x70, 0x69,
+ 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3572,7 +3890,7 @@ func file_agentpb_agent_proto_rawDescGZIP() []byte {
}
var file_agentpb_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_agentpb_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
+var file_agentpb_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
var file_agentpb_agent_proto_goTypes = []interface{}{
(MysqlExplainOutputFormat)(0), // 0: agent.MysqlExplainOutputFormat
(*TextFiles)(nil), // 1: agent.TextFiles
@@ -3594,113 +3912,128 @@ var file_agentpb_agent_proto_goTypes = []interface{}{
(*StopActionResponse)(nil), // 17: agent.StopActionResponse
(*ActionResultRequest)(nil), // 18: agent.ActionResultRequest
(*ActionResultResponse)(nil), // 19: agent.ActionResultResponse
- (*CheckConnectionRequest)(nil), // 20: agent.CheckConnectionRequest
- (*CheckConnectionResponse)(nil), // 21: agent.CheckConnectionResponse
- (*AgentMessage)(nil), // 22: agent.AgentMessage
- (*ServerMessage)(nil), // 23: agent.ServerMessage
- nil, // 24: agent.TextFiles.FilesEntry
- (*SetStateRequest_AgentProcess)(nil), // 25: agent.SetStateRequest.AgentProcess
- nil, // 26: agent.SetStateRequest.AgentProcessesEntry
- (*SetStateRequest_BuiltinAgent)(nil), // 27: agent.SetStateRequest.BuiltinAgent
- nil, // 28: agent.SetStateRequest.BuiltinAgentsEntry
- nil, // 29: agent.SetStateRequest.AgentProcess.TextFilesEntry
- nil, // 30: agent.QueryActionMap.MapEntry
- (*StartActionRequest_MySQLExplainParams)(nil), // 31: agent.StartActionRequest.MySQLExplainParams
- (*StartActionRequest_MySQLShowCreateTableParams)(nil), // 32: agent.StartActionRequest.MySQLShowCreateTableParams
- (*StartActionRequest_MySQLShowTableStatusParams)(nil), // 33: agent.StartActionRequest.MySQLShowTableStatusParams
- (*StartActionRequest_MySQLShowIndexParams)(nil), // 34: agent.StartActionRequest.MySQLShowIndexParams
- (*StartActionRequest_PostgreSQLShowCreateTableParams)(nil), // 35: agent.StartActionRequest.PostgreSQLShowCreateTableParams
- (*StartActionRequest_PostgreSQLShowIndexParams)(nil), // 36: agent.StartActionRequest.PostgreSQLShowIndexParams
- (*StartActionRequest_MongoDBExplainParams)(nil), // 37: agent.StartActionRequest.MongoDBExplainParams
- (*StartActionRequest_PTSummaryParams)(nil), // 38: agent.StartActionRequest.PTSummaryParams
- (*StartActionRequest_PTMongoDBSummaryParams)(nil), // 39: agent.StartActionRequest.PTMongoDBSummaryParams
- (*StartActionRequest_MySQLQueryShowParams)(nil), // 40: agent.StartActionRequest.MySQLQueryShowParams
- (*StartActionRequest_MySQLQuerySelectParams)(nil), // 41: agent.StartActionRequest.MySQLQuerySelectParams
- (*StartActionRequest_PostgreSQLQueryShowParams)(nil), // 42: agent.StartActionRequest.PostgreSQLQueryShowParams
- (*StartActionRequest_PostgreSQLQuerySelectParams)(nil), // 43: agent.StartActionRequest.PostgreSQLQuerySelectParams
- (*StartActionRequest_MongoDBQueryGetParameterParams)(nil), // 44: agent.StartActionRequest.MongoDBQueryGetParameterParams
- (*StartActionRequest_MongoDBQueryBuildInfoParams)(nil), // 45: agent.StartActionRequest.MongoDBQueryBuildInfoParams
- (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams)(nil), // 46: agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams
- (*CheckConnectionResponse_Stats)(nil), // 47: agent.CheckConnectionResponse.Stats
- (*timestamp.Timestamp)(nil), // 48: google.protobuf.Timestamp
- (*MetricsBucket)(nil), // 49: agent.MetricsBucket
- (inventorypb.AgentStatus)(0), // 50: inventory.AgentStatus
- (*duration.Duration)(nil), // 51: google.protobuf.Duration
- (inventorypb.ServiceType)(0), // 52: inventory.ServiceType
- (inventorypb.AgentType)(0), // 53: inventory.AgentType
+ (*TunnelData)(nil), // 20: agent.TunnelData
+ (*TunnelDataAck)(nil), // 21: agent.TunnelDataAck
+ (*CheckConnectionRequest)(nil), // 22: agent.CheckConnectionRequest
+ (*CheckConnectionResponse)(nil), // 23: agent.CheckConnectionResponse
+ (*AgentMessage)(nil), // 24: agent.AgentMessage
+ (*ServerMessage)(nil), // 25: agent.ServerMessage
+ nil, // 26: agent.TextFiles.FilesEntry
+ (*SetStateRequest_AgentProcess)(nil), // 27: agent.SetStateRequest.AgentProcess
+ nil, // 28: agent.SetStateRequest.AgentProcessesEntry
+ (*SetStateRequest_BuiltinAgent)(nil), // 29: agent.SetStateRequest.BuiltinAgent
+ nil, // 30: agent.SetStateRequest.BuiltinAgentsEntry
+ (*SetStateRequest_Tunnel)(nil), // 31: agent.SetStateRequest.Tunnel
+ nil, // 32: agent.SetStateRequest.TunnelsEntry
+ nil, // 33: agent.SetStateRequest.AgentProcess.TextFilesEntry
+ nil, // 34: agent.SetStateResponse.TunnelsEntry
+ nil, // 35: agent.QueryActionMap.MapEntry
+ (*StartActionRequest_MySQLExplainParams)(nil), // 36: agent.StartActionRequest.MySQLExplainParams
+ (*StartActionRequest_MySQLShowCreateTableParams)(nil), // 37: agent.StartActionRequest.MySQLShowCreateTableParams
+ (*StartActionRequest_MySQLShowTableStatusParams)(nil), // 38: agent.StartActionRequest.MySQLShowTableStatusParams
+ (*StartActionRequest_MySQLShowIndexParams)(nil), // 39: agent.StartActionRequest.MySQLShowIndexParams
+ (*StartActionRequest_PostgreSQLShowCreateTableParams)(nil), // 40: agent.StartActionRequest.PostgreSQLShowCreateTableParams
+ (*StartActionRequest_PostgreSQLShowIndexParams)(nil), // 41: agent.StartActionRequest.PostgreSQLShowIndexParams
+ (*StartActionRequest_MongoDBExplainParams)(nil), // 42: agent.StartActionRequest.MongoDBExplainParams
+ (*StartActionRequest_PTSummaryParams)(nil), // 43: agent.StartActionRequest.PTSummaryParams
+ (*StartActionRequest_PTMongoDBSummaryParams)(nil), // 44: agent.StartActionRequest.PTMongoDBSummaryParams
+ (*StartActionRequest_MySQLQueryShowParams)(nil), // 45: agent.StartActionRequest.MySQLQueryShowParams
+ (*StartActionRequest_MySQLQuerySelectParams)(nil), // 46: agent.StartActionRequest.MySQLQuerySelectParams
+ (*StartActionRequest_PostgreSQLQueryShowParams)(nil), // 47: agent.StartActionRequest.PostgreSQLQueryShowParams
+ (*StartActionRequest_PostgreSQLQuerySelectParams)(nil), // 48: agent.StartActionRequest.PostgreSQLQuerySelectParams
+ (*StartActionRequest_MongoDBQueryGetParameterParams)(nil), // 49: agent.StartActionRequest.MongoDBQueryGetParameterParams
+ (*StartActionRequest_MongoDBQueryBuildInfoParams)(nil), // 50: agent.StartActionRequest.MongoDBQueryBuildInfoParams
+ (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams)(nil), // 51: agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams
+ (*CheckConnectionResponse_Stats)(nil), // 52: agent.CheckConnectionResponse.Stats
+ (*timestamp.Timestamp)(nil), // 53: google.protobuf.Timestamp
+ (*MetricsBucket)(nil), // 54: agent.MetricsBucket
+ (inventorypb.AgentStatus)(0), // 55: inventory.AgentStatus
+ (*duration.Duration)(nil), // 56: google.protobuf.Duration
+ (*status.Status)(nil), // 57: google.rpc.Status
+ (inventorypb.ServiceType)(0), // 58: inventory.ServiceType
+ (inventorypb.AgentType)(0), // 59: inventory.AgentType
}
var file_agentpb_agent_proto_depIdxs = []int32{
- 24, // 0: agent.TextFiles.files:type_name -> agent.TextFiles.FilesEntry
- 48, // 1: agent.Pong.current_time:type_name -> google.protobuf.Timestamp
- 49, // 2: agent.QANCollectRequest.metrics_bucket:type_name -> agent.MetricsBucket
- 50, // 3: agent.StateChangedRequest.status:type_name -> inventory.AgentStatus
- 26, // 4: agent.SetStateRequest.agent_processes:type_name -> agent.SetStateRequest.AgentProcessesEntry
- 28, // 5: agent.SetStateRequest.builtin_agents:type_name -> agent.SetStateRequest.BuiltinAgentsEntry
- 48, // 6: agent.QueryActionValue.timestamp:type_name -> google.protobuf.Timestamp
- 11, // 7: agent.QueryActionValue.slice:type_name -> agent.QueryActionSlice
- 12, // 8: agent.QueryActionValue.map:type_name -> agent.QueryActionMap
- 10, // 9: agent.QueryActionSlice.slice:type_name -> agent.QueryActionValue
- 30, // 10: agent.QueryActionMap.map:type_name -> agent.QueryActionMap.MapEntry
- 11, // 11: agent.QueryActionResult.rows:type_name -> agent.QueryActionSlice
- 12, // 12: agent.QueryActionResult.docs:type_name -> agent.QueryActionMap
- 31, // 13: agent.StartActionRequest.mysql_explain_params:type_name -> agent.StartActionRequest.MySQLExplainParams
- 32, // 14: agent.StartActionRequest.mysql_show_create_table_params:type_name -> agent.StartActionRequest.MySQLShowCreateTableParams
- 33, // 15: agent.StartActionRequest.mysql_show_table_status_params:type_name -> agent.StartActionRequest.MySQLShowTableStatusParams
- 34, // 16: agent.StartActionRequest.mysql_show_index_params:type_name -> agent.StartActionRequest.MySQLShowIndexParams
- 35, // 17: agent.StartActionRequest.postgresql_show_create_table_params:type_name -> agent.StartActionRequest.PostgreSQLShowCreateTableParams
- 36, // 18: agent.StartActionRequest.postgresql_show_index_params:type_name -> agent.StartActionRequest.PostgreSQLShowIndexParams
- 37, // 19: agent.StartActionRequest.mongodb_explain_params:type_name -> agent.StartActionRequest.MongoDBExplainParams
- 38, // 20: agent.StartActionRequest.pt_summary_params:type_name -> agent.StartActionRequest.PTSummaryParams
- 39, // 21: agent.StartActionRequest.pt_mongodb_summary_params:type_name -> agent.StartActionRequest.PTMongoDBSummaryParams
- 40, // 22: agent.StartActionRequest.mysql_query_show_params:type_name -> agent.StartActionRequest.MySQLQueryShowParams
- 41, // 23: agent.StartActionRequest.mysql_query_select_params:type_name -> agent.StartActionRequest.MySQLQuerySelectParams
- 42, // 24: agent.StartActionRequest.postgresql_query_show_params:type_name -> agent.StartActionRequest.PostgreSQLQueryShowParams
- 43, // 25: agent.StartActionRequest.postgresql_query_select_params:type_name -> agent.StartActionRequest.PostgreSQLQuerySelectParams
- 44, // 26: agent.StartActionRequest.mongodb_query_getparameter_params:type_name -> agent.StartActionRequest.MongoDBQueryGetParameterParams
- 45, // 27: agent.StartActionRequest.mongodb_query_buildinfo_params:type_name -> agent.StartActionRequest.MongoDBQueryBuildInfoParams
- 46, // 28: agent.StartActionRequest.mongodb_query_getcmdlineopts_params:type_name -> agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams
- 51, // 29: agent.StartActionRequest.timeout:type_name -> google.protobuf.Duration
- 52, // 30: agent.CheckConnectionRequest.type:type_name -> inventory.ServiceType
- 51, // 31: agent.CheckConnectionRequest.timeout:type_name -> google.protobuf.Duration
- 1, // 32: agent.CheckConnectionRequest.text_files:type_name -> agent.TextFiles
- 47, // 33: agent.CheckConnectionResponse.stats:type_name -> agent.CheckConnectionResponse.Stats
- 2, // 34: agent.AgentMessage.ping:type_name -> agent.Ping
- 6, // 35: agent.AgentMessage.state_changed:type_name -> agent.StateChangedRequest
- 4, // 36: agent.AgentMessage.qan_collect:type_name -> agent.QANCollectRequest
- 18, // 37: agent.AgentMessage.action_result:type_name -> agent.ActionResultRequest
- 3, // 38: agent.AgentMessage.pong:type_name -> agent.Pong
- 9, // 39: agent.AgentMessage.set_state:type_name -> agent.SetStateResponse
- 15, // 40: agent.AgentMessage.start_action:type_name -> agent.StartActionResponse
- 17, // 41: agent.AgentMessage.stop_action:type_name -> agent.StopActionResponse
- 21, // 42: agent.AgentMessage.check_connection:type_name -> agent.CheckConnectionResponse
- 3, // 43: agent.ServerMessage.pong:type_name -> agent.Pong
- 7, // 44: agent.ServerMessage.state_changed:type_name -> agent.StateChangedResponse
- 5, // 45: agent.ServerMessage.qan_collect:type_name -> agent.QANCollectResponse
- 19, // 46: agent.ServerMessage.action_result:type_name -> agent.ActionResultResponse
- 2, // 47: agent.ServerMessage.ping:type_name -> agent.Ping
- 8, // 48: agent.ServerMessage.set_state:type_name -> agent.SetStateRequest
- 14, // 49: agent.ServerMessage.start_action:type_name -> agent.StartActionRequest
- 16, // 50: agent.ServerMessage.stop_action:type_name -> agent.StopActionRequest
- 20, // 51: agent.ServerMessage.check_connection:type_name -> agent.CheckConnectionRequest
- 53, // 52: agent.SetStateRequest.AgentProcess.type:type_name -> inventory.AgentType
- 29, // 53: agent.SetStateRequest.AgentProcess.text_files:type_name -> agent.SetStateRequest.AgentProcess.TextFilesEntry
- 25, // 54: agent.SetStateRequest.AgentProcessesEntry.value:type_name -> agent.SetStateRequest.AgentProcess
- 53, // 55: agent.SetStateRequest.BuiltinAgent.type:type_name -> inventory.AgentType
- 1, // 56: agent.SetStateRequest.BuiltinAgent.text_files:type_name -> agent.TextFiles
- 27, // 57: agent.SetStateRequest.BuiltinAgentsEntry.value:type_name -> agent.SetStateRequest.BuiltinAgent
- 10, // 58: agent.QueryActionMap.MapEntry.value:type_name -> agent.QueryActionValue
- 0, // 59: agent.StartActionRequest.MySQLExplainParams.output_format:type_name -> agent.MysqlExplainOutputFormat
- 1, // 60: agent.StartActionRequest.MongoDBExplainParams.text_files:type_name -> agent.TextFiles
- 1, // 61: agent.StartActionRequest.MongoDBQueryGetParameterParams.text_files:type_name -> agent.TextFiles
- 1, // 62: agent.StartActionRequest.MongoDBQueryBuildInfoParams.text_files:type_name -> agent.TextFiles
- 1, // 63: agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams.text_files:type_name -> agent.TextFiles
- 22, // 64: agent.Agent.Connect:input_type -> agent.AgentMessage
- 23, // 65: agent.Agent.Connect:output_type -> agent.ServerMessage
- 65, // [65:66] is the sub-list for method output_type
- 64, // [64:65] is the sub-list for method input_type
- 64, // [64:64] is the sub-list for extension type_name
- 64, // [64:64] is the sub-list for extension extendee
- 0, // [0:64] is the sub-list for field type_name
+ 26, // 0: agent.TextFiles.files:type_name -> agent.TextFiles.FilesEntry
+ 53, // 1: agent.Pong.current_time:type_name -> google.protobuf.Timestamp
+ 54, // 2: agent.QANCollectRequest.metrics_bucket:type_name -> agent.MetricsBucket
+ 55, // 3: agent.StateChangedRequest.status:type_name -> inventory.AgentStatus
+ 28, // 4: agent.SetStateRequest.agent_processes:type_name -> agent.SetStateRequest.AgentProcessesEntry
+ 30, // 5: agent.SetStateRequest.builtin_agents:type_name -> agent.SetStateRequest.BuiltinAgentsEntry
+ 32, // 6: agent.SetStateRequest.tunnels:type_name -> agent.SetStateRequest.TunnelsEntry
+ 34, // 7: agent.SetStateResponse.tunnels:type_name -> agent.SetStateResponse.TunnelsEntry
+ 53, // 8: agent.QueryActionValue.timestamp:type_name -> google.protobuf.Timestamp
+ 11, // 9: agent.QueryActionValue.slice:type_name -> agent.QueryActionSlice
+ 12, // 10: agent.QueryActionValue.map:type_name -> agent.QueryActionMap
+ 10, // 11: agent.QueryActionSlice.slice:type_name -> agent.QueryActionValue
+ 35, // 12: agent.QueryActionMap.map:type_name -> agent.QueryActionMap.MapEntry
+ 11, // 13: agent.QueryActionResult.rows:type_name -> agent.QueryActionSlice
+ 12, // 14: agent.QueryActionResult.docs:type_name -> agent.QueryActionMap
+ 36, // 15: agent.StartActionRequest.mysql_explain_params:type_name -> agent.StartActionRequest.MySQLExplainParams
+ 37, // 16: agent.StartActionRequest.mysql_show_create_table_params:type_name -> agent.StartActionRequest.MySQLShowCreateTableParams
+ 38, // 17: agent.StartActionRequest.mysql_show_table_status_params:type_name -> agent.StartActionRequest.MySQLShowTableStatusParams
+ 39, // 18: agent.StartActionRequest.mysql_show_index_params:type_name -> agent.StartActionRequest.MySQLShowIndexParams
+ 40, // 19: agent.StartActionRequest.postgresql_show_create_table_params:type_name -> agent.StartActionRequest.PostgreSQLShowCreateTableParams
+ 41, // 20: agent.StartActionRequest.postgresql_show_index_params:type_name -> agent.StartActionRequest.PostgreSQLShowIndexParams
+ 42, // 21: agent.StartActionRequest.mongodb_explain_params:type_name -> agent.StartActionRequest.MongoDBExplainParams
+ 43, // 22: agent.StartActionRequest.pt_summary_params:type_name -> agent.StartActionRequest.PTSummaryParams
+ 44, // 23: agent.StartActionRequest.pt_mongodb_summary_params:type_name -> agent.StartActionRequest.PTMongoDBSummaryParams
+ 45, // 24: agent.StartActionRequest.mysql_query_show_params:type_name -> agent.StartActionRequest.MySQLQueryShowParams
+ 46, // 25: agent.StartActionRequest.mysql_query_select_params:type_name -> agent.StartActionRequest.MySQLQuerySelectParams
+ 47, // 26: agent.StartActionRequest.postgresql_query_show_params:type_name -> agent.StartActionRequest.PostgreSQLQueryShowParams
+ 48, // 27: agent.StartActionRequest.postgresql_query_select_params:type_name -> agent.StartActionRequest.PostgreSQLQuerySelectParams
+ 49, // 28: agent.StartActionRequest.mongodb_query_getparameter_params:type_name -> agent.StartActionRequest.MongoDBQueryGetParameterParams
+ 50, // 29: agent.StartActionRequest.mongodb_query_buildinfo_params:type_name -> agent.StartActionRequest.MongoDBQueryBuildInfoParams
+ 51, // 30: agent.StartActionRequest.mongodb_query_getcmdlineopts_params:type_name -> agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams
+ 56, // 31: agent.StartActionRequest.timeout:type_name -> google.protobuf.Duration
+ 57, // 32: agent.TunnelDataAck.status:type_name -> google.rpc.Status
+ 58, // 33: agent.CheckConnectionRequest.type:type_name -> inventory.ServiceType
+ 56, // 34: agent.CheckConnectionRequest.timeout:type_name -> google.protobuf.Duration
+ 1, // 35: agent.CheckConnectionRequest.text_files:type_name -> agent.TextFiles
+ 52, // 36: agent.CheckConnectionResponse.stats:type_name -> agent.CheckConnectionResponse.Stats
+ 2, // 37: agent.AgentMessage.ping:type_name -> agent.Ping
+ 6, // 38: agent.AgentMessage.state_changed:type_name -> agent.StateChangedRequest
+ 4, // 39: agent.AgentMessage.qan_collect:type_name -> agent.QANCollectRequest
+ 18, // 40: agent.AgentMessage.action_result:type_name -> agent.ActionResultRequest
+ 20, // 41: agent.AgentMessage.tunnel_data:type_name -> agent.TunnelData
+ 3, // 42: agent.AgentMessage.pong:type_name -> agent.Pong
+ 9, // 43: agent.AgentMessage.set_state:type_name -> agent.SetStateResponse
+ 15, // 44: agent.AgentMessage.start_action:type_name -> agent.StartActionResponse
+ 17, // 45: agent.AgentMessage.stop_action:type_name -> agent.StopActionResponse
+ 23, // 46: agent.AgentMessage.check_connection:type_name -> agent.CheckConnectionResponse
+ 21, // 47: agent.AgentMessage.tunnel_data_ack:type_name -> agent.TunnelDataAck
+ 3, // 48: agent.ServerMessage.pong:type_name -> agent.Pong
+ 7, // 49: agent.ServerMessage.state_changed:type_name -> agent.StateChangedResponse
+ 5, // 50: agent.ServerMessage.qan_collect:type_name -> agent.QANCollectResponse
+ 19, // 51: agent.ServerMessage.action_result:type_name -> agent.ActionResultResponse
+ 21, // 52: agent.ServerMessage.tunnel_data_ack:type_name -> agent.TunnelDataAck
+ 2, // 53: agent.ServerMessage.ping:type_name -> agent.Ping
+ 8, // 54: agent.ServerMessage.set_state:type_name -> agent.SetStateRequest
+ 14, // 55: agent.ServerMessage.start_action:type_name -> agent.StartActionRequest
+ 16, // 56: agent.ServerMessage.stop_action:type_name -> agent.StopActionRequest
+ 22, // 57: agent.ServerMessage.check_connection:type_name -> agent.CheckConnectionRequest
+ 20, // 58: agent.ServerMessage.tunnel_data:type_name -> agent.TunnelData
+ 59, // 59: agent.SetStateRequest.AgentProcess.type:type_name -> inventory.AgentType
+ 33, // 60: agent.SetStateRequest.AgentProcess.text_files:type_name -> agent.SetStateRequest.AgentProcess.TextFilesEntry
+ 27, // 61: agent.SetStateRequest.AgentProcessesEntry.value:type_name -> agent.SetStateRequest.AgentProcess
+ 59, // 62: agent.SetStateRequest.BuiltinAgent.type:type_name -> inventory.AgentType
+ 1, // 63: agent.SetStateRequest.BuiltinAgent.text_files:type_name -> agent.TextFiles
+ 29, // 64: agent.SetStateRequest.BuiltinAgentsEntry.value:type_name -> agent.SetStateRequest.BuiltinAgent
+ 31, // 65: agent.SetStateRequest.TunnelsEntry.value:type_name -> agent.SetStateRequest.Tunnel
+ 57, // 66: agent.SetStateResponse.TunnelsEntry.value:type_name -> google.rpc.Status
+ 10, // 67: agent.QueryActionMap.MapEntry.value:type_name -> agent.QueryActionValue
+ 0, // 68: agent.StartActionRequest.MySQLExplainParams.output_format:type_name -> agent.MysqlExplainOutputFormat
+ 1, // 69: agent.StartActionRequest.MongoDBExplainParams.text_files:type_name -> agent.TextFiles
+ 1, // 70: agent.StartActionRequest.MongoDBQueryGetParameterParams.text_files:type_name -> agent.TextFiles
+ 1, // 71: agent.StartActionRequest.MongoDBQueryBuildInfoParams.text_files:type_name -> agent.TextFiles
+ 1, // 72: agent.StartActionRequest.MongoDBQueryGetCmdLineOptsParams.text_files:type_name -> agent.TextFiles
+ 24, // 73: agent.Agent.Connect:input_type -> agent.AgentMessage
+ 25, // 74: agent.Agent.Connect:output_type -> agent.ServerMessage
+ 74, // [74:75] is the sub-list for method output_type
+ 73, // [73:74] is the sub-list for method input_type
+ 73, // [73:73] is the sub-list for extension type_name
+ 73, // [73:73] is the sub-list for extension extendee
+ 0, // [0:73] is the sub-list for field type_name
}
func init() { file_agentpb_agent_proto_init() }
@@ -3939,7 +4272,7 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CheckConnectionRequest); i {
+ switch v := v.(*TunnelData); i {
case 0:
return &v.state
case 1:
@@ -3951,7 +4284,7 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CheckConnectionResponse); i {
+ switch v := v.(*TunnelDataAck); i {
case 0:
return &v.state
case 1:
@@ -3963,7 +4296,7 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AgentMessage); i {
+ switch v := v.(*CheckConnectionRequest); i {
case 0:
return &v.state
case 1:
@@ -3975,7 +4308,19 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ServerMessage); i {
+ switch v := v.(*CheckConnectionResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_agentpb_agent_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AgentMessage); i {
case 0:
return &v.state
case 1:
@@ -3987,7 +4332,7 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SetStateRequest_AgentProcess); i {
+ switch v := v.(*ServerMessage); i {
case 0:
return &v.state
case 1:
@@ -3999,6 +4344,18 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SetStateRequest_AgentProcess); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_agentpb_agent_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetStateRequest_BuiltinAgent); i {
case 0:
return &v.state
@@ -4011,6 +4368,18 @@ func file_agentpb_agent_proto_init() {
}
}
file_agentpb_agent_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SetStateRequest_Tunnel); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_agentpb_agent_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLExplainParams); i {
case 0:
return &v.state
@@ -4022,7 +4391,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLShowCreateTableParams); i {
case 0:
return &v.state
@@ -4034,7 +4403,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLShowTableStatusParams); i {
case 0:
return &v.state
@@ -4046,7 +4415,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLShowIndexParams); i {
case 0:
return &v.state
@@ -4058,7 +4427,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PostgreSQLShowCreateTableParams); i {
case 0:
return &v.state
@@ -4070,7 +4439,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PostgreSQLShowIndexParams); i {
case 0:
return &v.state
@@ -4082,7 +4451,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MongoDBExplainParams); i {
case 0:
return &v.state
@@ -4094,7 +4463,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PTSummaryParams); i {
case 0:
return &v.state
@@ -4106,7 +4475,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PTMongoDBSummaryParams); i {
case 0:
return &v.state
@@ -4118,7 +4487,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLQueryShowParams); i {
case 0:
return &v.state
@@ -4130,7 +4499,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MySQLQuerySelectParams); i {
case 0:
return &v.state
@@ -4142,7 +4511,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PostgreSQLQueryShowParams); i {
case 0:
return &v.state
@@ -4154,7 +4523,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_PostgreSQLQuerySelectParams); i {
case 0:
return &v.state
@@ -4166,7 +4535,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MongoDBQueryGetParameterParams); i {
case 0:
return &v.state
@@ -4178,7 +4547,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MongoDBQueryBuildInfoParams); i {
case 0:
return &v.state
@@ -4190,7 +4559,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartActionRequest_MongoDBQueryGetCmdLineOptsParams); i {
case 0:
return &v.state
@@ -4202,7 +4571,7 @@ func file_agentpb_agent_proto_init() {
return nil
}
}
- file_agentpb_agent_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
+ file_agentpb_agent_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CheckConnectionResponse_Stats); i {
case 0:
return &v.state
@@ -4244,27 +4613,31 @@ func file_agentpb_agent_proto_init() {
(*StartActionRequest_MongodbQueryBuildinfoParams)(nil),
(*StartActionRequest_MongodbQueryGetcmdlineoptsParams)(nil),
}
- file_agentpb_agent_proto_msgTypes[21].OneofWrappers = []interface{}{
+ file_agentpb_agent_proto_msgTypes[23].OneofWrappers = []interface{}{
(*AgentMessage_Ping)(nil),
(*AgentMessage_StateChanged)(nil),
(*AgentMessage_QanCollect)(nil),
(*AgentMessage_ActionResult)(nil),
+ (*AgentMessage_TunnelData)(nil),
(*AgentMessage_Pong)(nil),
(*AgentMessage_SetState)(nil),
(*AgentMessage_StartAction)(nil),
(*AgentMessage_StopAction)(nil),
(*AgentMessage_CheckConnection)(nil),
+ (*AgentMessage_TunnelDataAck)(nil),
}
- file_agentpb_agent_proto_msgTypes[22].OneofWrappers = []interface{}{
+ file_agentpb_agent_proto_msgTypes[24].OneofWrappers = []interface{}{
(*ServerMessage_Pong)(nil),
(*ServerMessage_StateChanged)(nil),
(*ServerMessage_QanCollect)(nil),
(*ServerMessage_ActionResult)(nil),
+ (*ServerMessage_TunnelDataAck)(nil),
(*ServerMessage_Ping)(nil),
(*ServerMessage_SetState)(nil),
(*ServerMessage_StartAction)(nil),
(*ServerMessage_StopAction)(nil),
(*ServerMessage_CheckConnection)(nil),
+ (*ServerMessage_TunnelData)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -4272,7 +4645,7 @@ func file_agentpb_agent_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_agentpb_agent_proto_rawDesc,
NumEnums: 1,
- NumMessages: 47,
+ NumMessages: 52,
NumExtensions: 0,
NumServices: 1,
},
@@ -4353,7 +4726,7 @@ type UnimplementedAgentServer struct {
}
func (*UnimplementedAgentServer) Connect(Agent_ConnectServer) error {
- return status.Errorf(codes.Unimplemented, "method Connect not implemented")
+ return status1.Errorf(codes.Unimplemented, "method Connect not implemented")
}
func RegisterAgentServer(s *grpc.Server, srv AgentServer) {
diff --git a/vendor/github.com/percona/pmm/api/agentpb/agent.validator.pb.go b/vendor/github.com/percona/pmm/api/agentpb/agent.validator.pb.go
index 0371361bad..499c5f9325 100644
--- a/vendor/github.com/percona/pmm/api/agentpb/agent.validator.pb.go
+++ b/vendor/github.com/percona/pmm/api/agentpb/agent.validator.pb.go
@@ -8,8 +8,10 @@ import (
proto "github.com/golang/protobuf/proto"
_ "github.com/golang/protobuf/ptypes/duration"
_ "github.com/golang/protobuf/ptypes/timestamp"
+ _ "github.com/mwitkow/go-proto-validators"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
_ "github.com/percona/pmm/api/inventorypb"
+ _ "google.golang.org/genproto/googleapis/rpc/status"
math "math"
)
@@ -53,6 +55,7 @@ func (this *StateChangedResponse) Validate() error {
return nil
}
func (this *SetStateRequest) Validate() error {
+ // Validation of proto3 map<> fields is unsupported.
// Validation of proto3 map<> fields is unsupported.
// Validation of proto3 map<> fields is unsupported.
return nil
@@ -69,7 +72,17 @@ func (this *SetStateRequest_BuiltinAgent) Validate() error {
}
return nil
}
+func (this *SetStateRequest_Tunnel) Validate() error {
+ if !(this.ListenPort < 65536) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ListenPort", fmt.Errorf(`value '%v' must be less than '65536'`, this.ListenPort))
+ }
+ if !(this.ConnectPort < 65536) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ConnectPort", fmt.Errorf(`value '%v' must be less than '65536'`, this.ConnectPort))
+ }
+ return nil
+}
func (this *SetStateResponse) Validate() error {
+ // Validation of proto3 map<> fields is unsupported.
return nil
}
func (this *QueryActionValue) Validate() error {
@@ -330,6 +343,23 @@ func (this *ActionResultRequest) Validate() error {
func (this *ActionResultResponse) Validate() error {
return nil
}
+func (this *TunnelData) Validate() error {
+ if this.TunnelId == "" {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelId", fmt.Errorf(`value '%v' must not be an empty string`, this.TunnelId))
+ }
+ if this.ConnectionId == "" {
+ return github_com_mwitkow_go_proto_validators.FieldError("ConnectionId", fmt.Errorf(`value '%v' must not be an empty string`, this.ConnectionId))
+ }
+ return nil
+}
+func (this *TunnelDataAck) Validate() error {
+ if this.Status != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Status); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("Status", err)
+ }
+ }
+ return nil
+}
func (this *CheckConnectionRequest) Validate() error {
if this.Timeout != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Timeout); err != nil {
@@ -383,6 +413,13 @@ func (this *AgentMessage) Validate() error {
}
}
}
+ if oneOfNester, ok := this.GetPayload().(*AgentMessage_TunnelData); ok {
+ if oneOfNester.TunnelData != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.TunnelData); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelData", err)
+ }
+ }
+ }
if oneOfNester, ok := this.GetPayload().(*AgentMessage_Pong); ok {
if oneOfNester.Pong != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.Pong); err != nil {
@@ -418,6 +455,13 @@ func (this *AgentMessage) Validate() error {
}
}
}
+ if oneOfNester, ok := this.GetPayload().(*AgentMessage_TunnelDataAck); ok {
+ if oneOfNester.TunnelDataAck != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.TunnelDataAck); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelDataAck", err)
+ }
+ }
+ }
return nil
}
func (this *ServerMessage) Validate() error {
@@ -449,6 +493,13 @@ func (this *ServerMessage) Validate() error {
}
}
}
+ if oneOfNester, ok := this.GetPayload().(*ServerMessage_TunnelDataAck); ok {
+ if oneOfNester.TunnelDataAck != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.TunnelDataAck); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelDataAck", err)
+ }
+ }
+ }
if oneOfNester, ok := this.GetPayload().(*ServerMessage_Ping); ok {
if oneOfNester.Ping != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.Ping); err != nil {
@@ -484,5 +535,12 @@ func (this *ServerMessage) Validate() error {
}
}
}
+ if oneOfNester, ok := this.GetPayload().(*ServerMessage_TunnelData); ok {
+ if oneOfNester.TunnelData != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(oneOfNester.TunnelData); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelData", err)
+ }
+ }
+ }
return nil
}
diff --git a/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.go b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.go
new file mode 100644
index 0000000000..70ca83e133
--- /dev/null
+++ b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.go
@@ -0,0 +1,805 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.25.0
+// protoc v3.13.0
+// source: inventorypb/tunnels.proto
+
+package inventorypb
+
+import (
+ context "context"
+ proto "github.com/golang/protobuf/proto"
+ _ "github.com/mwitkow/go-proto-validators"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+// Tunnel represents a single Tunnel configuration.
+type Tunnel struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Tunnel ID.
+ TunnelId string `protobuf:"bytes,1,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"`
+ // Agent ID of the listening pmm-agent.
+ ListenAgentId string `protobuf:"bytes,2,opt,name=listen_agent_id,json=listenAgentId,proto3" json:"listen_agent_id,omitempty"`
+ // Listen port of the listening pmm-agent.
+ ListenPort uint32 `protobuf:"varint,3,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
+ // Agent ID of the connecting pmm-agent.
+ ConnectAgentId string `protobuf:"bytes,4,opt,name=connect_agent_id,json=connectAgentId,proto3" json:"connect_agent_id,omitempty"`
+ // Target port of the connecting pmm-agent.
+ ConnectPort uint32 `protobuf:"varint,5,opt,name=connect_port,json=connectPort,proto3" json:"connect_port,omitempty"`
+}
+
+func (x *Tunnel) Reset() {
+ *x = Tunnel{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Tunnel) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Tunnel) ProtoMessage() {}
+
+func (x *Tunnel) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Tunnel.ProtoReflect.Descriptor instead.
+func (*Tunnel) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Tunnel) GetTunnelId() string {
+ if x != nil {
+ return x.TunnelId
+ }
+ return ""
+}
+
+func (x *Tunnel) GetListenAgentId() string {
+ if x != nil {
+ return x.ListenAgentId
+ }
+ return ""
+}
+
+func (x *Tunnel) GetListenPort() uint32 {
+ if x != nil {
+ return x.ListenPort
+ }
+ return 0
+}
+
+func (x *Tunnel) GetConnectAgentId() string {
+ if x != nil {
+ return x.ConnectAgentId
+ }
+ return ""
+}
+
+func (x *Tunnel) GetConnectPort() uint32 {
+ if x != nil {
+ return x.ConnectPort
+ }
+ return 0
+}
+
+type ListTunnelsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Return only Tunnels where one (or both) pmm-agent has this ID.
+ AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"`
+}
+
+func (x *ListTunnelsRequest) Reset() {
+ *x = ListTunnelsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListTunnelsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListTunnelsRequest) ProtoMessage() {}
+
+func (x *ListTunnelsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListTunnelsRequest.ProtoReflect.Descriptor instead.
+func (*ListTunnelsRequest) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListTunnelsRequest) GetAgentId() string {
+ if x != nil {
+ return x.AgentId
+ }
+ return ""
+}
+
+type ListTunnelsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Tunnel []*Tunnel `protobuf:"bytes,1,rep,name=tunnel,proto3" json:"tunnel,omitempty"`
+}
+
+func (x *ListTunnelsResponse) Reset() {
+ *x = ListTunnelsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListTunnelsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListTunnelsResponse) ProtoMessage() {}
+
+func (x *ListTunnelsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListTunnelsResponse.ProtoReflect.Descriptor instead.
+func (*ListTunnelsResponse) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListTunnelsResponse) GetTunnel() []*Tunnel {
+ if x != nil {
+ return x.Tunnel
+ }
+ return nil
+}
+
+type AddTunnelRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Agent ID of the listening pmm-agent.
+ ListenAgentId string `protobuf:"bytes,1,opt,name=listen_agent_id,json=listenAgentId,proto3" json:"listen_agent_id,omitempty"`
+ // Listen port of the listening pmm-agent.
+ ListenPort uint32 `protobuf:"varint,2,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
+ // Agent ID of the connecting pmm-agent.
+ ConnectAgentId string `protobuf:"bytes,3,opt,name=connect_agent_id,json=connectAgentId,proto3" json:"connect_agent_id,omitempty"`
+ // Target port of the connecting pmm-agent.
+ ConnectPort uint32 `protobuf:"varint,4,opt,name=connect_port,json=connectPort,proto3" json:"connect_port,omitempty"`
+}
+
+func (x *AddTunnelRequest) Reset() {
+ *x = AddTunnelRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AddTunnelRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AddTunnelRequest) ProtoMessage() {}
+
+func (x *AddTunnelRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AddTunnelRequest.ProtoReflect.Descriptor instead.
+func (*AddTunnelRequest) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *AddTunnelRequest) GetListenAgentId() string {
+ if x != nil {
+ return x.ListenAgentId
+ }
+ return ""
+}
+
+func (x *AddTunnelRequest) GetListenPort() uint32 {
+ if x != nil {
+ return x.ListenPort
+ }
+ return 0
+}
+
+func (x *AddTunnelRequest) GetConnectAgentId() string {
+ if x != nil {
+ return x.ConnectAgentId
+ }
+ return ""
+}
+
+func (x *AddTunnelRequest) GetConnectPort() uint32 {
+ if x != nil {
+ return x.ConnectPort
+ }
+ return 0
+}
+
+type AddTunnelResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Tunnel ID.
+ TunnelId string `protobuf:"bytes,1,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"`
+}
+
+func (x *AddTunnelResponse) Reset() {
+ *x = AddTunnelResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AddTunnelResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AddTunnelResponse) ProtoMessage() {}
+
+func (x *AddTunnelResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AddTunnelResponse.ProtoReflect.Descriptor instead.
+func (*AddTunnelResponse) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *AddTunnelResponse) GetTunnelId() string {
+ if x != nil {
+ return x.TunnelId
+ }
+ return ""
+}
+
+type RemoveTunnelRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TunnelId string `protobuf:"bytes,1,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"`
+}
+
+func (x *RemoveTunnelRequest) Reset() {
+ *x = RemoveTunnelRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RemoveTunnelRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RemoveTunnelRequest) ProtoMessage() {}
+
+func (x *RemoveTunnelRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RemoveTunnelRequest.ProtoReflect.Descriptor instead.
+func (*RemoveTunnelRequest) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *RemoveTunnelRequest) GetTunnelId() string {
+ if x != nil {
+ return x.TunnelId
+ }
+ return ""
+}
+
+type RemoveTunnelResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RemoveTunnelResponse) Reset() {
+ *x = RemoveTunnelResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RemoveTunnelResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RemoveTunnelResponse) ProtoMessage() {}
+
+func (x *RemoveTunnelResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_inventorypb_tunnels_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RemoveTunnelResponse.ProtoReflect.Descriptor instead.
+func (*RemoveTunnelResponse) Descriptor() ([]byte, []int) {
+ return file_inventorypb_tunnels_proto_rawDescGZIP(), []int{6}
+}
+
+var File_inventorypb_tunnels_proto protoreflect.FileDescriptor
+
+var file_inventorypb_tunnels_proto_rawDesc = []byte{
+ 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x2f, 0x74, 0x75,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x69, 0x6e, 0x76,
+ 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x76,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x01, 0x0a,
+ 0x06, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65,
+ 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61,
+ 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a,
+ 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69,
+ 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
+ 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
+ 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x2f, 0x0a, 0x12, 0x4c, 0x69,
+ 0x73, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x13, 0x4c,
+ 0x69, 0x73, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54,
+ 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xd0, 0x01,
+ 0x0a, 0x10, 0x41, 0x64, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe2, 0xdf, 0x1f,
+ 0x02, 0x58, 0x01, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74,
+ 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xe2, 0xdf, 0x1f, 0x06, 0x10, 0x00, 0x18,
+ 0x80, 0x80, 0x04, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12,
+ 0x30, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe2, 0xdf, 0x1f, 0x02, 0x58,
+ 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49,
+ 0x64, 0x12, 0x2d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xe2, 0xdf, 0x1f, 0x06, 0x10, 0x00, 0x18,
+ 0x80, 0x80, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x72, 0x74,
+ 0x22, 0x30, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e,
+ 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x09, 0x74, 0x75, 0x6e,
+ 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe2, 0xdf,
+ 0x1f, 0x02, 0x58, 0x01, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0x16,
+ 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe6, 0x02, 0x0a, 0x07, 0x54, 0x75, 0x6e, 0x6e, 0x65,
+ 0x6c, 0x73, 0x12, 0x73, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
+ 0x73, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e,
+ 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f,
+ 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x54, 0x75,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
+ 0x2e, 0x41, 0x64, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x41, 0x64,
+ 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76,
+ 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x41,
+ 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54,
+ 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72,
+ 0x79, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72,
+ 0x79, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c,
+ 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x54, 0x75,
+ 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x42,
+ 0x1d, 0x5a, 0x1b, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
+ 0x70, 0x62, 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_inventorypb_tunnels_proto_rawDescOnce sync.Once
+ file_inventorypb_tunnels_proto_rawDescData = file_inventorypb_tunnels_proto_rawDesc
+)
+
+func file_inventorypb_tunnels_proto_rawDescGZIP() []byte {
+ file_inventorypb_tunnels_proto_rawDescOnce.Do(func() {
+ file_inventorypb_tunnels_proto_rawDescData = protoimpl.X.CompressGZIP(file_inventorypb_tunnels_proto_rawDescData)
+ })
+ return file_inventorypb_tunnels_proto_rawDescData
+}
+
+var file_inventorypb_tunnels_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
+var file_inventorypb_tunnels_proto_goTypes = []interface{}{
+ (*Tunnel)(nil), // 0: inventory.Tunnel
+ (*ListTunnelsRequest)(nil), // 1: inventory.ListTunnelsRequest
+ (*ListTunnelsResponse)(nil), // 2: inventory.ListTunnelsResponse
+ (*AddTunnelRequest)(nil), // 3: inventory.AddTunnelRequest
+ (*AddTunnelResponse)(nil), // 4: inventory.AddTunnelResponse
+ (*RemoveTunnelRequest)(nil), // 5: inventory.RemoveTunnelRequest
+ (*RemoveTunnelResponse)(nil), // 6: inventory.RemoveTunnelResponse
+}
+var file_inventorypb_tunnels_proto_depIdxs = []int32{
+ 0, // 0: inventory.ListTunnelsResponse.tunnel:type_name -> inventory.Tunnel
+ 1, // 1: inventory.Tunnels.ListTunnels:input_type -> inventory.ListTunnelsRequest
+ 3, // 2: inventory.Tunnels.AddTunnel:input_type -> inventory.AddTunnelRequest
+ 5, // 3: inventory.Tunnels.RemoveTunnel:input_type -> inventory.RemoveTunnelRequest
+ 2, // 4: inventory.Tunnels.ListTunnels:output_type -> inventory.ListTunnelsResponse
+ 4, // 5: inventory.Tunnels.AddTunnel:output_type -> inventory.AddTunnelResponse
+ 6, // 6: inventory.Tunnels.RemoveTunnel:output_type -> inventory.RemoveTunnelResponse
+ 4, // [4:7] is the sub-list for method output_type
+ 1, // [1:4] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_inventorypb_tunnels_proto_init() }
+func file_inventorypb_tunnels_proto_init() {
+ if File_inventorypb_tunnels_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_inventorypb_tunnels_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Tunnel); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListTunnelsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListTunnelsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AddTunnelRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AddTunnelResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RemoveTunnelRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_inventorypb_tunnels_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RemoveTunnelResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_inventorypb_tunnels_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 7,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_inventorypb_tunnels_proto_goTypes,
+ DependencyIndexes: file_inventorypb_tunnels_proto_depIdxs,
+ MessageInfos: file_inventorypb_tunnels_proto_msgTypes,
+ }.Build()
+ File_inventorypb_tunnels_proto = out.File
+ file_inventorypb_tunnels_proto_rawDesc = nil
+ file_inventorypb_tunnels_proto_goTypes = nil
+ file_inventorypb_tunnels_proto_depIdxs = nil
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConnInterface
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion6
+
+// TunnelsClient is the client API for Tunnels service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type TunnelsClient interface {
+ // ListTunnels returns a list of all Tunnels.
+ ListTunnels(ctx context.Context, in *ListTunnelsRequest, opts ...grpc.CallOption) (*ListTunnelsResponse, error)
+ // AddTunnel adds a Tunnel.
+ AddTunnel(ctx context.Context, in *AddTunnelRequest, opts ...grpc.CallOption) (*AddTunnelResponse, error)
+ // RemoveTunnel removes a Tunnel.
+ RemoveTunnel(ctx context.Context, in *RemoveTunnelRequest, opts ...grpc.CallOption) (*RemoveTunnelResponse, error)
+}
+
+type tunnelsClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewTunnelsClient(cc grpc.ClientConnInterface) TunnelsClient {
+ return &tunnelsClient{cc}
+}
+
+func (c *tunnelsClient) ListTunnels(ctx context.Context, in *ListTunnelsRequest, opts ...grpc.CallOption) (*ListTunnelsResponse, error) {
+ out := new(ListTunnelsResponse)
+ err := c.cc.Invoke(ctx, "/inventory.Tunnels/ListTunnels", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *tunnelsClient) AddTunnel(ctx context.Context, in *AddTunnelRequest, opts ...grpc.CallOption) (*AddTunnelResponse, error) {
+ out := new(AddTunnelResponse)
+ err := c.cc.Invoke(ctx, "/inventory.Tunnels/AddTunnel", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *tunnelsClient) RemoveTunnel(ctx context.Context, in *RemoveTunnelRequest, opts ...grpc.CallOption) (*RemoveTunnelResponse, error) {
+ out := new(RemoveTunnelResponse)
+ err := c.cc.Invoke(ctx, "/inventory.Tunnels/RemoveTunnel", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// TunnelsServer is the server API for Tunnels service.
+type TunnelsServer interface {
+ // ListTunnels returns a list of all Tunnels.
+ ListTunnels(context.Context, *ListTunnelsRequest) (*ListTunnelsResponse, error)
+ // AddTunnel adds a Tunnel.
+ AddTunnel(context.Context, *AddTunnelRequest) (*AddTunnelResponse, error)
+ // RemoveTunnel removes a Tunnel.
+ RemoveTunnel(context.Context, *RemoveTunnelRequest) (*RemoveTunnelResponse, error)
+}
+
+// UnimplementedTunnelsServer can be embedded to have forward compatible implementations.
+type UnimplementedTunnelsServer struct {
+}
+
+func (*UnimplementedTunnelsServer) ListTunnels(context.Context, *ListTunnelsRequest) (*ListTunnelsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListTunnels not implemented")
+}
+func (*UnimplementedTunnelsServer) AddTunnel(context.Context, *AddTunnelRequest) (*AddTunnelResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method AddTunnel not implemented")
+}
+func (*UnimplementedTunnelsServer) RemoveTunnel(context.Context, *RemoveTunnelRequest) (*RemoveTunnelResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RemoveTunnel not implemented")
+}
+
+func RegisterTunnelsServer(s *grpc.Server, srv TunnelsServer) {
+ s.RegisterService(&_Tunnels_serviceDesc, srv)
+}
+
+func _Tunnels_ListTunnels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListTunnelsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TunnelsServer).ListTunnels(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/inventory.Tunnels/ListTunnels",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TunnelsServer).ListTunnels(ctx, req.(*ListTunnelsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Tunnels_AddTunnel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(AddTunnelRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TunnelsServer).AddTunnel(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/inventory.Tunnels/AddTunnel",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TunnelsServer).AddTunnel(ctx, req.(*AddTunnelRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Tunnels_RemoveTunnel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RemoveTunnelRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TunnelsServer).RemoveTunnel(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/inventory.Tunnels/RemoveTunnel",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TunnelsServer).RemoveTunnel(ctx, req.(*RemoveTunnelRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _Tunnels_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "inventory.Tunnels",
+ HandlerType: (*TunnelsServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListTunnels",
+ Handler: _Tunnels_ListTunnels_Handler,
+ },
+ {
+ MethodName: "AddTunnel",
+ Handler: _Tunnels_AddTunnel_Handler,
+ },
+ {
+ MethodName: "RemoveTunnel",
+ Handler: _Tunnels_RemoveTunnel_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "inventorypb/tunnels.proto",
+}
diff --git a/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.gw.go b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.gw.go
new file mode 100644
index 0000000000..46bf903466
--- /dev/null
+++ b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.pb.gw.go
@@ -0,0 +1,331 @@
+// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
+// source: inventorypb/tunnels.proto
+
+/*
+Package inventorypb is a reverse proxy.
+
+It translates gRPC into RESTful JSON APIs.
+*/
+package inventorypb
+
+import (
+ "context"
+ "io"
+ "net/http"
+
+ "github.com/golang/protobuf/descriptor"
+ "github.com/golang/protobuf/proto"
+ "github.com/grpc-ecosystem/grpc-gateway/runtime"
+ "github.com/grpc-ecosystem/grpc-gateway/utilities"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/grpclog"
+ "google.golang.org/grpc/metadata"
+ "google.golang.org/grpc/status"
+)
+
+// Suppress "imported and not used" errors
+var _ codes.Code
+var _ io.Reader
+var _ status.Status
+var _ = runtime.String
+var _ = utilities.NewDoubleArray
+var _ = descriptor.ForMessage
+var _ = metadata.Join
+
+func request_Tunnels_ListTunnels_0(ctx context.Context, marshaler runtime.Marshaler, client TunnelsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ListTunnelsRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.ListTunnels(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Tunnels_ListTunnels_0(ctx context.Context, marshaler runtime.Marshaler, server TunnelsServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq ListTunnelsRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.ListTunnels(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
+func request_Tunnels_AddTunnel_0(ctx context.Context, marshaler runtime.Marshaler, client TunnelsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq AddTunnelRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.AddTunnel(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Tunnels_AddTunnel_0(ctx context.Context, marshaler runtime.Marshaler, server TunnelsServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq AddTunnelRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.AddTunnel(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
+func request_Tunnels_RemoveTunnel_0(ctx context.Context, marshaler runtime.Marshaler, client TunnelsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq RemoveTunnelRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := client.RemoveTunnel(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_Tunnels_RemoveTunnel_0(ctx context.Context, marshaler runtime.Marshaler, server TunnelsServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq RemoveTunnelRequest
+ var metadata runtime.ServerMetadata
+
+ newReader, berr := utilities.IOReaderFactory(req.Body)
+ if berr != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
+ }
+ if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+ }
+
+ msg, err := server.RemoveTunnel(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
+// RegisterTunnelsHandlerServer registers the http handlers for service Tunnels to "mux".
+// UnaryRPC :call TunnelsServer directly.
+// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
+// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterTunnelsHandlerFromEndpoint instead.
+func RegisterTunnelsHandlerServer(ctx context.Context, mux *runtime.ServeMux, server TunnelsServer) error {
+
+ mux.Handle("POST", pattern_Tunnels_ListTunnels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Tunnels_ListTunnels_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_ListTunnels_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Tunnels_AddTunnel_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Tunnels_AddTunnel_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_AddTunnel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Tunnels_RemoveTunnel_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_Tunnels_RemoveTunnel_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_RemoveTunnel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ return nil
+}
+
+// RegisterTunnelsHandlerFromEndpoint is same as RegisterTunnelsHandler but
+// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
+func RegisterTunnelsHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
+ conn, err := grpc.Dial(endpoint, opts...)
+ if err != nil {
+ return err
+ }
+ defer func() {
+ if err != nil {
+ if cerr := conn.Close(); cerr != nil {
+ grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
+ }
+ return
+ }
+ go func() {
+ <-ctx.Done()
+ if cerr := conn.Close(); cerr != nil {
+ grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
+ }
+ }()
+ }()
+
+ return RegisterTunnelsHandler(ctx, mux, conn)
+}
+
+// RegisterTunnelsHandler registers the http handlers for service Tunnels to "mux".
+// The handlers forward requests to the grpc endpoint over "conn".
+func RegisterTunnelsHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
+ return RegisterTunnelsHandlerClient(ctx, mux, NewTunnelsClient(conn))
+}
+
+// RegisterTunnelsHandlerClient registers the http handlers for service Tunnels
+// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "TunnelsClient".
+// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "TunnelsClient"
+// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
+// "TunnelsClient" to call the correct interceptors.
+func RegisterTunnelsHandlerClient(ctx context.Context, mux *runtime.ServeMux, client TunnelsClient) error {
+
+ mux.Handle("POST", pattern_Tunnels_ListTunnels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Tunnels_ListTunnels_0(rctx, inboundMarshaler, client, req, pathParams)
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_ListTunnels_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Tunnels_AddTunnel_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Tunnels_AddTunnel_0(rctx, inboundMarshaler, client, req, pathParams)
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_AddTunnel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ mux.Handle("POST", pattern_Tunnels_RemoveTunnel_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ rctx, err := runtime.AnnotateContext(ctx, mux, req)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_Tunnels_RemoveTunnel_0(rctx, inboundMarshaler, client, req, pathParams)
+ ctx = runtime.NewServerMetadataContext(ctx, md)
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_Tunnels_RemoveTunnel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
+ return nil
+}
+
+var (
+ pattern_Tunnels_ListTunnels_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Tunnels", "List"}, "", runtime.AssumeColonVerbOpt(true)))
+
+ pattern_Tunnels_AddTunnel_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Tunnels", "Add"}, "", runtime.AssumeColonVerbOpt(true)))
+
+ pattern_Tunnels_RemoveTunnel_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Tunnels", "Remove"}, "", runtime.AssumeColonVerbOpt(true)))
+)
+
+var (
+ forward_Tunnels_ListTunnels_0 = runtime.ForwardResponseMessage
+
+ forward_Tunnels_AddTunnel_0 = runtime.ForwardResponseMessage
+
+ forward_Tunnels_RemoveTunnel_0 = runtime.ForwardResponseMessage
+)
diff --git a/vendor/github.com/percona/pmm/api/inventorypb/tunnels.validator.pb.go b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.validator.pb.go
new file mode 100644
index 0000000000..4560c6c510
--- /dev/null
+++ b/vendor/github.com/percona/pmm/api/inventorypb/tunnels.validator.pb.go
@@ -0,0 +1,68 @@
+// Code generated by protoc-gen-gogo. DO NOT EDIT.
+// source: inventorypb/tunnels.proto
+
+package inventorypb
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ _ "github.com/mwitkow/go-proto-validators"
+ github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
+ _ "google.golang.org/genproto/googleapis/api/annotations"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+func (this *Tunnel) Validate() error {
+ return nil
+}
+func (this *ListTunnelsRequest) Validate() error {
+ return nil
+}
+func (this *ListTunnelsResponse) Validate() error {
+ for _, item := range this.Tunnel {
+ if item != nil {
+ if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
+ return github_com_mwitkow_go_proto_validators.FieldError("Tunnel", err)
+ }
+ }
+ }
+ return nil
+}
+func (this *AddTunnelRequest) Validate() error {
+ if this.ListenAgentId == "" {
+ return github_com_mwitkow_go_proto_validators.FieldError("ListenAgentId", fmt.Errorf(`value '%v' must not be an empty string`, this.ListenAgentId))
+ }
+ if !(this.ListenPort > 0) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ListenPort", fmt.Errorf(`value '%v' must be greater than '0'`, this.ListenPort))
+ }
+ if !(this.ListenPort < 65536) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ListenPort", fmt.Errorf(`value '%v' must be less than '65536'`, this.ListenPort))
+ }
+ if this.ConnectAgentId == "" {
+ return github_com_mwitkow_go_proto_validators.FieldError("ConnectAgentId", fmt.Errorf(`value '%v' must not be an empty string`, this.ConnectAgentId))
+ }
+ if !(this.ConnectPort > 0) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ConnectPort", fmt.Errorf(`value '%v' must be greater than '0'`, this.ConnectPort))
+ }
+ if !(this.ConnectPort < 65536) {
+ return github_com_mwitkow_go_proto_validators.FieldError("ConnectPort", fmt.Errorf(`value '%v' must be less than '65536'`, this.ConnectPort))
+ }
+ return nil
+}
+func (this *AddTunnelResponse) Validate() error {
+ return nil
+}
+func (this *RemoveTunnelRequest) Validate() error {
+ if this.TunnelId == "" {
+ return github_com_mwitkow_go_proto_validators.FieldError("TunnelId", fmt.Errorf(`value '%v' must not be an empty string`, this.TunnelId))
+ }
+ return nil
+}
+func (this *RemoveTunnelResponse) Validate() error {
+ return nil
+}
diff --git a/vendor/github.com/percona/pmm/api/managementpb/external.pb.go b/vendor/github.com/percona/pmm/api/managementpb/external.pb.go
index b365fd9711..cdc1e9ee5c 100644
--- a/vendor/github.com/percona/pmm/api/managementpb/external.pb.go
+++ b/vendor/github.com/percona/pmm/api/managementpb/external.pb.go
@@ -82,6 +82,8 @@ type AddExternalRequest struct {
// Node with registered pmm_agent_id must present at pmm-server
// in case of push metrics_mode.
MetricsMode MetricsMode `protobuf:"varint,17,opt,name=metrics_mode,json=metricsMode,proto3,enum=management.MetricsMode" json:"metrics_mode,omitempty"`
+ // Skip connection check.
+ SkipConnectionCheck bool `protobuf:"varint,21,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"`
}
func (x *AddExternalRequest) Reset() {
@@ -235,6 +237,13 @@ func (x *AddExternalRequest) GetMetricsMode() MetricsMode {
return MetricsMode_AUTO
}
+func (x *AddExternalRequest) GetSkipConnectionCheck() bool {
+ if x != nil {
+ return x.SkipConnectionCheck
+ }
+ return false
+}
+
type AddExternalResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -307,7 +316,7 @@ var file_managementpb_external_proto_rawDesc = []byte{
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x70, 0x62, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f,
- 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdb, 0x05,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x06,
0x0a, 0x12, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f,
0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72,
@@ -349,32 +358,35 @@ var file_managementpb_external_proto_rawDesc = []byte{
0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x11,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x6d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75,
- 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x13,
- 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
- 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x65, 0x78, 0x74,
- 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
- 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65,
- 0x72, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72,
- 0x74, 0x65, 0x72, 0x32, 0x82, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
- 0x12, 0x76, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12,
- 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64,
- 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1f, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64,
- 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
- 0x6c, 0x2f, 0x41, 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x42, 0x1f, 0x5a, 0x1d, 0x61, 0x70, 0x69, 0x2f,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6b,
+ 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x6b, 0x69, 0x70, 0x43,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x3f,
+ 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0x95, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e,
+ 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a,
+ 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e,
+ 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70,
+ 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x32, 0x82, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x76, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72,
+ 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76,
+ 0x31, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x45, 0x78, 0x74,
+ 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x41, 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x42, 0x1f, 0x5a, 0x1d,
+ 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62,
+ 0x3b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/percona/pmm/api/managementpb/haproxy.pb.go b/vendor/github.com/percona/pmm/api/managementpb/haproxy.pb.go
index edbaf77b68..ed656ea102 100644
--- a/vendor/github.com/percona/pmm/api/managementpb/haproxy.pb.go
+++ b/vendor/github.com/percona/pmm/api/managementpb/haproxy.pb.go
@@ -76,6 +76,8 @@ type AddHAProxyRequest struct {
// Node with registered pmm_agent_id must present at pmm-server
// in case of push metrics_mode.
MetricsMode MetricsMode `protobuf:"varint,16,opt,name=metrics_mode,json=metricsMode,proto3,enum=management.MetricsMode" json:"metrics_mode,omitempty"`
+ // Skip connection check.
+ SkipConnectionCheck bool `protobuf:"varint,21,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"`
}
func (x *AddHAProxyRequest) Reset() {
@@ -215,6 +217,13 @@ func (x *AddHAProxyRequest) GetMetricsMode() MetricsMode {
return MetricsMode_AUTO
}
+func (x *AddHAProxyRequest) GetSkipConnectionCheck() bool {
+ if x != nil {
+ return x.SkipConnectionCheck
+ }
+ return false
+}
+
type AddHAProxyResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -287,7 +296,7 @@ var file_managementpb_haproxy_proto_rawDesc = []byte{
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x70, 0x62, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x05, 0x0a,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x05, 0x0a,
0x11, 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
@@ -325,31 +334,34 @@ var file_managementpb_haproxy_proto_rawDesc = []byte{
0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x10,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x6d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75,
- 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x93, 0x01, 0x0a, 0x12,
- 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e,
- 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07,
- 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72,
- 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x45,
- 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52,
- 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65,
- 0x72, 0x32, 0x7d, 0x0a, 0x07, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x72, 0x0a, 0x0a,
- 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f,
- 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78,
- 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
- 0x74, 0x2f, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x41, 0x64, 0x64, 0x3a, 0x01, 0x2a,
- 0x42, 0x1f, 0x5a, 0x1d, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70,
- 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6b,
+ 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x6b, 0x69, 0x70, 0x43,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x3f,
+ 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0x93, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74,
+ 0x6f, 0x72, 0x79, 0x2e, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x65,
+ 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f,
+ 0x72, 0x79, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72,
+ 0x74, 0x65, 0x72, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70,
+ 0x6f, 0x72, 0x74, 0x65, 0x72, 0x32, 0x7d, 0x0a, 0x07, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79,
+ 0x12, 0x72, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1d,
+ 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x48,
+ 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x48, 0x41,
+ 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x48, 0x41, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x41, 0x64,
+ 0x64, 0x3a, 0x01, 0x2a, 0x42, 0x1f, 0x5a, 0x1d, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (